0

即使我将语言环境更改为其他语言,GWT Datepicker 也会以“en”语言环境显示。我不想在某些 *.gwt.xml 文件中指定它,我想要的是它应该从浏览器语言环境中获取它。任何解决方法????

4

3 回答 3

1

GWT 默认不使用浏览器语言环境。你必须告诉它这样做。

    <set-configuration-property name="locale.useragent"
    value="Y" />
<set-configuration-property name="locale.searchorder"
    value="queryparam,cookie,useragent,meta" />

请注意,这不适用于所有浏览器。我想这就是默认情况下不激活它的原因。到目前为止,IE 是我所知道的唯一例外。

于 2013-01-31T08:20:34.997 回答
1

他们称之为动态 I18N只是提供翻译的常量。对于其他所有内容(数字格式、日期格式、复数规则等),您必须在您的应用程序 (<extend-property name="locale" values="…" />) 中编译支持的语言环境。

作为替代方案,您可以使用您自己的实现(使用规则)覆盖(使用<replace-with>规则)各种实现(在您的情况下使用DatePicker, the DateTimeFormatInfoImpl),这些实现将从 a Dictionary(或等效)而不是从编译的数据中获取它们的信息。不过,这些 API 在 GWT 版本之间可能会发生变化(我已经可以告诉您,它们在 GWT 2.6 中发生变化)。

最后,当您添加对新语言环境的支持时,重新编译您的 GWT 应用程序可能比沿着上述道路更容易。

于 2013-01-31T09:12:51.610 回答
1

如果您想使用浏览器语言环境(通常会非常有限,并非在所有情况下都可用等),那么您需要结合 Thomas 的答案(特别是在扩展属性标签中指定您的应用程序应支持的所有语言环境) ) 并设置 locale.useragent 属性(您不需要设置 locale.searchorder ,除非您想更改顺序或禁用某些提供程序)。

具体来说,在您的应用程序 gwt.xml 文件中,添加以下内容:

<inherits name="com.google.gwt.i18n.I18N"/>
<extend-property name="locale" values="en"/>
<extend-property name="locale" values="fr"/>
... etc ...
<set-configuration-property name="locale.useragent" value="Y"/>

您不需要任何替换规则。请参阅GWT i18n 文档

于 2013-02-11T08:21:22.853 回答