我messages.success(request, 'sign-up-success')
认为(我写了一个通用名称,因为我稍后会翻译它),并在我的模板中使用 {{ message }} 显示它。我希望能够翻译,所以我尝试了{% blocktrans %}{{ message }}{% endblocktrans %}
,但这会将任何消息(无论是“注册失败”还是其他任何消息)翻译成我在 django.po 文件中定义的 msgstr。
如何翻译消息,它是一个变量?
非常感谢。
我messages.success(request, 'sign-up-success')
认为(我写了一个通用名称,因为我稍后会翻译它),并在我的模板中使用 {{ message }} 显示它。我希望能够翻译,所以我尝试了{% blocktrans %}{{ message }}{% endblocktrans %}
,但这会将任何消息(无论是“注册失败”还是其他任何消息)翻译成我在 django.po 文件中定义的 msgstr。
如何翻译消息,它是一个变量?
非常感谢。
您指出了:您不能翻译变量。
您必须翻译定义它的文本:
from django.utils.translation import ugettext as _
messages.success(request, _('sign-up-success'))
然后按照标准翻译流程:https ://docs.djangoproject.com/en/dev/topics/i18n/translation/
重要的是在 settings.py 中的中间件中有正确的顺序
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
)