Django:如何翻译模型的字段

时间:2017-08-22 03:17:24

标签: python django python-3.x django-models django-templates

我正在使用django的国际化来翻译我的网络应用程序。我看这个教程

http://www.marinamele.com/taskbuster-django-tutorial/internationalization-localization-languages-time-zones

但我想知道如何使用django的国际化来翻译我的模型的字段,或者我如何翻译模型的字段

非常感谢!

2 个答案:

答案 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.po文件中翻译了文本,则可以trans这样的模型:

{% trans mymodel.name %}