26467
Railsの`i18n`では`ja.yml`が日本語の設定ファイルとして使われていますが、ISO 3166 の定義では`jp`になっているようです。

<https://en.wikipedia.org/wiki/ISO_3166>

`ja`はどこかで規定されている物なのでしょうか？  
`ja`以外にもISO 3166の定義から外れているものがあるのかを調べるために知りたいです。
CC BY-SA 3.0
2015-12-30T13:34:28.983
20483
2016-06-05T08:03:00.153
3271
question
ruby-on-rails i18n
"jp"がISO3166で定められた日本の省略のはずですが、`ja.yml`が使われている理由
[rails-i18n](https://github.com/svenfuchs/rails-i18n)のREADME.mdによると、妥当な言語/地域コードのリストについては、[iso](https://github.com/tigrish/iso)ライブラリを参照するとしています。isoライブラリは[ISO
639-1 alpha2](https://ja.wikipedia.org/wiki/ISO_639-1)に基づく言語コードとして小文字2文字、[ISO
3166-1](https://ja.wikipedia.org/wiki/ISO_3166-1)に基づく地域コードとして大文字2文字または数字3文字(UN
M49に基づく)を使うとしています。それらを組み合わせて、`言語コード`または`言語コード-地域コード`をタグとして使うとなっています。

上の話から言えば、日本語だと"ja"以外に"ja-
JP"でも問題は無いはずです。実際、rails-i18n等の翻訳済みデータを使う必要が無ければ別に何であっても動作はします。しかし、各ライブラリの翻訳済みデータは日本語を"ja"としているため、それを使うのであれば"ja"に合わせる必要があると言うだけです。翻訳済みのリストについてはrails-i18nのREADME.mdにあるAvailable
Localesを参考にしてください。

なお、規格として[IETF言語タグ(IETF language
tag)](https://ja.wikipedia.org/wiki/IETF%E8%A8%80%E8%AA%9E%E3%82%BF%E3%82%B0)のlanguageとlanguage-
regionがありますが、この規格を採用しているというわけではないようです。
CC BY-SA 3.0
2016-06-05T08:03:00.153
26467
2016-06-05T08:03:00.153
7347
20483
answer