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