私はDjango 1.9.1アプリを持っています。フランス語で表示されるものもあれば、すべてではないものもあります。私のフォームの1つにアクセスすると、私はフランス語でいくつかのストックフレーズを取得します( "Search" => "Rechercher"、 "Name" => "Nom")が、私のアプリケーションのフレーズ(例えば "Add New Patient" 、 "Caregiver"は両方とも英語です)。django LANGUAGE_CODEが動作しません
私は言語設定が設定されている:私が設定LocaleMiddlewareいる
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"),
)
を:
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"を読みましたが、私は何が欠けているのか分かりません。