調べるきっかけ
言語を指定するときにja、ja_jpってありますよね。
日本語だったらどっち選んでも同じやん。と思ってあまり意識することはないのですが、開発に使うことがありそうなので調べた内容をメモします
短くいうと
ja_jpのja = Japanese → 言語コード (ISO 639-1で国際的に決められている)
ja_jpのjp = Japan → 国コード (ISO 3166で国際的に決められている)
そしてこの二つを合体させたja_jpが、LCID(ロケールID)と言われている
※ サイトによっては、ja_jpだったり、ja-jp だったりします。( どう違うのでしょうか。わかる人教えてください)
ja_jpとjaは、どちらも「日本語」やろ? と思った人への例
言語コードは同じでも国コードは違う、というわかりやすい例を見つけました↓
例えば、Tシャツという単語をスペイン語に翻訳すると‥
スペインでは:Camiseta(カミセタ)
アルゼンチンでは:Remera(レメラ)
メキシコでは:Playera(プラジェラ)
言語コード = 言語コード+国コードの場合もある
Amazon Translateのページにサポートされている言語一覧がありました。
言語 | 言語コード |
---|---|
フランス語 | fr |
フランス語 (カナダ) | fr-CA |
となっています。他のサイトでも国コードを含めるような言語コードがありました。
基本はjaのようなものを言語コードというのだと思いますが、一緒くたにすると困る場合は、言語+国を言語コードとするという見解です。
実装では、jaとja-jpどっちを使うのがいいの?
日本だけのシステム開発であれば、あんまり意識しなくていいことだと思いますが、
多言語国家を対象にするのであれば、言語だけを管理した方がいいのか、言語+地域で分けたほうがいいジャンルのアプリを作るのか?など考える必要がありそうです。
ただ、国コードに関しては、よくわからないから全部つけておけばOK!ってものでもなさそうです。
調べていて、↓のような例外もありました。
イギリスは本来GBであるべきところが、歴史的な経緯でUKが用いられていること
アメリカはUSを使うべきであるけれども、今のところ国コード無しのものがほとんどであること
感想
正直日本語を使う人目線だと、国コードがあることでどれだけ利便性が高まるのかがイメージできなかった...
多言語国家出身の方に肌感を聞きたい。