【问题标题】:Localization of GWT app built with UiBinder doesn't work in hosted mode使用 UiBinder 构建的 GWT 应用程序的本地化在托管模式下不起作用
【发布时间】: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 作为浏览器。

谢谢!

更新:它不起作用,因为我在模块配置中有额外的 &lt; set-property name="locale" value="en"/ &gt; :( 也许它覆盖了来自 extend-property 标记的值。

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

【问题讨论】:

    标签: java gwt localization intellij-idea uibinder


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      .properties 文件不必位于客户端包下。关键是要确保无论您决定将属性文件存储在何处,都要确保它所在的包也在您的模块路径中。在我的项目中,我通常将属性文件放在 res 包下:

      com/project/gwt
      com/project/gwt/client
      com/project/gwt/res
      com/project/gwt/res/strings
      

      然后主界面以及每种语言的所有单独属性文件都放在字符串下。只要您的 module.xml 文件包含该行,这就会正常工作

      <source path="res" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-27
        • 1970-01-01
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多