在我的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
中提供的说明和提示我还尝试在ugettext
和ugettext_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"
所以username
,first name
,last name
根据我的浏览器设置完美翻译,但mail address
未被翻译,即使它被用于模板中的一个简单字符串,如{%trans"邮件地址" %}({%trans"用户名"%}右侧)
由于我假设前两个字符串的工作翻译,错误不在我的设置中。
答案 0 :(得分:0)
也许你的文件夹错误。它必须在ll_CC上,如pt_BR或es_MX。