GREEの国際化, その1

こんにちは、エンジニアの岡崎(@watermint)です。今回からJenkinsネタはネタ充電のため、しばらくお休みしてGREEの国際化について技術的側面のお話をします。

国際化とは何か

国際化、英語ではinternationalization。略してi18n (iとnの間に18文字ある、アイエイティーンエヌ)といいます。国際化とは、特定の国や地域に依存しないような仕組みを作ることです。いろんな国や地域にサービスを展開するには国際化のほかに、ローカライズ(localization、略してl10n、エルテンエヌ)は特定の国や地域に特化したカスタマイズが必要になります。
いろんな国や地域の事情を抽象化し、ローカライズの余地をどれだけ出せるかが国際化エンジニアの腕の見せ所です。

多言語化と国際化

いろんな国に対応するときいて、最初に思い浮かぶのが多言語化(multilingualization、略してm17n)です。世界には1,000以上の言語があり、国際化社会でのビジネスは英語だけではない数々の言語への対応が必要です。多言語化は、JavaならResourceBundle、iOSならNSLocalizedStringなどたいてい標準的な対応がありますが、それでも最低限必要な知識として言語間の表現の変化を押さえておく必要があります。

複数形

英語であれば単数と複数、アラビア語であれば0、1、2、少数、多数、その他など数量によって前置詞や単語の形態が変化します。
複数形の言語ごとのパターンについてはUNICODEコンソーシアムのCLDR(Common Locale Data Repository)にまとめられています。

性別

いくつかの言語では名詞に男性・女性・中性のような属性を持つことがあり、これによって前置詞や文の構成が変化する場合があります。

禁忌な表現

国や文化によっては日常的に使ってはならない表現、言葉が多く存在します。翻訳の際、翻訳家によって多くの禁忌表現は迂回されるように翻訳してもらえますが、もともとのコンセプトが禁忌表現の使用を迂回しきれないようなものである場合、コンセプトの改変、大幅な翻訳の変更が必要になります。

数値や日付

数値や日付の表現も国や言語によって大きく異なる要素の一つです。数値であれば数値の区切り、小数点区切りは , や . あるいはスペースなど国によって異なりますし、日付の表現は英語であれば、2012年9月18日はアメリカではSep 18th, 2012のような表現になります。日本の和暦、タイの仏教歴のように年の起点が西暦と異なる暦やイスラムのイスラム暦のように太陰暦をつかったカレンダーを使うなど日付の計算自体も異なるケースがあります。

法、文化の違い

法、文化の違いによって許される表現、サービスの内容、規制は大きく異なります。たとえば、ラスベガスではカジノは合法ですが、日本では非合法です。また、青少年保護やインターネットを通じたプライバシーの保護については近年、各国や地域ともに積極的な法整備をしていますが、それぞれ少しずつ根本にある考え方や見解が違います。このため、インターネットを通じて世界中にサービスを展開するにあたっては、それぞれの国や地域にあわせたカスタマイズが必要となります。

このように、一口に国際化といってもサービスやその品質についてのビジネス的な側面から、それらを満足する技術的フレームワークの整備までにはかなり多くの努力が必要です。次回からは、このようにビジネス的に難しい局面に対しての、技術的な解決方法を少しずつご紹介しようと思います。

お知らせ

GREEでは国際化を担当する、i18n(国際化)エンジニアも随時募集しています。ご興味のある方は応募要項をご確認のうえエントリーフォームよりご応募ください。