Django 区域设置未正确加载
django locale is not loading correctly
我正在使用 django 1.8.7。
根据我的理解,django 语言环境应该从
<site_root>/locale/<lang_code>/LC_MESSAGES/django.po
我有
<site_root>/locale/zh_CN/LC_MESSAGES/django.po
和运行
python3 manage.py compilemessages
和
我有
<site_root>/locale/zh_CN/LC_MESSAGES/django.mo
和
我有
request.session[LANGUAGE_SESSION_KEY] = 'zh-cn'
但是我的 Django 应用程序没有从我的 <site_root>/locale/zn_CN/LC_MESSAGES/django.po
加载任何东西,而是只从区域设置 t运行slation 从 django 的默认 t[=31= 加载一些 t运行slations ]slations.
django/contrib/auth/locale/zh_CN/LC_MESSAGES/django.po
我应该看看什么地方?
这是我的波斯语 Django 设置:
import environ
ROOT_DIR = environ.Path(__file__) - 3 # (my_awesome_project/config/settings/base.py - 3 = my_awesome_project/)
APPS_DIR = ROOT_DIR.path('my_awesome_project')
###### Locale settings
LOCALE_PATHS = (
str(APPS_DIR.path('locale')),
)
gettext = lambda s: s
LANGUAGES = (
# Translators: This message appears on the home page only
('fa', gettext('Persian')),
)
在我的代码中,我是这样使用它的:
from django.utils.translation import ugettext_lazy as _
raise ValidationError(_("League dos'nt exist"))
然后在命令行中我运行这个命令:
python manage.py makemessages
然后我根据波斯语翻译编辑my_awesome_projec/my_awesome_projec/locale/fa/LC_MESSAGES/django.po
文件。
然后我运行这个命令:
python manage.py compilemessages
在生产环境中,我将此指令添加到我的 nginx 设置中:
proxy_pass_header "Accept-Language";
我正在使用 django 1.8.7。
根据我的理解,django 语言环境应该从
<site_root>/locale/<lang_code>/LC_MESSAGES/django.po
我有
<site_root>/locale/zh_CN/LC_MESSAGES/django.po
和运行
python3 manage.py compilemessages
和
我有
<site_root>/locale/zh_CN/LC_MESSAGES/django.mo
和
我有
request.session[LANGUAGE_SESSION_KEY] = 'zh-cn'
但是我的 Django 应用程序没有从我的 <site_root>/locale/zn_CN/LC_MESSAGES/django.po
加载任何东西,而是只从区域设置 t运行slation 从 django 的默认 t[=31= 加载一些 t运行slations ]slations.
django/contrib/auth/locale/zh_CN/LC_MESSAGES/django.po
我应该看看什么地方?
这是我的波斯语 Django 设置:
import environ
ROOT_DIR = environ.Path(__file__) - 3 # (my_awesome_project/config/settings/base.py - 3 = my_awesome_project/)
APPS_DIR = ROOT_DIR.path('my_awesome_project')
###### Locale settings
LOCALE_PATHS = (
str(APPS_DIR.path('locale')),
)
gettext = lambda s: s
LANGUAGES = (
# Translators: This message appears on the home page only
('fa', gettext('Persian')),
)
在我的代码中,我是这样使用它的:
from django.utils.translation import ugettext_lazy as _
raise ValidationError(_("League dos'nt exist"))
然后在命令行中我运行这个命令:
python manage.py makemessages
然后我根据波斯语翻译编辑my_awesome_projec/my_awesome_projec/locale/fa/LC_MESSAGES/django.po
文件。
然后我运行这个命令:
python manage.py compilemessages
在生产环境中,我将此指令添加到我的 nginx 设置中:
proxy_pass_header "Accept-Language";