シンプルなJS用の多言語化ライブラリ作りました
http://github.com/technohippy/M17N.js
ガジェットの多言語化用に簡単なJSライブラリを作ったのでちょっと整理して公開します。まぁ探せばきっとあるんだろうけど、別に複雑な機能がほしいわけでもなかったので手作り。動作確認はMacのFireFoxとSafariでしかやってません。どうせIEではGoogle Wave動かないし。
実際に使うとこんな感じです。
<html> <head> <title>M17N.js sample</title> <script src="m17n.js"></script> <script> M17N.resources.ja = { greeting: "ご挨拶", hello: "こんにちは", en: "英語にする", ja: "日本語にする" }; M17N.resources.en = { greeting: "Say Greetings", hello: "Hello", en: "English", ja: "Japanese" }; </script> </head> <body> <button class="t" onclick="alert(t('hello'))">greeting</button> <button class="t" onclick="M17N.setLocale('en'); location.reload()">en</button> <button class="t" onclick="M17N.setLocale('ja'); location.reload()">ja</button> </body> </html>
M17N.resourcesオブジェクトにロケールをキーにした多言語リソースを設定しておいて、JS内であればt関数を利用、タグのテキストが対象なら要素のクラスにtを追加。デフォルトではブラウザの言語設定に従うけど、気に入らなければM17N.setLocaleで変更できます。ただし変更後は要リロード。
ライセンスはMITにしたので、よろしければお使いください。