Django翻译不处理每个变量

时间:2015-06-24 10:42:47

标签: python django translation

在我的django项目中似乎发生了一种非常奇怪的行为。

我将项目中的每个重要字符串标记为可以与documentation

中的ugettext_lazy一起翻译

当我在我的模板中使用这些变量时,其中一些变量会被翻译,其中包含来自翻译文件的匹配字符串,但其他人不会。

我还尝试了How to setup up Django translation in the correct way?https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-language-preference

中提供的说明和提示

我还尝试在ugettextugettext_lazy之间切换一下以查看效果。 我跑了

python manage.py compilemessages -a -l de -v3  
python manage.py compilemessages
每次我尝试别的东西后

效果仍然存在,视图和模板中使用的前几个条目可能被翻译,但是第一个仅出现在python文件中的消息字符串之后的每个条目都没有被翻译。无论它是否出现在模板,python文件或两者中。

示例:

#: backend/forms.py:18 backend/views.py:129 backend/views.py:134
#: backend/views.py:1274 backend/views.py:1275
#: backend/templates/backend/index.html:31
msgid "username"
msgstr "Benutzername"

#: backend/forms.py:19 core/templates/core/tables/employees_table.html:6
msgid "first name"
msgstr "Vorname"

#: backend/forms.py:20 core/templates/core/tables/employees_table.html:7
msgid "last name"
msgstr "Nachname"

#: backend/forms.py:21
msgid "mail address"
msgstr "E-Mailadresse"

所以usernamefirst namelast name根据我的浏览器设置完美翻译,但mail address未被翻译,即使它被用于模板中的一个简单字符串,如{%trans"邮件地址" %}({%trans"用户名"%}右侧)

由于我假设前两个字符串的工作翻译,错误不在我的设置中。

1 个答案:

答案 0 :(得分:0)

也许你的文件夹错误。它必须在ll_CC上,如pt_BR或es_MX。

我也有这个问题:https://stackoverflow.com/a/31889066/2418887