国際化とローカル化

概要

The goal of internationalization and localization is to allow a single web application to offer its content in languages and formats tailored to the audience.

Django は テキスト翻訳日時と数字の表示形式タイムゾーン をフルサポートしています。

Django は、本質的には以下の2つを行います:

  • 開発者やテンプレート作成者に、アプリケーションのどの部分がローカルな言語や文化に合わせて翻訳や表示形式の設定がされるべきかを指定できるようにします。
  • It uses these hooks to localize web apps for particular users according to their preferences.

翻訳は対象の言語により、表示形式は対象の国によります。これらの情報は、ブラウザによって Accept-Language ヘッダにて提供されます。ただし、タイムゾーンは簡単には利用できません。

定義

「国際化 (internationalization) 」と「ローカル化 (localization) 」という言葉は混乱を招くことがあるため、ここで簡単に定義しておきます:

国際化 (internationalization)
ソフトウェアをローカル化に備えさせることです。通常、開発者によって行われます。
ローカル化 (localization)
翻訳およびローカルな表示形式を記述することです。通常、翻訳者によって行われます。

より詳しくは、W3C Web Internationalization FAQWikipedia articleGNU gettext documentation をご覧ください。

警告

翻訳と表示形式は、それぞれ USE_I18NUSE_L10N 設定によって制御されますが、どちらも国際化とローカル化を含んでいます。この設定名は Django の歴史における不幸な出来事の 1 つです。

その他、私たちが共通の言葉を使うにあたり、いくつかの専門用語が手助けとなるでしょう:

ロケール名
A locale name, either a language specification of the form ll or a combined language and country specification of the form ll_CC. Examples: it, de_AT, es, pt_BR, sr_Latn. The language part is always in lowercase. The country part is in titlecase if it has more than 2 characters, otherwise it's in uppercase. The separator is an underscore.
言語コード
言語名を表します。ブラウザは Accept-Language HTTPヘッダの中でこの表示形式を使って表示可能な言語名を通知します。 例えば itde-atespt-br が該当します。言語コードは、一般的に小文字で表されますが、HTTP の Accept-Language ヘッダーは大文字・小文字を区別しません。区切り文字はダッシュ (-) です。
メッセージファイル
メッセージファイルは一つの言語を表すプレーンテキストファイルです。この中では、利用可能な全ての 翻訳文字列 と、それらがその言語でどのように表されるかが記述されます。ファイル拡張子は .po です。
翻訳文字列
翻訳可能なリテラル文字列です。
表示形式ファイル
書式設定ファイルは Python モジュールで、対象のロケールに対するデータの表示形式を定義します。