如何让Hermes切换到其他属性文件而不是默认属性?

时间:2014-08-06 02:34:20

标签: gwt gwtp

好的,我正在构建GWT应用程序,我正在使用Hermes来管理服务器端的constants

这是我做的:

我创建了MyConstantsWithLookup.properties(默认英文版)& MyConstantsWithLookup_de.properties(德文版)&客户端软件包中的MyConstantsWithLookup.java

-MyConstantsWithLookup.properties有

ID = 1245


-MyConstantsWithLookup_de.properties

ID = 4556

-MyConstantsWithLookup.java

public interface MyConstantsWithLookup extends ConstantsWithLookup {
   int id();
}

Server包中有Data.javaData.java

public static int id(){
    try {
        MyConstantsWithLookup myConstantsWithLookup = Hermes.get(MyConstantsWithLookup.class, "");
        return myConstantsWithLookup.id();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return "";
}

好的,如果我用英语打开页面,它可以正常工作。例如,myDomain.com它会正确显示id=1245。但是,如果我用德语myDomain.com?locale=de打开页面,那么它就不会选择id=4556但仍使用旧ID。

我在这里做错了吗?

如何解决?

1 个答案:

答案 0 :(得分:0)

找到了使用MyConstants的解决方案

在客户端,

public interface MyConstants extends ConstantsWithLookup{
    String id();
}

MyConstants_de.properties

ID = 2121
MyConstants.properties

ID = 4545

在服务器

MyConstants myConstants = Hermes.get(MyConstants.class, "");
myConstants.id(); //will print id=4545


MyConstants myConstants = Hermes.get(MyConstants.class, "de");
myConstants.id(); //will print id=2121