我正在尝试在模板中实现简单的Django 1.5.5字符串翻译。
我有:
settings.py
中的USE_I18N = True
'django.middleware.locale.LocaleMiddleware'
在MIDDLEWARE_CLASSES
在settings.py
'django.core.context_processors.i18n'
在TEMPLATE_CONTEXT_PROCESSORS
在settings.py
- 模板中的一些
{% trans "My string" %}
字符串 - 所有模板中的
{% load i18n %}
- 运行
python manage.py makemessages -l he
- 用Poedit翻译我的字符串
- 运行
python manage.py compilemessages
settings.py
中的LOCALE_PATHS = ('conf/locale',)
- 已重新启动服务器
翻译后的字符串保持为英文。
我确实使用模板中的{% get_current_language as LANG %}{{ LANG }}
检查了当前语言是否为he
。
我做了什么才配得上这个哪里出了问题?
答案(根据注释更新):
这看起来像是一个路径问题(否则你会看到一些错误)。
试着在你的设置中做这样的事情:
导入操作系统PROJECT_PATH=os.PATH.abspath(os.PATH.dirname(__file__))LOCALE_PATHS=(os.path.join(PROJECT_path,'../LOCALE'),)打印LOCALE_PATHS
以完全确定你有正确的路径。
另外,不要忘记,您需要具有包含django.mo(和po)文件的路径locale/he/LC_MESSAGES/
。