Django 1.5.5始终显示原始(en)字符串(不翻译)



我正在尝试在模板中实现简单的Django 1.5.5字符串翻译。

我有:

  1. settings.py中的USE_I18N = True
  2. 'django.middleware.locale.LocaleMiddleware'MIDDLEWARE_CLASSESsettings.py
  3. 'django.core.context_processors.i18n'TEMPLATE_CONTEXT_PROCESSORSsettings.py
  4. 模板中的一些{% trans "My string" %}字符串
  5. 所有模板中的{% load i18n %}
  6. 运行python manage.py makemessages -l he
  7. 用Poedit翻译我的字符串
  8. 运行python manage.py compilemessages
  9. settings.py中的LOCALE_PATHS = ('conf/locale',)
  10. 已重新启动服务器

翻译后的字符串保持为英文。

我确实使用模板中的{% 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/

最新更新