JavaScript のそもそもの目的は,国際的な舞台で対話的コンテントを提供することにある。その点を考えるなら,言語組み込みと広範なライブラリ利用の両面で,グローバライゼーション機能を期待してもよさそうなものだ。ところが驚くなかれ,つい先日 JQuery と Microsoft による発表があるまでは,実は何も存在しなかったのだ。
いや,最後の文章は厳密には正しくない。実は IBM が,Web サービスを使用した JavaScript 国際化に関する特許 を取得している。とはいえ,"10/1/2010" が1月10日なのか,あるいは 10月1日なのか決めるだけのために,サーバと通信したいとは誰も思わないだろう。だからこの特許の実効性には疑問がある。
Microsoft の協力を得て開発された jQuery 国際化ライブラリでは,完全にクライアント側での処理によるグローバル化が実現されている。このライブラリを結合することで,リストに掲載されたおよそ 350 のカルチャに対して,国際的なウェブサイトに必要な書式と解析のほとんどがカバーされるのだ。
jQuery の国際化機能の実体は,実に簡素なものだ。jQuery.culture フィールドに希望する言語あるいは言語/カルチャの対を設定すれば,後は日付,整数,浮動小数点数の解析および書式化関数にアクセスするだけでよい。
その他の機能として jQuery.localize がある。これはキー/カルチャのペアに基づくリソース辞書を作成するためのものだ。格納可能な値の形式に制限はなく,一般的なリソース辞書のように文字列に限定されたりはしない。値を取得するときに,カルチャに対してもっとも適切なものをエンジンが検索する。例えばローカライズした文字列をフランス語 ("fr”) としてストアしておいて,カナダ ("fr-CA”) のように国を特定して参照することも可能である。実行時には最初にカルチャと国のマッチが検索され,見つからなければ次にカルチャのみでマッチングが調べられる。
デフォルトの jQuery には中立的英語 (English) のカルチャだけが設定されている。追加するカルチャは,個別に参照が必要な別々の JavaScript ファイルに記述しておく。それらをすべて取り出す前にユーザのカルチャを調べておけば,ロードと解析のコストを大幅に削減できるだろう。
jQuery の国際化 の成果は GitHub から入手可能だ。