Django自定义语言环境目录

时间:2010-03-29 19:03:01

标签: django internationalization locale

我正在开发一个包含两个不同站点的项目 语言。也许我非常错,但现在我的目录结构 看起来像:

/ruapp/settings.py # SITE_ID = 1 
/ruapp/manage.py 
/enapp/settings.py # SITE_ID = 2 
/enapp/manage.py 
/common/urls.py 
/common/ # almost every other file 
/common/templates/ # templates with {% trans %} 
/locale/ # with locales ru-ru and en-us, generated by calling 
makemessages from the root of all this structure

如何告诉django有关语言环境的信息?它似乎不会 单独找到/ locale /文件夹

2 个答案:

答案 0 :(得分:2)

AFAIK,python-gettext不能使用不同的文件夹,所以...使用Symlinks,Luke!

答案 1 :(得分:0)

确保本地化文件的目录结构如下:

locale/en/LC_MESSAGES/django.mo 
locale/ru/LC_MESSAGES/django.mo

如果您将其他名称命名为其他名称,或将其放在其他地方,则可能无效。

您还需要在设置文件中填写l18n信息。一个LANGUAGE_CODE = 'en',另一个LANGUAGE_CODE = 'ru'

修改:您是否创建了两个单独的应用或两个单独的项目?应用通常没有自己的settings.py和manage.py ...

您可以拥有一个包含多个设置文件并运行多个网站的项目。对于你的目录结构来说,这将是更多django-ish(并且更容易处理):

/settings_ru.py # SITE_ID = 1 
/settings_en.py # SITE_ID = 2 
/manage.py # use --settings option to distinguish between settings files.
/urls.py 
/templates/ # templates with {% trans %} 
/locale/ # locale/en/LC_MESSAGES/django.mo and locale/ru/LC_MESSAGES/django.mo 
(+ other common code, inside their respective apps)