2011-11-09 11 views
4

UiBinderで構築されたGWTアプリケーションのローカライズは、ホストモードで動作しますか?それは私のためではありません。ここに私がやったことです:UiBinderで構築されたGWTアプリケーションのローカライズは、ホストモードでは機能しません。

1)

< ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
    ui:generateFormat="com.google.gwt.i18n.rebind.format.PropertiesFormat" 
    ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" 
    ui:generateLocales="default" 
    xmlns:g="urn:import:com.google.gwt.user.client.ui"> 

    < g:HTMLPanel> 
    < ui:msg description="Hello Description">Hello!< /ui:msg> 
    < /g:HTMLPanel> 
< /ui:UiBinder> 

3)を加えて、GWTモジュールのXML

< inherits name="com.google.gwt.i18n.I18N"/> 
< extend-property name='locale' values='en'/> 
< extend-property name='locale' values='ru'/> 
< set-property-fallback name="locale" value="en"/> 

2)と* .ui.xmlファイル内Tagedメッセージにロケールプロパティを追加しましたGWTコンパイラオプション-extra

4)プロジェクトをコンパイルしました。余分なフォルダに.GenMessages.propertiesというサフィックスが付いたファイルが見つかりました。

5)ローカライズされた生成されたメッセージ。各.GenMessages.propertiesファイルを対応する.ui.xmlファイルを持つ同じフォルダにコピーしました。ファイル名にロケールを付けて名前を変更しました。 .GenMessages_en.properties .GenMessages_ru.properties

6)プロジェクトを再コンパイルしました。

7)は、例えば http://127.0.0.1:8888/TestLocale.html?gwt.codesvr=127.0.0.1:9997&locale=ru

それはまだ私は、リソースの英語版をデフォルト示し、アプリを立ち上げ、チェックするためにURLにロケール変数を変更します。

私には何が欠けていますか?どうすればそれをデバッグすることができますか?ログや出力には何もありません。

私はWindows版で、IntelliJ IDEAとChromeをブラウザとして使用しています。

ありがとうございます!

更新:私はモジュールの設定で余分な< set-property name="locale" value="en"/ >があったので:(おそらくそれはextend-propertyタグから値をオーバーライドしてそれが機能しなかった

私はそれがを動作させるためにどのようにステップバイステップの説明を書きました誰かが興味を持っている場合はhere

答えて

2

デフォルトGWTによっては、パッケージ名で始まるプロパティファイルを生成します。あなたは、ファイル名からパッケージを削除しましたか?

一つ目私のGWTプロジェクトで私にとって一番うまくいきましたのは、ファイル名としてLocalizableResource_.propertiesを使用し、それらをすべてcom/google/gwt/i18n/clientパッケージに保存しています。 Localization with UiBinder

1

のGWTドキュメントをチェックしてください。.propertiesファイルはクライアントパッケージの下にある必要はありません。重要な点は、プロパティファイルを保存する場所が決まっていれば、そのパッケージがモジュールのパスに含まれていることを確認することです。私のプロジェクトで、私は通常、解像度のパッケージの下にプロパティファイルを置く:

com/project/gwt 
com/project/gwt/client 
com/project/gwt/res 
com/project/gwt/res/strings 

その後、すべての個々のプロパティは、各言語のファイルと一緒に主なインタフェースは、文字列の下に行きます。これは、module.xmlファイルに行が含まれていれば問題ありません。

<source path="res" />