9章国際化を学ぶ

国際化はInternationalization、略してi18n†1とも呼ばれ、プログラミングの文脈では、さまざまな国や地域で使用されるプロダクトにおいて、言語や時間、数値の表記の違いを吸収することを意味します。

[†1] internationalizationの最初の「i」と最後の「n」の間の文字数が18であるため。よく目にする同様な省略としてはL10N(localization、地域化)、m17n(multilingalization、多言語化)、a11y(accessibility)などがあります。

このような表記の違いの最も分かりやすい例は日時でしょう。たとえばシャーロック・ホームズの誕生日は1854/1/6(1854年1月6日)ということになっていますが、これは米国式では1/6/1854(January 6th, 1854)になり、英国式では6/1/1854(6th January 1854)になります。つまり特定の日付を表すための年、月、日の並び順は国によって異なっているのです。

もし日付を文字列に変換するための特別な仕組みが何も用意されていなければ、日付を表示するたびに条件分岐が必要になってしまいます。もちろんこのような仕組みを独自に用意することは可能ですが、たとえば対応すべき地域が増えたときにその地域の表記を調査して組み込むのはそれなりに面倒な作業です。また、最初に書いたとおり、地域によって表記に違いが出るのは日時だけではありません。そのため、国際化を扱う仕組みは各自が独自に作成するのではなく、標準的な手段を利用するのが望ましいあり方です。JavaScriptではこのような国際化に必要な機能がIntlオブジェクトにまとめられています†2

Get ハンズオンJavaScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.