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の多言語対応の方法についてぼんやり考えてみた (でぃべろっぱーず・さいど)