我有一個Django 1.9.1應用程序。有些以法語出現,但不是全部。當我訪問我的一個表格時,我會用法語(「Search」=>「Rechercher」,「Name」=>「Nom」)獲得一些庫存短語,但不會包含我的應用程序中的任何短語(例如「Add New Patient」 ,「看護人」都是英文)。django LANGUAGE_CODE不工作
我已經配置語言設置:
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 Language Switcher來發送Accept-Language:HTTP標頭'fr'。
Django調試工具欄顯示爲法文(!),並在HTTP請求中顯示「Accept-Language:fr」,在HTTP響應中顯示爲「Content-Language:fr」。它還說,Django變量LANGUAGE_CODE是「en-us」(?),即使我已將該設置註釋掉了。
我已閱讀"How Django discovers language preference",我看不到我在想什麼。