2007年6月1日

国際化対応に関する設定をいじってみて思ったこと

やってる人にとっては当たり前。知らない人にとっては超面倒。
実装だって遠回りの力技になってしまう機能ってたくさんあります。
そのうちのひとつ、国際対応について。
GMAN: Windows XP Japanese Input
WindowsXPのコントロールパネルには'地域と言語のオプション'(Regional and Language Options)という設定があります。
ここでは地域ごと表記の代わる項目である、カレンダ、時刻、通貨の書式設定が出来ます。
'2006年11月17日'を'11/17/2006'としたり、\59,800-のカンマ(千と百の間の区切り)を外したり出来ます。
# 何の日で何の値段かは・・・ね、いいじゃない(w
また、時刻の表記は9時以前であった場合、'9:23'のように一桁になっているのが初期状態ですが、これを'09:23'のようにゼロパティング(ゼロで補間する)ことが出来ます。
実はこの書式に出来ないかとずっと悩んでました。
# エクスプローラの列表示が左寄せなので端が揃わなくてカッコ悪いなとずっと思ってた(w
'地域と言語のオプション'には、このような書式設定以外にもコードページが非ユニコードであった場合、どこの国の言語とみなすかを設定できます。
この設定を駆使すれば、英語版Windowsでも日本語アプリを文字化けなく表示が出来ます。
このような地域に依存する設定を'ロケール'と呼び、Windowsでは上述のような地域(言語)別の対応を'National Language Support'(NLS)という機能で実現しています。
NLS機能に関わるAPIをNLSAPIと呼び、GetLocaleInfoなどはそれに属する関数になります。
NLSを利用することで、アプリが独自で言語設定を保持しなくていい、という設計が可能になります。
# もちろんしてもかまわないのですが
また、選択されているロケールに応じて表示するメッセージを切り替えることが出来ます。
例として、日本語ロケールが使える場合は日本語表示。それ以外の場合は、アスキーコードのみの英語表示。
海外で現地OSを使っている外国人(日本人も含みます)向けのニッチなフォローですが、出来たら出来たで便利だと思います。

・・・あと、これを書いていて思ったのですが、ソフトウェアの世界では英語を公用語にしたほうが都合がいいですね。
いまさらながらちょっと寂しい気もします(w

0 件のコメント: