3

私のジャンゴアプリはヨーロッパ言語です。今は英語に戻り、国際化とローカライズを適切に行いたいと考えています。これはsetting.pyで行いました

LANGUAGE_CODE = 'en'
LANGUAGES = [
    ('en', 'English'),
]

しかし、アプリケーション全体はまだ英語で表示されていません。ここで何か不足していますか?PS。アプリは Django-CMS も使用しています。

4

2 に答える 2

5

複数のことを行う必要があります。

  • あなたの場合は英語で、すべての文字列を 1 つの言語で記述します。

次に、すべての文字列を翻訳用にマークする必要があります。

  • transテンプレート内のすべての文字列にタグを追加します (i18nテンプレート タグ ライブラリから) 。ドキュメントの国際化を参照してください。これは、翻訳を処理するための共通ライブラリである gettext に関連しています。文字列の周りにタグを追加transすると、翻訳が必要な文字列の膨大なリストに含まれます (.poおよび.mo以下を参照)。
  • _()Python ソース コード内のすべての文字列を追加します (django.utils.translationドキュメントの国際化も参照してください)。これは gettext にも関連しており、これらの文字列も gettext 言語ファイルに含まれています。

次に、言語ファイルを作成し、それらのファイルに翻訳を追加する必要があります。

  • 翻訳文字列を含むgettext.poとファイルを作成します。.moこれらのファイルには、翻訳された文字列を書き込むことができます。これら 2 つのファイルは、多くの場合、/locale/ディレクトリに配置されます。言語ごとに、翻訳された文字列を書き、これらのファイルに入れる必要があります。これらの言語ファイルの詳細については、ローカリゼーションに関する Django ドキュメントを参照してください。

上記の説明は一般的な方法にすぎないため、 Django の国際化とローカリゼーション(しばしば i18n と呼ばれます) に関する概要を読むことをお勧めします。正確な技術的詳細はドキュメントにあります。

上記は、Python コードまたはテンプレートの一部である静的文字列を翻訳するためのものであることに注意してください。URL または Django モデルを変換する場合は、追加のライブラリをインストールするか、他の既存の Django 機能を使用する必要があります。たとえば、Django 1.4 では、URL を変換する機能が追加されましたが、以前の Django バージョンでは、そのためにライブラリ/Django アプリを使用する必要があります。

于 2012-07-16T10:16:15.530 に答える
0

シメオンの答えはすべての分野をカバーしていますが、ここでは、開発環境でローカリゼーションをテストするのに役立つものを見つけました。

あなたがネイティブのヨーロッパ人であれば、ブラウザはaccepted-languageasをリクエストするかもしれませんes

ここで、ローカル環境で英語の翻訳をテストしたい場合は、以下の可能性を検討する必要があります。

django-bookの参照によると:

LocaleMiddlewareを配置する必要があります

1> まず、現在のユーザーのセッションで django_language キーを探します。

2> それができない場合、Cookie を探します。

3> それに失敗すると、Accept-Language HTTP ヘッダーを調べます。このヘッダーはブラウザから送信され、優先度の高い順に、優先する言語をサーバーに伝えます。Django は、利用可能な翻訳が見つかるまで、ヘッダー内の各言語を試します。

4> それが失敗すると、グローバルな LANGUAGE_CODE 設定が使用されます。

LANGUAGE_CODEこれで、最後の手段として設定を確認することがわかります。

したがって、ブラウザーで HTTP 要求インターセプターを使用し、accepted-language値を変更してその場で言語翻訳をテストできます。

于 2015-12-15T16:19:31.193 に答える