国際化とローカル化の目的は、単一の Web アプリケーションが、閲覧者に合わせた言語や表示形式でコンテンツを提供できるようにすることです。
Django は テキスト翻訳 、日時と数字の表示形式 、タイムゾーン をフルサポートしています。
Django は、本質的には以下の2つを行います:
当然ながら、翻訳は対象の言語により、表示形式は対象の国によります。これらの情報は、ブラウザによって Accept-Language ヘッダにて提供されます。ただし、タイムゾーンは簡単には利用できません。
「国際化 (internationalization) 」と「ローカル化 (localization) 」という言葉は混乱を招くことがあるため、ここで簡単に定義しておきます:
より詳しくは、W3C Web Internationalization FAQ、Wikipedia article、GNU gettext documentation をご覧ください。
警告
翻訳と表示形式は、それぞれ USE_I18N と USE_L10N 設定によって制御されますが、どちらも国際化とローカル化を含んでいます。この設定名は Django の歴史における不幸な出来事の 1 つです。
その他、私たちが共通の言葉を使うにあたり、いくつかの専門用語が手助けとなるでしょう:
ll or a
combined language and country specification of the form ll_CC.
Examples: it, de_AT, es, pt_BR. The language part is
always in lowercase and the country part in upper case. The separator is
an underscore.Accept-Language HTTP header using this
format. Examples: it, de-at, es, pt-br. Language codes
are generally represented in lowercase, but the HTTP Accept-Language
header is case-insensitive. The separator is a dash..po です。12月 02, 2019