当前位置: 首页 > 面试题库 >

GWT:在服务器代码中访问i18n消息

长孙知
2023-03-14
问题内容

我有一个扩展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本地化工具,例如ResourceBundle。在此处查找如何使用它的教程。

// Create a ResourceBundle out of your property files
ResourceBundle labels =
  ResourceBundle.getBundle("LabelsBundle", currentLocale);

// Get localized value
String value = labels.getString(key);

在服务器端Java上不能使用GWT特定的方法从属性文件中创建接口并通过延迟绑定提供实现。

如果您无所畏惧并且愿意花费时间,则可以执行代码生成步骤以读取属性文件并为消息接口生成实现类。这正是Google GWT编译器在后台执行的操作。



 类似资料:
  • 问题内容: 实施GWT服务器端国际化的最佳方法是什么? 使用本地Java属性文件(不确定如何读取以及如何找到正确的语言文件)(unicode字符串需要ASCII编码) 使用GWTI18N.java -GWT模块,该模块可让您在客户端和服务器上无缝使用GWT I18N,并使用“ java.lang.reflect.Proxy方法” 使用Kotori I18N -… 还有其他想法吗? 如何找到本地化并

  • 如何在GWT应用程序的服务器端进行一次初始化? 我可能想的很像,您可以重写,但旧习惯很快就会消失;) 我想做的是: > < li> 加载一组属性 建立与数据库的连接

  • 我在Android和iOS应用程序中使用FCM。客户端代码工作正常,因为我可以从Firebase控制台向两个平台发送通知,而不会出现任何问题。通过我的C#代码,我可以成功地将通知发送到android设备,但除非直接来自Firebase通知控制台,否则通知永远不会出现在iPhone上。我不知道是什么给你的。 C#服务器端代码 我的服务器端代码无法在iPhone上运行通知,但Firebase对此做出了

  • 服务器错误信息来自下述源文件: ·错误消息信息列在share/errmsg.txt文件中。“%d”和“%s”分别代表编号和字符串,显示时,它们将被消息值取代。 ·错误值列在share/errmsg.txt文件中,用于生成include/mysqld_error.h和include/mysqld_ername.h MySQL源文件中的定义。 ·SQLSTATE值列在share/errmsg.txt文

  • 问题内容: 我已经安装了django服务器,可以如下访问 假设我的IP是xxxx。 当我在同一网络下的另一台PC上运行时 它不起作用。 我可以轻松地用那台计算机ping我的IP。 而且在我的81号港口我有apache,可以像下面这样方便地访问 可能是什么问题?我在Django是否需要其他东西 问题答案: 运行Django开发服务器 这就是你想要的。为了进一步帮助你,你应该执行以下操作: 顺便说一句

  • 我是否遗漏了任何配置等? 事先非常感谢