i18n, l10n, m17nの意味と違いがやっと分かった

以前CakePHPを使っていた時に日本語と英語に対応させる為、http://api13.cakephp.org/class/i18nとhttp://api13.cakephp.org/class/l10nを使いました。使ったんですが、このinternationalizationとlocalizationの単語、意味が似すぎてて、どういう役割分担なのか、悩みながら作ってました。

internationalization i18n 国際化。アプリにいろんな言語に対応出来るような機能を組み込んだり、そういう設計にしたりする事。
localization l10n 地域化。i18nで組み込んだ機能を使い、各言語に対応する事。
multilingualization m17n 多言語化。l10nで複数の言語に対応したら、ユーザーに合わせた言語の切り替えに対応する事。

たまたまm17nの意味が分からず調べたら、ローカライズ(地域化)とは - IT用語辞典に納得のいく説明があったので、自分用に表にまとめてみました。しかし、ちょっと細分化しすぎなんじゃないだろうか。

CakePHPは最近触ってないので、CakePHPのI18nクラスとL10nが、この通りの役割を持っているかは分かりません。CakePHPにはM17nは無いけど切り替えられる実装は出来るし。

書いた時期

2011-10-21頃。
今日も過去に書いて放置になってるやつの掘り起こし。