Я на некоторое время поймал проблему.Я делаю в качестве документации, и я получаю результат, как я хочу в локальной среде.Не только используя 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',
]
И URL-адрес .mo,.po-файл '/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.
А кто знает, как решить мой вопрос?