编程语言
首页 > 编程语言> > java – 使用UiBinder构建的GWT应用程序的本地化在托管模式下不起作用

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

作者:互联网

使用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文件中的Taged消息with,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以防有人感兴趣.

解决方法:

默认情况下,GWT生成以包名开头的属性文件.你从文件名中删除了包吗?

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

标签:java,intellij-idea,localization,gwt,uibinder
来源: https://codeday.me/bug/20190630/1336516.html