21728
自作アプリの文言の翻訳をしていてふと思ったのですが、  
Internationalization (国際化) と  
Localization (現地化) と  
どちらもほぼ同じ事のような気がしてきました。

IT 業界的には、この２つはどう違うのでしょうか？  
どう使い分ければよいでしょうか？
CC BY-SA 3.0
2016-02-05T03:33:54.177
21726
2016-02-09T07:18:28.887
8589
question
英語
Internationalization と Localization の違い
ざっくりいうと、i18nは多言語化対応するよ！l10nは地域にあわせて最適化するよ！みたいな感じです。

> 自作アプリの文言の翻訳をしていてふと思ったのですが、  
>  Internationalization (国際化) と  
>  Localization (現地化) と  
>  どちらもほぼ同じ事のような気がしてきました。

ほぼ同じというよりは、l10nをする際の工程にi18nはかかわります。

>
> <https://ja.wikipedia.org/wiki/%E5%9B%BD%E9%9A%9B%E5%8C%96%E3%81%A8%E5%9C%B0%E5%9F%9F%E5%8C%96>

詳しくはWikipediaを見ればより詳しく知ることができると思います。
CC BY-SA 3.0
2016-02-05T04:04:52.070
21728
2016-02-05T04:04:52.070
14215
21726
answer
* L10N; Localizationはソフトウェアを１つの言語に対応させること。日本語化パッチなどがその例。
  * I18N; Internationalizationはソフトウェアを複数の言語に切り替え可能にすること。最近のソフトウェアであればメニューやダイアログなどのUI要素が切り替え可能になっている。
  * M17N; Mulitilingalizationはソフトウェアを複数の言語を同時に扱えるようにすること。Webブラウザーやエディターなどがその例で、複数の言語が混在したコンテンツも扱える。

[Mule](https://ja.wikipedia.org/wiki/Mule)（Emacsの多言語拡張）登場の際にこのような用語で議論されていたように記憶してます。

* * *

コメントより

> L10N の定義が当時と今とで変わってきているように感じています。
>
> L10N の定義は今も昔も変わらないと思います。昔はフレームワークがサポートしてなかったりやデータがそろって無かったりで L10N ==
> 言語の地域化と結果的になってしまっていただけ

以前はフレームワークでのサポートもないためバイナリパッチの形も多かったです。今はデジタル署名などでバイナリパッチが困難にもなっている反面、フレームワークでのサポートもありリソースファイルを用意するだけになっていたりもしますね。

ところでLinuxの`ls -l`でよく見かける「2月 7 2015」という日付表記、これなんかがL10Nだったりするかな、と感じています。形式はus
cultureのままで文字列のみja languageが埋め込まれています。
CC BY-SA 3.0
2016-02-05T04:41:03.510
21730
2016-02-07T01:21:44.213
2020-06-17T08:14:45.997
-1
4236
21726
answer
具体的に言えば

  * 7bit ascii 使うのではなく Unicode を使う
  * ユーザーの locale 設定を尊重するようにする
  * ユーザーに表示する文字列のカタログ化

といった、複数言語を使えるようにする作業は国際化、

  * ユーザーに表示する文字列を英語に翻訳
  * 住所や郵便番号の表記方法の変更
  * (文化に合わせた)画像の差し替え

のような各地域にあわせる作業は地域化に入るのではないでしょうか。地域化には、その他にも通貨の表示や日付の表示の変更などもあるかもしれませんが、近年は
[CLDR](https://ja.wikipedia.org/wiki/Common_Locale_Data_Repository)
で地域化に必要なデータがまとめられてるので、個々人でその手の地域化をする必要性は大きく減っているはずです。
CC BY-SA 3.0
2016-02-06T02:07:02.537
21760
2016-02-06T02:07:02.537
2521
21726
answer
余談になりますが、  
ソフトウェア関連で「Internationalization」といえば「Localization」を含む多言語対応のことを指しますが、昨今のゲーム制作／アプリ制作では「どの国にも理解できるデザイン」や「多文化を配慮する」という意味にもなってきてると思います。

例えば、人種や肌の色を多種類にする、Yes/Noボタンを文字ではなく絵（アイコン）で表現する、性的な表現を控える、同性婚も考慮する、など。

その場合は Localization とは明らかに違う意味の Internationalization になってしまいます。Localization
にはハッキリと「他国（の言語なり）に対応する」という意味がありますが、単に「国際化」といった場合は、少し状況が変わってきてるような気がします。
CC BY-SA 3.0
2016-02-09T07:18:28.887
21892
2016-02-09T07:18:28.887
2079
21726
answer