【问题标题】:GWT. How does internationalization work in UiBinder?总重量。 UiBinder 中的国际化是如何工作的?
【发布时间】:2012-05-19 00:30:47
【问题描述】:

我正在尝试使用 GWT 编写我的第一个项目。 而且我不明白用 UiBinder 实现 GWT 应用程序国际化的原理。 我以前用过JSP。我清楚地了解技术的国际化:

<fmt:message key="myValue" />

在 GWT 中,类似的标签可以有一些内容:

<ui:msg key="myKey" description="myDescription">My content</ui:msg>

我不清楚。这个标签的内容是什么意思?它有什么意义?据我所知,所有数据都应取自.properties 文件。 属性keydescription 是什么意思?它们应该包含哪些值?

如果有人可以解释 UiBinder 中的国际化是如何工作的,我将不胜感激。提前致谢!

【问题讨论】:

    标签: java gwt internationalization uibinder gwt2


    【解决方案1】:

    UiBinder i18n 通过在底层生成Messages interface 工作,因此要了解 UiBinder i18n,您实际上只需要了解 GWT i18n。

    接口中的每一个ui:msg都转化为一个方法,ui:msg的每一个属性转化为该方法上的一个注解,ui:msg的内容转化为一个@DefaultMessage注解的值在方法上,每个小部件或ui:ph 都变成一个占位符并在运行时解析
    同样,顶层ui:UiBinder元素上的一些attribute属性在生成的Messages接口上变成了注解。

    在 GWT i18n 中,您可以将一个语言环境以注释的形式集成到您的代码中(Messages 接口中的@DefaultMessage),而无需为该语言环境创建一个*.properties 文件。语言环境在接口上的@DefaultLocale 注释中给出(UiBinder 中的ui:defaultLocale)。 *.properties 文件中只需要提供其他语言环境的消息。
    (请注意,您不能使用 UiBinder 中 Messages 的所有功能:复数、选择、可选参数等)

    所以,要回答您更具体的问题:key 提供了用于在 *.properties 文件中查找消息的密钥(对于除 ui:defaultLocale 之外的所有语言环境,其中消息在 UiBinder 文件中给出) , 和description 以及meaning 只是给翻译者的提示。

    【讨论】:

      【解决方案2】:

      我认为进行 uibinder 国际化的最佳方法是按照此博客的步骤操作:http://joergviola.blogspot.com.es/2011/07/gwt-uibuilder-internationalisation.html

      我已经测试过了,它就像一个魅力!

      【讨论】:

        猜你喜欢
        • 2011-03-06
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 2011-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多