我正在使用django的国际化来翻译我的网络应用程序。我看这个教程
但我想知道如何使用django的国际化来翻译我的模型的字段,或者我如何翻译模型的字段
非常感谢!
答案 0 :(得分:0)
我知道我来晚了,但是无论如何...
我为自己找到的最佳解决方案是像这样向模型添加其他字段:
class MyModel(models.Model):
name = models.CharField()
name_fr = models.CharField(help_text='MyModel name in French')
# and so on for every language you want
然后假设您拥有{% load i18n %}
并将mymodel
作为MyModel
对象传递给模板:
{% get_current_language as LANGUAGE_CODE %}
<h1>{% if LANGUAGE_CODE == 'en-US' %}{{ mymodel.name }}{% elif LANGUAGE_CODE == 'fr-FR' %}{{ mymodel.name_fr }}{% endif %}</h1>
此声明不能严格如此。您可以实现另一个逻辑,但这就是我在几个项目中所做的事情。如果愿意,也可以从视图中传递LANGUAGE_CODE
。
P.S。如果您希望您的应用程序支持多种语言,则在带有大量if
语句的模板中以及在Django提供的管理面板中,它可能会变得有点脏。
答案 1 :(得分:0)
有两个Django应用程序可以帮助您解决此问题:
django-modeltranslation-非常受欢迎,会自动为您添加列。
django-parler-颇为流行,它为转换后的值创建了一个单独的表。
django-translated-field-新型的轻量级方法,可自动添加列。
或者,如果您已经在django.po
文件中翻译了文本,则可以trans
这样的模型:
{% trans mymodel.name %}