mabots' blog

知のレバレッジを最大化せよ (旧はてなダイアリーから移転しました。)

i18n g11n l10n m17n とは何なのかまとめてみた

  • グローバリゼーションな実装において登場する i18n や m17n といった記号の意味について、ざっくりまとめてみた。
    • いろいろな作法や定義があり、混乱しがちだが、debian の観点に則りいったん筋を通してみる

そもそも

とりあえず表にしてみる

省略記号 正規名称 単純な訳 空気を読むと
i18n internationalization 国際化 地域化のために実装着手すること。Unicode, resource file management, Regional Date time, currency formats などである。GETTEXT 等はここに分類される
l10n localization 地域化 特定の国に対して、デザイン、インタフェース等も地域に応じて最適化すること。例えば住所の選択等を想像してみるとよい。MULE や各種の言語パッチはここに分類される
m17n multilingalization 言語化 複数言語の処理が同時に実現できている。つまり、中国語と日本語と韓国語とスウェーデン語で書かれたドキュメントを化けずに同時に処理・表示できる。
g11n globalization グローバル化 MicrosoftSun Microsystems によって i18n + l10n 両方が達成できた状態の別名定義。これは私の推測だが m17n のエイリアスと考えてよい

おのおのの関係性は?

  • まず i18n で技術基盤をそろえる。そして、地域ごとの最適化を l10n で進める
    • l10n はアプリケーション層でケアされる
    • 気をつけたいのは複数の国や言語向けに l10n をしたからといって必ずしも m17n を達成した訳ではない
  • 同時に複数の言語等を取り扱える状態こそが m17n が達成できたという状態
    • この定義は debian のやりとりから
    • もちろん m17n はアプリケーション層でケアされる
    • 複数の言語を設定等でスイッチして、l10n が達成されていても、韓国語とスウェーデン語を同時に含むファイルを開くと壊れる、といった場合は、m17n は達成されたといえないだろう
図っぽくしてみる
  • 繰り返しにはなるが、下記に観点ごとにまとめた

1. 技術的な偉大さの観点
特定の言語等に l10n 対応 < 複数言語等について l10n 対応 < M17n に対応
2. 使役の観点
(l10n or m17n) -uses-> i18n