我有一个扩展的接口com.google.gwt.i18n.client.Messages
类,我用它在 GWT 应用程序中检索 i18n 消息。它看起来像这样:
public interface MyMessages extends com.google.gwt.i18n.client.Messages {
@DefaultMessage("Hello world")
@Key("message1")
String message1();
@DefaultMessage("Hello again")
@Key("message2")
String message2();
//...
}
通常,我使用创建它的实例GWT.create()
像这样:
private MyMessages messages = GWT.create(MyMessages.class);
但是,这不适用于服务器端代码,仅适用于客户端代码(它会抛出一个错误,表明 GWT.create() 只能在客户端代码中使用)。
答案是类似的问题指向一个可以下载的单独的库,它可以让您访问服务器上的 i18n 消息,但我不想下载任何额外的库(这似乎是一个简单的问题,必须有一个简单的解决方案)。
总之:如何在服务器端代码中访问我的 i18n 消息?谢谢。
在服务器端,您可以使用标准 Java 本地化工具,例如资源包.
Look here有关如何使用它的教程。
// Create a ResourceBundle out of your property files
ResourceBundle labels =
ResourceBundle.getBundle("LabelsBundle", currentLocale);
// Get localized value
String value = labels.getString(key);
从属性文件创建接口并通过延迟绑定提供实现的 GWT 特定方法不能在服务器端 Java 上使用。
如果您无所畏惧并且愿意花时间,您可以实现代码生成步骤来读取属性文件并为消息接口生成实现类。这正是 Google GWT 编译器在幕后所做的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)