我一直在努力让i18n工作并拥有我网站的多语言版本。
我有一些人在为我做翻译,但是由于我遇到了一些问题,在网上搜索,似乎有些人很难从django的国际化和本地化模块开始。
到目前为止,我遇到的主要问题是:
现在,我只有一点未解决。首先是什么使得makemessages不更新?我正在使用-a来更新我之前创建的所有文件(de,da,fi),而fi是实际添加了翻译的唯一语言文件(其余的只是当前的空翻译字符串)
†我现在已经解决了数字2.似乎当makemessages创建.po文件时,它会使用模糊标记。
#, fuzzy
根据我做过的一些研究,这个文件将文件视为需要更新,就像trans标签附带的no-op选项一样。
{% trans "translation string" noop %}
删除#,模糊线后,它解决了这个问题。
††我已添加3号,仅供参考,因为我已经解决了这个问题。 您需要确保MIDDLEWARE_CLASSES
中存在LocaleMiddlewareMIDDLEWARE_CLASSES = (
'django.middleware.locale.LocaleMiddleware',
)
答案 0 :(得分:0)
所以我似乎能够回答我自己的问题。
我之前在翻译/语言环境中的项目树之外更新我的翻译的地方,出于某种原因,我有一条消息说它已被弃用并且无法以这种方式执行,原因现在由于某种原因这已经改变,它修复了makemessages无法正确更新的问题。
从翻译中删除#,模糊标签。
将LocaleMiddleware添加到MIDDLEWARE_CLASSES
问题解决了。