django2.0 international 在我的服务器环境中不工作
django2.0 international not work in my server environment
有一段时间我陷入了一个问题。我按照文档进行操作,并在本地环境中得到了我想要的结果。不仅使用 python3 manage runserver
,还使用 uwsgi --http :8000 xxx.uwsgi
。但是我把文件上传到我的服务器后,我无法得到与本地环境相同的结果。
配置如下:
LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]
# print(LOCALE_PATHS)
LANGUAGE_CODE = 'en-us'
LANGUAGES = [
('en-us', t_l('English')),
('zh-hans', t_l('Chinese'))
]
USE_TZ = True
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'util.middleware.MultipleDomainMiddleware',
'util.middleware.VisitHistoryMiddleware',
'django.middleware.gzip.GZipMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# 'debug_toolbar.middleware.DebugToolbarMiddleware',
]
而.mo,.po文件的url为'/project/locale/zh_hans/LC_MESSAGES/xxx.po','/project/locale/zh_hans/LC_MESSAGES/xxx.mo'
当然,我将 {% load i18n %}
添加到我的网页顶部。该功能在我的本地环境中工作正常,但在我的服务器环境中不工作。
我使用nginx + uwsgi + django 来部署我的服务器。而且我可以确保服务器获得实际 request.LANGUAGE_CODE
。我尝试使用 python3 manage runserver
和 uwsgi --http
来 运行 我在服务器上的代码以查看翻译是否有效。答案是否定的!
我服务器的系统版本是Ubantu 16.04,我服务器的gettext版本是0.19.7-2ubuntu3。我使用 apt-get
安装 gettext。
谁知道如何解决我的问题?
我通过将 url /project/locale/zh_hans/LC_MESSAGES/xxx.mo' 更改为 /project/locale/zh/LC_MESSAGES/xxx.mo'.
来解决这个问题
有一段时间我陷入了一个问题。我按照文档进行操作,并在本地环境中得到了我想要的结果。不仅使用 python3 manage runserver
,还使用 uwsgi --http :8000 xxx.uwsgi
。但是我把文件上传到我的服务器后,我无法得到与本地环境相同的结果。
配置如下:
LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]
# print(LOCALE_PATHS)
LANGUAGE_CODE = 'en-us'
LANGUAGES = [
('en-us', t_l('English')),
('zh-hans', t_l('Chinese'))
]
USE_TZ = True
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'util.middleware.MultipleDomainMiddleware',
'util.middleware.VisitHistoryMiddleware',
'django.middleware.gzip.GZipMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# 'debug_toolbar.middleware.DebugToolbarMiddleware',
]
而.mo,.po文件的url为'/project/locale/zh_hans/LC_MESSAGES/xxx.po','/project/locale/zh_hans/LC_MESSAGES/xxx.mo'
当然,我将 {% load i18n %}
添加到我的网页顶部。该功能在我的本地环境中工作正常,但在我的服务器环境中不工作。
我使用nginx + uwsgi + django 来部署我的服务器。而且我可以确保服务器获得实际 request.LANGUAGE_CODE
。我尝试使用 python3 manage runserver
和 uwsgi --http
来 运行 我在服务器上的代码以查看翻译是否有效。答案是否定的!
我服务器的系统版本是Ubantu 16.04,我服务器的gettext版本是0.19.7-2ubuntu3。我使用 apt-get
安装 gettext。
谁知道如何解决我的问题?
我通过将 url /project/locale/zh_hans/LC_MESSAGES/xxx.mo' 更改为 /project/locale/zh/LC_MESSAGES/xxx.mo'.
来解决这个问题