国際化とローカル化の目的は、単一の Web アプリケーションが、閲覧者に合わせた言語や表示形式でコンテンツを提供できるようにすることです。
Django は テキスト翻訳 、日時と数字の表示形式 、タイムゾーン をフルサポートしています。
Django は、本質的には以下の2つを行います:
当然ながら、翻訳は対象の言語により、表示形式は対象の国によります。これらの情報は、ブラウザによって Accept-Language
ヘッダにて提供されます。ただし、タイムゾーンは簡単には利用できません。
「国際化 (internationalization) 」と「ローカル化 (localization) 」という言葉は混乱を招くことがあるため、ここで簡単に定義しておきます:
より詳しくは、W3C Web Internationalization FAQ、Wikipedia article、GNU gettext documentation をご覧ください。
警告
翻訳と表示形式は、それぞれ USE_I18N
と USE_L10N
設定によって制御されますが、どちらも国際化とローカル化を含んでいます。この設定名は Django の歴史における不幸な出来事の 1 つです。
その他、私たちが共通の言葉を使うにあたり、いくつかの専門用語が手助けとなるでしょう:
ll
形式の言語指定、または ll_CC
形式での言語および国指定です。例えば it
、 de_AT
、 es
、 pt_BR
が該当します。 言語部分は常に小文字で、国部分は大文字です。区切り文字はアンダースコアです。Accept-Language
HTTPヘッダの中でこの表示形式を使って表示可能な言語名を通知します。 例えば it
、 de-at
、 es
、 pt-br
が該当します。言語コードは、一般的に小文字で表されますが、HTTP の Accept-Language
ヘッダーは大文字・小文字を区別しません。区切り文字はダッシュ (-) です。.po
です。12月 02, 2017