X18nはJavaScriptによる国際化処理ライブラリです。

JavaScriptの活用の幅が広がっていく中で注目したいのが多言語化対応です。Webアプリケーションなどで使ってみたいクライアントサイドの多言語化ライブラリとしてX18nを紹介します。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.45.43_thumb.1357477308.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.45.43.1357477308.png)
基本的な使い方。まずregisterで言語とその変換を登録します。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.45.54_thumb.1357477311.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.45.54.1357477311.png)
言語の設定をします。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.46.02_thumb.1357477313.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.46.02.1357477313.png)
後はtで使えます。ドットで階層をたどれます。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.46.07_thumb.1357477315.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.46.07.1357477315.png)
%1で置き換えたり、指定した文字での置換にも対応しています。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.46.13_thumb.1357477316.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.46.13.1357477316.png)
カウントにも対応しています。

X18nはRubyのr18n互換となっており、r18nが使っているYAMLファイルをJSONに置き換えて使えるようにしています。利用言語は指定も可能ですが、Webブラウザからの取得もサポートされています。さらにwindowオブジェクトにデータを付けることによるダイナミックデータバインディングも利用できます(設定で使えないようにもできます)。

X18nはJavaScript製、MIT Licenseのオープンソース・ソフトウェアです。

MOONGIFTはこう見る

コンテンツをJavaScriptで処理すべきかどうかの判断で大事なのは、そこがクローラーによって取得されるべきか否かになります。クローラーを意識するならばHTMLとしてレンダリングすべきであり、ユニークなURLを持っておくべきです。そうではないならばダイナミックでも構わないでしょう。

例えばMOONGIFTにおいて言えば記事コンテンツはHTML上はプレミアムユーザか否かで分けていません。その後、JavaScriptによってコンテンツの出し分けをしています。そうすることでキャッシュを効率化し、DB負荷を減らせるようになります。クローラー基準でAjaxを使うようにすると分かりやすいと思います。

js-coder/x18n · GitHub