0

pl ロケール用の .po ファイルを作成し、すべての文字列を翻訳しました。「ログイン」文字列を除いて、すべて正常に機能します。「ログイン」を「Zaloguj」に翻訳しましたが、HTML では「Zaloguj się」と表示されますが、そのような翻訳は私の .po ファイルには表示されません。「ログイン」は非常に人気があり、Django はすぐに使える翻訳 (エラー メッセージなど) を提供していると思いますが、どこかに文書化されていますか?

Django の翻訳の代わりに私の翻訳を強制的に使用する方法を知りたいです。ありがとう。

4

1 に答える 1

0

Django は次の順序で翻訳を検出し、ローカル リソースがグローバルな翻訳よりも優先されるようにします。ドキュメントから:

  1. LOCALE_PATHS にリストされているディレクトリの優先度が最も高く、最初に表示されるディレクトリは、後に表示されるディレクトリよりも優先度が高くなります。
  2. 次に、INSTALLED_APPS にリストされているインストール済みアプリのそれぞれにロケール ディレクトリが存在するかどうかを探して使用します。最初に出現するものは、後に出現するものよりも優先されます。
  3. 最後に、django/conf/locale にある Django 提供の基本翻訳がフォールバックとして使用されます。

LOCALE_PATHSしたがって、問題は、 (1) またはINSTALLED_APPS(2) を正しい順序で並べるかどうかだと思います。サード パーティのアプリが自分の翻訳を前に出すと、それが却下される可能性があることに注意してください。

詳細については、 https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-translationsを参照してください。

于 2014-08-31T20:51:19.043 に答える