2009年6月16日火曜日

GWTで多言語対応の方法

以前は、ふ~~ん。こんなのあるんだぁと読み飛ばしていた、
多言語対応の方法について試してみる。

参考にしたページは下記のページ。
Internationalizing a GWT Application

意外に難しいかと思ったら簡単だった。
単純化すると、下記の手順でできる。

1.Constantsを拡張したInterface StockWatcherConstants を作成。
  (デフォルト文字列は、@DefaultStringValueアノテーションをつけておく)
2.同じフォルダにStockWatcherConstants _de.properties
というファイルを作っておく
  (deは言語により変わってくる)

ファイルの内容は、1で作成したInterFaceのメソッドに対応して下記のような
テキストファイルになる

============================
stockWatcher = Aktienbeobachter
symbol = Symbol
price = Kurs
change = Änderung
remove = Entfernen
add = Hinzufügen
============================

3.ソース本文は、下記のように宣言する

private StockWatcherConstants constants = GWT.create(StockWatcherConstants.class);

このインスタンスから、リソースストリングを取得する。

4.StockWatcher.gwt.xmlに下記の部分を追記


<extend-property name="locale" values="de"/>


これで、多言語対応が完了なはず。

ただ、実際に動作してみると、
http://localhost:8888/StockWatcher.html?locale=de
という風にアクセスしても正しく動かなかった。

ただ、もう一つの方法であるHTMLファイルに下記の分を記述する方法


<meta name="gwt:property" content="locale=de">


だとうまく動作してくれた。

バグなのかどうか良くわからないけども、とりあえず1つの方法はうまく動作することが
わかったので、よかった。

これで、多言語対応のアプリケーションも作成できることがわかった。

0 件のコメント: