Javascriptアプリケーションの国際化(多言語化)をまとめてみた
hiWikiMini(http://d.hatena.ne.jp/dot_h2o2/20100407/p1)の機能拡張で悩んでいるのが、アプリケーションの多言語化。
通常のアプリやRails等で開発したWebアプリであればGettextを使うという手が思いつく。
ただ、HTML&Javascriptでシンプルを目指すhiWikiMiniでは、外部ライブラリの利用は難しそう。
そんな環境だけど調べてみると手はいくつかありそう
せっかくなのでJavascriptだけで実現できる、簡易法を研究してみた。
<html>
<script>
// Define Table
var messages = {};
messages.ja = {};
messages.en = {};
var messgae ={};
function init(){
//Set Japanese messgaes
messages.ja.run="実行";
messages.ja.stop="停止";
//Set English messgaes
messages.en.run="Run";
messages.en.stop="Stop";
}
function display(){
message = messages['en'];
alert(message.run);
}
</script>
<body onload="init();">
<h1>Test</h1>
<form>
<input type="button" name="Display" value="Display" onclick="display()">
</input>
</body>
</html>
言語の切り替えは"message = messages['en'];"でおこなう。
後は、"messages.ja.xxx"や"messages.en.xxx"で必要なメッセージを作成していけば完成、小規模ならこれで間に合いそう。
参考にさせて頂いたサイト:
JavaScriptの多言語対応の方法についてぼんやり考えてみた (でぃべろっぱーず・さいど)