国際化とローカリゼーション
概要
国際化とローカリゼーションの目標は、単一のWebアプリケーションが、対象者に合わせた言語と形式でコンテンツを提供できるようにすることです。
Djangoは、テキストの翻訳、日付、時刻、数値のフォーマット、およびタイムゾーンを完全にサポートしています。
基本的に、Djangoは2つのことを行います。
- これにより、開発者とテンプレートの作成者は、アプリのどの部分を現地の言語や文化に合わせて翻訳またはフォーマットするかを指定できます。
- これらのフックを使用して、特定のユーザーの好みに応じてWebアプリをローカライズします。
明らかに、翻訳はターゲット言語に依存し、フォーマットは通常ターゲット国に依存します。 この情報は、ブラウザによってAccept-Language
ヘッダーで提供されます。 ただし、タイムゾーンはすぐには利用できません。
定義
「国際化」と「ローカリゼーション」という言葉はしばしば混乱を引き起こします。 簡単な定義は次のとおりです。
- 国際化
- ローカリゼーションのためのソフトウェアの準備。 通常、開発者によって行われます。
- ローカリゼーション
- 翻訳とローカルフォーマットを書く。 通常、翻訳者によって行われます。
詳細については、 W3C Web国際化FAQ 、ウィキペディアの記事、または GNUのgettextドキュメントを参照してください。
警告
変換とフォーマットは、それぞれ:setting: `USE_I18N` と:setting:` USE_L10N` の設定によって制御されます。 ただし、どちらの機能にも国際化とローカリゼーションが含まれます。 設定の名前は、Djangoの歴史の残念な結果です。
共通言語の処理に役立つその他の用語は次のとおりです。
- ロケール名
- ロケール名。
ll
形式の言語仕様、またはll_CC
形式の言語と国を組み合わせた仕様のいずれかです。 例:it
、de_AT
、es
、pt_BR
。 言語部分は常に小文字で、国部分は大文字です。 区切り文字は下線です。 - 言語コード
- 言語の名前を表します。 ブラウザは、この形式を使用して、受け入れる言語の名前を
Accept-Language
HTTPヘッダーで送信します。 例:it
、de-at
、es
、pt-br
。 言語コードは通常小文字で表されますが、HTTPAccept-Language
ヘッダーでは大文字と小文字は区別されません。 セパレータはダッシュです。 - メッセージファイル
- メッセージファイルは、単一の言語を表すプレーンテキストファイルであり、使用可能なすべての翻訳文字列と、それらを特定の言語で表現する方法が含まれています。 メッセージファイルのファイル拡張子は
.po
です。 - 翻訳文字列
- 翻訳可能なリテラル。
- フォーマットファイル
- フォーマットファイルは、特定のロケールのデータフォーマットを定義するPythonモジュールです。