6

我遵循了有关文本翻译的整个文档,但 django 没有考虑我的.mo文件。

一些事实:

  • 我在conf/locale/项目的根目录下创建了一个文件夹
  • django.po成功生成django-admin.py makemessages -l fr
  • django.mo成功生成django-admin.py compilemessages

所以我的文件夹结构是:

project/
  site/
  locale/
    fr/
      LC_MESSAGES/
        django.mo
        django.po
  • settings.py中,我设置了LANGUAGE_CODE = 'fr'
  • 我的浏览器正确发送Accept-Language:fr-FR,fr;
  • request.LANGUAGE_CODE从我的fr观点来看

但我什么也没翻译...如何让 django 考虑这些文件?


编辑

添加/home/www/project/localesettings.LOCALE_PATHS作品中。但是,Django 应该自己找到这个路径,我不喜欢使用绝对路径。这里会发生什么?

4

1 回答 1

13

LOCALE_PATHS

Django 默认在 3 个位置查找翻译文件:

  • LOCALE_PATHS/(language)/LC_MESSAGES/django.(po|mo)
  • $APPPATH/locale/(language)/LC_MESSAGES/django.(po|mo)
  • $PYTHONPATH/django/conf/locale/(language)/LC_MESSAGES/django.(po|mo)

仅当您的翻译文件不在您的应用程序目录或 PYTHON_PATH 上时,才需要使用 LOCALE_PATHS。

settings.py 中的 LOCALE_PATHS 示例

LOCALE_PATHS = (
    '/home/www/project/conf/locale', # replace with correct path here
)

MIDDLEWARE_CLASSES

django.middleware.locale.LocaleMiddlewareMIDDLEWARE_CLASSESsettings.py中添加

语言

LANGUAGES = (
    ('fr', 'Français'),
)
于 2012-07-25T09:43:58.080 回答