我遵循了有关文本翻译的整个文档,但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/locale
添加到settings.LOCALE_PATHS
有效。但是,Django应该自己找到这条路径,我不喜欢使用绝对路径。这里发生了什么?
答案 0 :(得分: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 强>
在settings.py
中将django.middleware.locale.LocaleMiddleware
添加到MIDDLEWARE_CLASSES
语言强>
LANGUAGES = (
('fr', 'Français'),
)