gwt资源包

gwt资源包,gwt,resources,internationalization,Gwt,Resources,Internationalization,我正在GWT中寻找捆绑属性文件的解决方案,就像在java.util.ResourceBundle中一样 ResourceBundle messageBundle = ResourceBundle.getBundle(baseName.properties , new Locale(language)); Set<String> messagesKey = messageBundle.keySet(); Map<String, St

我正在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));
        }
ResourceBundle messageBundle=ResourceBundle.getBundle(baseName.properties,新语言环境(语言));
设置messagesKey=messageBundle.keySet();
Map messagesMap=newhashmap(messagesKey.size());
for(字符串键:messagesKey){
messagesMap.put(key,messageBundle.getString(key));
}

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

要在客户端使用资源包,只需使用消息接口即可

1) 在客户端包中定义接口MyMessages

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

}
2) 例如,在接口MyMessages.properties和MyMessages\u 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();

}