【问题标题】:django2.0 international not work in my server environmentdjango2.0 国际版在我的服务器环境中不起作用
【发布时间】:2018-05-25 10:51:45
【问题描述】:

我陷入了一段时间的问题。我按照文档进行操作,并在本地环境中得到我想要的结果。不仅使用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 runserveruwsgi --http 在服务器上运行我的代码以查看翻译是否有效。答案是否定的!

我的服务器系统版本是Ubantu 16.04,我服务器的gettext版本是0.19.7-2ubuntu3。我使用apt-get 来安装gettext。

谁知道如何解决我的问题?

【问题讨论】:

标签: django gettext django-2.0


【解决方案1】:

我通过将 url /project/locale/zh_hans/LC_MESSAGES/xxx.mo' 更改为 /project/locale/zh/LC_MESSAGES/xxx.mo' 来解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多