数字と多言語対応
データベースやローカルファイルを扱うとき、状況によっては多言語対応が要求されます。
全世界向けと名打って、最初から複数のチームで製品開発しようというときには、恐らく勝手に意識することが多いと思うんですけど、
あまり規模の大きくないチームで、海外の特定の国の顧客と交渉していて、
かつ開発チームに日本人が多くて英語くらいしか日常的に使えないよ~という状況だとして、
じゃあ今回のプロジェクト(アプリも英語で統一して)上手くいったし、別の顧客にも声かけて販売を検討してみようかな
という軽いノリで商談して開発していたりすると、つい**「数字の記法間違えてる!!!!」**ということに気づかず、謎の不具合調査に1~2日かけてしまうことも普通にあります(なお、私の個人的な経験の例です)。
文字表記のブレやエンコードくらいなら、まあ何とか気づくのは早いんですが、数字の場合は意外と気づかないような気がします。
割と有名な例(CSVファイル)
日本国内だけでなく、米国、英国、豪州などの英語圏、中国、韓国、インドなどのアジア圏に向けての場合、数字を使ったCSVファイル(カンマ区切り)はこう書くことが多いと思うんです。
100.0, 200.0, 50.1, 19.88
ところが、特にフランス語圏、ドイツ語圏、スペイン語圏に行くと数字の表現は**「ピリオド」ではなく「カンマ」**です。
EUが多い・・・と思いきや、南米や中東もヨーロッパの言語に影響を受けていることもあって、こうした国でも注意が必要です。
こうした言語圏でのCSVフォーマットは次のようになります。
100,0; 200,0; 50,1; 19,88
しかし例えばスイスでは、ドイツ語とフランス語が主要言語にもかかわらず、小数点は「.」(ピリオド)で表現されるみたいです。
従って、国の文化によってこの辺りのルールをきちんと考えてやる必要があります。
さらに、経理関係の話をするときにも注意が必要で、
フランス語圏では、数字を333 333,11といった感じで表現されますし、
ドイツ語圏では、数字を333.333,11といった感じで表現します。
こうした影響は、例えばWindowsを使っていれば、
Windows OSのカルチャー設定の部分と直接関係してくる部分なので注意が必要です。
従って、**「英語は共通語だからどこでも通じるだろう」**と、
うっかり英語圏のルールで開発をしていると思わぬ見落としがある場合もあります。
(プログラミングは、英語を基準に行なわれるのが標準だと思うので、見落としがちです)
まとめ
多言語対応を行なう場合、工数があまり割けないと「とりあえず英語で」とやりがちですが、
その場合には、国固有のカルチャールールに気を付けましょう。
その中でも、特に「数字」に関しては結構見落としやすいので、テストコードなども含めて注意深く検討すると良いです。
場合によっては、言語によって「保存されるデータの内容」が変わる可能性があるので、言語依存性をサポートしないフォーマットに対しては特に意識を払う必要があります。