【问题标题】:Django: How to translate the models' fieldsDjango:如何翻译模型的字段
【发布时间】:2018-01-30 04:38:05
【问题描述】:

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

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

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

非常感谢!

【问题讨论】:

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


【解决方案1】:

有几个 Django 应用程序可以帮助您:

或者,如果您已经在django.po 文件中翻译了文本,您可以像这样trans 模型:

{% trans mymodel.name %}

【讨论】:

    【解决方案2】:

    我知道我来晚了,但无论如何......

    我为自己找到的最佳解决方案是向模型添加额外的字段,如下所示:

    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

    附:如果您希望您的应用程序支持多种语言,那么它可能会在包含大量 if 语句的模板和 Django 提供的管理面板中变得有点脏。

    【讨论】:

      猜你喜欢
      • 2015-06-03
      • 2018-08-28
      • 1970-01-01
      • 2011-02-14
      • 2013-09-19
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 2023-01-12
      相关资源
      最近更新 更多