我正在开发一个包含两个不同站点的项目 语言。也许我非常错,但现在我的目录结构 看起来像:
/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 /文件夹
答案 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)