国際化と各国語化
国際化【Internationalization】とは、各国語化しやすくするための、アプリケーションの設計と製造の工程です。
次に、各国語化【ローカライゼーションまたは地域化、Localization】とは、国際化されたアプリケーションを二つかそれ以上の文化的に異なる市場へ、文化的そして言語的に適応させることです。
十分に各国語化されたアプリケーションをユーザが起動したとき、彼らはそれが完全になじんでいると感じられる必要があり、よその国から生まれたアプリケーションのように感じられるべきではありません。
国際化と各国語化は補完的な活動です。
あるアプリケーションを国際化することによって、あなたは各国語化された内容に対応するために必要な、プログラム的な基盤を作成します。
次にそのアプリケーションを各国語化することによって、あなたは異なる文化圏の人々に向けてカスタマイズされたリソースを追加するのです。
アプリケーションの各国語化はしばしばアプリケーションのユーザ見えする文字列の翻訳を伴いますが、それは行わなくてはならない作業の、ほんの一部でしかありません。
同じように変更される必要のある、あなたのアプリケーションの他の部分には、以下が含まれます…
- nib ファイル(ウインドウ、ビュー、メニュー)は、翻訳された文字列を受け入れるために変更される必要があります。
- 静的文字列【static text】は翻訳する必要があります。
- アイコンと画像(特に、文化固有の図を含むもの)は、より文化的に適切となるように変更する必要があります。
- 話し言葉を含む音声ファイルは、対応する言語ごとに録音しなおす必要があります。
- オンラインヘルプは翻訳する必要があります。
- あなたのプログラムによって生成される動的文字列【dynamic text】(日付、時刻、数値を含む)は、現在のロケール情報を用いて整形する必要があります。
- 文字列処理を行うコードは、現在のロケール情報を用いて単語の区切りを計算する必要があります。
- 表のデータは現在のロケール情報を用いて並べ替え【ソート】できる必要があります。
Mac OS の以前のバージョンと同様に、Mac OS X のプログラミング環境は、あなたのアプリケーションの国際化を容易にします。
アプリケーションの実行可能コードは一つのファイルに属するのに対して、個々のリソースは独立したファイルに配置されます。
ある単一の各国語化のためのリソースファイル群は、言語固有のプロジェクトディレクトリ内に一緒に記録されます。
同じ実行可能ファイルに対して一つ以上の言語固有ディレクトリが存在することができ、それによって単一のアプリケーションバンドルが、複数の各国語化に容易に対応することを可能にします。
この対応は、あなたが1バイト言語と2バイト言語のための各国語化情報を、同一のバンドル内に一緒に記録することすら可能にします。
国際化されたアプリケーションの開発を単純化するために、あなたはあなたのアプリケーションにおける、文化固有の情報をすべて見極める必要があります。
あなたのユーザインタフェースから文化固有の文字列、図、音声を削り落とし、これらをリソースファイルに置いてください。同時に、これらのリソースを使用するコードは、必ず対応するリソースファイルからこれらを読み込むようにしてください。
また、あなたのユーザインタフェースが日付や通貨の値を表示する場所も見つけ出し、必ず現在のロケール情報を用いてこれらを整形する必要もあります。
一度あなたのアプリケーションのユーザインタフェースが(たぶんコードが凍結される前に)凍結されたら、あなたはその各国語化を始めることができます。
それぞれの各国語化ごとに、各国語化チームは nib ファイル、文字列、図、音声ファイルの言語固有版を作成します。
もしあなたのアプリケーションが正しく国際化されていれば、この工程であなたのソースコードを変更する必要はありません。そのため、あなたは社内で翻訳物を作成しても構いませんし、外部の各国語化の業者と契約することもできます。
たとえあなたが今すぐ複数言語へ対応することを予定していなかったとしても、前もってあなたのアプリケーションを国際化しておくことは良い考えです。
リソースをあなたの実行可能ファイルの外部へ記録することは、あなたのアプリケーションの外見を変更することを容易にし、その振る舞いを一から再検証する必要もありません。このことは、あなたが各国語化することを選択した場合に、あなたのコードへのバグ作りこみの可能性を縮小します。
また、あなたのアプリケーションへの国際化対応の製造によって損をすることはありません。例えあなたのアプリケーションが一ヶ国語専用であったとしても、結局あなたはすべての有効なコードパスを試験する必要があります。もしあなたのコードが一つの言語に対して正しく国際化されていれば、他の言語へ対応するために必要な追加試験はわずかなものでしょう。