gwt资源包

时间:2012-02-09 13:36:56

标签: gwt resources internationalization

我正在寻找GWT中的解决方案来捆绑属性文件,就像我在java.util.ResourceBundle中那样

        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));
        }

2 个答案:

答案 0 :(得分:3)

最接近它的是ContstantsWithLookup(但你无法从中获取密钥列表)或Dictionary(但它不适用于* .properties文件,仅适用于js对象)

答案 1 :(得分:1)

要在客户端使用资源包,只需使用Messages接口。

1)在客户端软件包

中定义接口MyMessages
public interface MyMessages extends Messages {
    String hello(String username);
    String bye(String username);
    String empty();

}

2)例如,在界面MyMessages.properties和MyMessages_ru.properties旁边创建属性文件\文件。属性键必须等于方法名称。

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

3)在gwt模块中创建消息对象

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

4)使用消息

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

您也可以在界面代码中通过注释定义默认消息,例如

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();

}