2016-05-21 8 views
2

私は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"を読みましたが、私は何が欠けているのか分かりません。

答えて

2

私のLOCALE_PATHが間違っていました。それは1つのレベルが高すぎました。私のために正しいLOCALE_PATHがあります:

BASE_DIR = os.path.dirname(
    os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 

LOCALE_PATHS = (
    os.path.join(BASE_DIR, "locale"), 
) 
関連する問題