2012-02-09 9 views
3

はjava.util.ResourceBundleのGWTのリソースバンドル

 ResourceBundle messageBundle = ResourceBundle.getBundle(baseName.properties , new Locale(language)); 
     Set<String> messagesKey = messageBundle.keySet(); 
     Map<String, String> messagesMap = new HashMap<String, String> (messagesKey.size()); 
     for (String key : messagesKey) { 
      messagesMap.put(key, messageBundle.getString(key)); 
     } 

答えて

3

で、ファイルをそれに最も近いものはContstantsWithLookupである(ただし、リストを取得することはできませんまたはDictionary(ただし、* .propertiesファイルではjsオブジェクトのみで動作しません)

1

クライアント側でリソースバンドルを使用するには、Messagesインターフェイスを使用します。

1)の特性は、例えば、あなたのインタフェースMyMessages.propertiesとMyMessages_ru.propertiesの横に\ファイルをファイルを作成します)

public interface MyMessages extends Messages { 
    String hello(String username); 
    String bye(String username); 
    String empty(); 

} 

2クライアントパッケージであなたのインターフェースMyMessagesを定義します。プロパティキーは、メソッド名と等しくなければなりません。

hello=Hello {0}, how are you? 
bye=Bye-bye {0}! 
empty=Just message! 

3)あなたのメッセージを作成しますが

MyMessages messages = GWT.create(MyMessages .class); 

4)

new AlertMessageBox("", messages.empty()).show(); 

また、あなたは、例えば、右のあなたのインタフェースコードに注釈を経由して、デフォルトのメッセージを定義することができ、メッセージを使用してGWTモジュール内のオブジェクト

public interface MyMessages extends Messages { 

    @DefaultMessage("Hello {0}, how are you?") 
    String hello(String username); 

    @DefaultMessage("Bye-bye {0}!") 
    String bye(String username); 

    @DefaultMessage("Just message!") 
    String empty(); 

} 
関連する問題