【发布时间】:2019-12-05 08:04:51
【问题描述】:
我正在致力于我的项目的国际化。 有些东西我连看 Django 文档都看不懂
我有一个传递上下文(列表)的视图
在我的模板中,我循环这个列表并在我的列表的每个元素上运行一个方法 此方法返回一个字符串('string#1' 或 'string#2' 取决于元素)
我想翻译 (en/fr) 但我不明白怎么做? 我应该在模型还是模板中应用翻译?
下面是一个示例的简化代码
models.py
class mymodel(models.Model)
def mymethod(self):
condition = othermodel.objects.get(pk=self.ide)
if condition == 1 :
return 'string#1' # the string I want to translate
else:
return 'string#2' # the string I want to translate
return ''
views.py
def test(request):
mylist= _(["elt#1","elt#2","elt#3","elt#4","elt#5"])
return render(request, 'myapp/test.html', {'mylist': mylist})
test.html
{% for element in mylist %}
{{ element.mymethod }}
{% endfor %}
【问题讨论】:
-
如果您想使用 i18n 方式,Jacek 的回答很好,另一个选项是 django-modeltranslation package 它允许在 django 模型端应用翻译,因此在实现例如 API、前端和数据库
标签: django methods internationalization