【问题标题】:How to translate a message/variable in Django templates?如何在 Django 模板中翻译消息/变量?
【发布时间】:2013-03-13 16:57:26
【问题描述】:

我的视图中有messages.success(request, 'sign-up-success')(我写了一个通用名称,因为我稍后会翻译它),并在我的模板中使用 {{ message }} 显示它。我希望能够翻译,所以我尝试了{% blocktrans %}{{ message }}{% endblocktrans %},但这会将 any 消息翻译为我在 django.po 中定义的 msgstr,无论是“注册失败”还是其他任何消息文件。

如何翻译消息,它是一个变量?

非常感谢。

【问题讨论】:

    标签: django internationalization django-templates translation


    【解决方案1】:

    你指出了:你不能翻译变量。

    你必须翻译你定义它的文本:

    from django.utils.translation import ugettext as _
    messages.success(request, _('sign-up-success'))
    

    然后按照标准翻译流程:https://docs.djangoproject.com/en/dev/topics/i18n/translation/

    【讨论】:

    • 你先生真棒。有效。我不知道你能做到这一点。它甚至更有意义,因为当我浏览我的应用视图时,我会立即看到需要翻译的文本。
    【解决方案2】:

    重要的是在 settings.py 中的中间件中有正确的顺序

      MIDDLEWARE_CLASSES = (
       'django.contrib.sessions.middleware.SessionMiddleware',
       'django.middleware.locale.LocaleMiddleware',
       'django.middleware.common.CommonMiddleware',
        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-01
      • 2023-03-09
      • 2014-08-17
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多