java - 使用 UiBinder 构建的 GWT 应用程序的本地化在托管模式下不起作用

标签 java gwt localization intellij-idea uibinder

使用 UiBinder 构建的 GWT 应用程序的本地化是否在托管模式下工作?它不适合我。这是我所做的:

1) 向 GWT 模块的 XML 添加了语言环境属性

< inherits name="com.google.gwt.i18n.I18N" / >
< extend-property name='locale' values='en'/>
< extend-property name='locale' values='ru'/>
< set-property-fallback name="locale" value="en"/>

2) 在 *.ui.xml 文件中用 , 标记消息

< ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
     ui:generateFormat="com.google.gwt.i18n.rebind.format.PropertiesFormat"
     ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
     ui:generateLocales="default"
     xmlns:g="urn:import:com.google.gwt.user.client.ui">

  < g:HTMLPanel>
     < ui:msg description="Hello Description">Hello!< /ui:msg>  
  < /g:HTMLPanel>
< /ui:UiBinder>

3) 添加了 GWT 编译器选项 -extra

4) 编译项目。在 extra 文件夹中找到后缀为 .GenMessages.properties 的文件。

5) 本地化生成的消息。将每个 .GenMessages.properties 文件复制到与相应 .ui.xml 文件相同的文件夹中。在文件名中用我的语言环境重命名它,例如 .GenMessages_en.properties .GenMessages_ru.properties

6) 重新编译项目。

7) 启动应用程序并更改 URL 中的语言环境变量以进行检查,例如 http://127.0.0.1:8888/TestLocale.html?gwt.codesvr=127.0.0.1:9997&locale=ru

它仍然显示资源的默认英文版本。

我错过了什么?我怎么调试它?日志或输出中没有任何内容。

我在 Windows 下,使用 IntelliJ IDEA 和 Chrome 作为浏览器。

谢谢!

更新:它没有用,因为我有额外的 < set-property name="locale" value="en"/ >在模块配置中 :( 也许它覆盖了 extend-property 标签中的值。

我写了如何使它工作的分步说明 here 以防有人感兴趣。

最佳答案

默认情况下,GWT 生成以包名称开头的属性文件。您是否从文件名中删除了包?

在我的 GWT 项目中最适合我的一件事是使用 LocalizableResource_.properties 作为文件名并将它们全部保存在 com/google/gwt/i18n/client 包中。在 Localization with UiBinder 上查看 GWT 文档

关于java - 使用 UiBinder 构建的 GWT 应用程序的本地化在托管模式下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8064371/

相关文章:

java - 安卓/Java : how to set background color of MaterialShapeDrawable with int Color?

java - 使用 servlet 上传文件 GWT

java - Google Web Toolkit (GWT) 创建读取更新和删除 (CRUD) 应用程序示例

c# - 为什么 string.Format ("{0:d}", DateTime.Now) 在更改本地显示设置后返回 "yyyy-MM-dd"而不是美国本地 "M/d/yyyy"?

java - Firestore异常: Backend ended Listen Stream

java - 对字符串 ArrayList 使用选择排序

java - '线程 "dispatcher-event-loop-0"java.lang.OutOfMemoryError : Java heap space ' error in Spark Scala code 中出现异常

GWT 和 GXT 哪个更好?

iphone - 如何知道 iOS 设备何时插入?

java - 如何使用 SpEL 处理 Thymeleaf 中的本地化消息