У меня есть приложение Django 1.9.1. Некоторые из них появляются на французском языке, но не все. Когда я захожу в одну из своих форм, я получаю несколько стандартных фраз на французском («Search» => «Rechercher», «Name» => «Nom»), но не получаю никаких фраз из моего приложения (например, «Добавить нового пациента» , «Caregiver» на английском языке).
У меня настроены языковые настройки:
PROJECT_DIR = os.path.dirname(
os.path.dirname(os.path.dirname(os.path.dirname(
os.path.abspath(__file__)))))
LANGUAGES = [
('fr', _('French')),
('en', _('English')),
]
USE_I18N = True
USE_L10N = True
LOCALE_PATHS = (
os.path.join(PROJECT_DIR, "locale"),
)
У меня настроено LocaleMiddleware:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
# LocaleMiddleware should be after SessionMiddleware and before CommonMiddleware
# See https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#how-django-discovers-language-preference
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
У меня есть несколько файлов перевода, которые пришли из "makemessages -l fr" с переведенными моими фразами:
locale/fr/LC_MESSAGES/django.po
locale/fr/LC_MESSAGES/django.mo
Я загружаю i18n в свой шаблон.
{% load i18n %}
Некоторые из них на французском, так что это не должно быть проблемой.
Я использую Quick Переключатель языков для отправки HTTP-заголовка Accept-Language: fr.
Панель инструментов отладки Django отображается на французском языке (!) И говорит «Accept-Language: fr» в HTTP-запросе и «Content-Language: fr» в HTTP-ответе. Он также говорит, что переменная Django LANGUAGE_CODE является "en-us" (?), Хотя у меня этот параметр закомментирован.
Я прочитал "Как Django обнаруживает язык предпочтение ", и я не вижу, что мне не хватает.