如何在Django模板中翻译消息/变量?

时间:2013-03-13 16:57:27

标签: django internationalization django-templates translation

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

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

非常感谢。

2 个答案:

答案 0 :(得分:1)

你指出了:你无法翻译变量。

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

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

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

答案 1 :(得分:0)

重要的是在settings.py

中的中间件中有正确的顺序
  MIDDLEWARE_CLASSES = (
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.locale.LocaleMiddleware',
   'django.middleware.common.CommonMiddleware',
    )