6

.mo私はテキスト翻訳に関するドキュメント全体に従いましたが、djangoは私のファイルを考慮していません。

いくつかの事実:

  • conf/locale/プロジェクトのルートにフォルダを作成しました
  • django.poで正常に生成されましたdjango-admin.py makemessages -l fr
  • django.moで正常に生成されましたdjango-admin.py compilemessages

したがって、私のフォルダ構造は次のとおりです。

project/
  site/
  locale/
    fr/
      LC_MESSAGES/
        django.mo
        django.po
  • settings.py、私は設定しましたLANGUAGE_CODE = 'fr'
  • 私のブラウザは正しく送信しますAccept-Language:fr-FR,fr;
  • request.LANGUAGE_CODEfr私の見解からのショー

しかし、私は何も翻訳されません... djangoにこれらのファイルを考慮に入れる方法は?


編集

作品に追加/home/www/project/localesettings.LOCALE_PATHSます。ただし、Djangoはそれ自体でこのパスを見つける必要があり、絶対パスを使用するのは好きではありません。ここでは何が起きるのですか ?

4

1 に答える 1

13

LOCALE_PATHS

Djangoは、デフォルトで3つの場所で翻訳ファイルを検索します。

  • LOCALE_PATHS/(language)/LC_MESSAGES/django.(po|mo)
  • $APPPATH/locale/(language)/LC_MESSAGES/django.(po|mo)
  • $PYTHONPATH/django/conf/locale/(language)/LC_MESSAGES/django.(po|mo)

LOCALE_PATHSは、翻訳ファイルがアプリディレクトリまたはPYTHON_PATHにない場合にのみ使用する必要があります。

settings.pyのLOCALE_PATHSの例

LOCALE_PATHS = (
    '/home/www/project/conf/locale', # replace with correct path here
)

MIDDLEWARE_CLASSES

settings.pydjango.middleware.locale.LocaleMiddlewareに追加MIDDLEWARE_CLASSES

言語

LANGUAGES = (
    ('fr', 'Français'),
)
于 2012-07-25T09:43:58.080 に答える