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