【发布时间】:2011-11-09 11:30:33
【问题描述】:
使用 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 文件中带有 , as 的标记消息
< 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) 编译项目。在额外文件夹中找到后缀为 .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,以防有人感兴趣。
【问题讨论】:
标签: java gwt localization intellij-idea uibinder