インターナショナリゼーションとは
インターナショナリゼーションとは、ソフトウェア(アプリやウェブを含む)をさまざまな言語や地域に対応できる形に作っておくことを指します。
例えば「alert(“こんにちは!”);」のような簡単なプログラムがあったとします。画面に「こんにちは!」と表示するだけです。これを英語ユーザー向けに翻訳する場合、「alert(“Hello!”);」のようになるでしょう。英語だけならまだしも、数か国語に翻訳する場合は同じソースコードのプログラムがいくつもできてしまい、管理が大変です。そこでmyMessageのような変数を使って「alert(myMessage);」とプログラムし、ユーザーの言語設定に応じてmyMessageに「こんにちは!」や「Hello!」を代入するようにしたらどうでしょうか。このようにソースコードからテキストを分離しておくと、将来複数の言語に翻訳する際も楽です。
また、日本では日付を「2016年5月10日」と表記しますが、アメリカ英語では「May 10, 2016」と書きます。同じ英語圏でもイギリスでは「10 May 2016」です(アメリカと月日が逆)。日本で作ったソフトウェアを世界各国のユーザーにソフトウェアを使ってもらうには翻訳が必要になりますが、日付のように頻繁に用いる情報はいちいち翻訳者に翻訳してもらうのではなく、ユーザーの地域設定に合わせて自動的に変換されると便利です。自動的に変換するためには、特定の言語や地域の形式(例:「2016年5月10日」)で情報を持つのではなく、汎用的な形式(例:ISOの「2016-05-10T17:30Z」)で情報を持つようプログラムする必要があります。汎用的な形式だとさまざまな地域の表記に容易に変換ができるのです。これもインターナショナリゼーション作業の一例です。
このように、ソフトウェアをさまざまな言語や地域に対応できる形に作っておくことがインターナショナリゼーションです。ちなみにインターナショナリゼーションは「国際化」や「I18N」とも呼ばれます。I18Nという書き方は、Internationalizationの最初のIと最後のNとの間に18文字省略されていることが理由です。