GREEの国際化, その3 - 国コードを選ぶ
こんにちは、エンジニアの岡崎(@watermint)です。今回は国際化における標準を実際にどのように選び、使っていくかを紹介していきます。標準もたくさんあるので今回は国コードのお話です。
国コード
まず標準を選ぶ例としてくにコードを紹介します。 国を示すコードといっても多種多様なコードがあります。例えば次のようなコード体系です。
- ISO 3166–1
- UN M.49
- Geopolitical Codes (旧FIPS 10–4)
- ccTLD 国コード
Wikipediaの国名コードなどを参照していただければ業界ごと、団体ごとにこれら以外のさまざまな標準が見つかると思います。
国コードの違い
国コードは一見それぞれ似通っているのですが微妙な違いがあります。 たとえばISO 3166–1 alpha–2でイギリスはGreat Britainから「GB」というコードが割り当てられていますが、Geopolitical CodesではUnited Kingdomから「UK」、ccTLD国コードも「uk」のように違いがあります。また日本はISO 3166–1では「JP」ですが、Geopolitical Codesでは「JA」が割り当てられています。 ほかにも下記のような非互換性があります。
- ISO 3166–1には定義があるが、Geopolitical Codesには無い、あるいはその逆
- ISO 3166–1で定義されているコードだが、Geopolitical Codesでは同じ地域をさらに細かく分類してコードを定義している
また、ISO 3166–1だけをみても2文字の英字(ISO 3166–1 alpha–2)、3文字の英字(ISO 3166–1 alpha–3)、3文字の数字(ISO 3166–1 numeric)というコードの振り方があります。
どのコードを使うか
国コードについていえば、基本的にはISO 3166–1 alpha–2をつかうのが最適でしょう。この理由は、他の標準や様々なAPIからも多くこの形式で参照されているからです。
国コードのメンテナンス
どのコード体系を使うかという判断のうち、次に大事なのはメンテナンスについてです。「国」というとなかなか変わらないように感じますが、1年〜数年に1度は何らか更新があります。最近だと、
- 2012年1月1日よりハンガリー共和国はハンガリーと改称されました
- 2011年には南スーダンにISO 3166–1コードが付与されました(SS)
- 2010年にはオランダ領アンティルがキュラソーなどに解体されなくなりました。
このような更新がなるべく正確かつ、はやく手に入る必要があります。ISOのような団体は正確性においては信頼ができますし、ISO 3166–1でいえばニュースレターが無料で購読できるのでメンテナンスコストも低く抑えられると思います。
いかがでしょうか。一口に国コードといってもサービスを国際化しようとするといろいろな判断が必要で、一筋縄にはいきません。
次回は同様の問題である言語コードについて紹介しようとおもいます。
お知らせ
GREEでは国際化を担当する、i18n(国際化)エンジニアも随時募集しています。ご興味のある方は応募要項をご確認のうえエントリーフォームよりご応募ください。