4 ポイント 投稿者 lifthrasiir 2019-07-22 | 1件のコメント | WhatsAppで共有

ソフトウェアの国際化を扱う際に特に厄介なのは、ほとんどすべての言語では動作するのに、ごく一部の言語(もしかするとたった1つの言語)でだけ動かないという状況です。トルコ語とアゼルバイジャン語にのみ現れる2種類の i は、その代表的な例です。ラテン文字では通常、点付きの小文字 i と点なしの大文字 I しか存在しませんが、これらの言語では点なしの文字 ı/I と点付きの文字 i/İ がそれぞれ別の組になります。代表的な例として、"イスタンブールİstanbul" の先頭文字は点付きの大文字 İ です。

Unicode ではトルコ語・アゼルバイジャン語の i/I を別個にエンコードしていないため(同じラテン文字ですから)、それらの言語を考慮しないソフトウェアではしばしば問題が発生します。実際に人命に関わる事態にまで至ったことさえあります。[1] 正しく処理するには、文化情報(ロケール)を考慮する Unicode ライブラリを使用する必要があります。Java や C# のようにロケール処理がある言語・環境では大きな問題にはならず、それ以外では ICU のような別途のライブラリが必要です。

[1] https://gizmodo.com/a-cellphones-missing-dot-kills-two-people-puts-thr…

1件のコメント

 
iolothebard 2019-07-22

トルコ語…単語の文字数が多くて、ラベルやボタンの幅のせいで苦労した記憶がありますね…