属性'locale'的GWT I18N javascript问题

时间:2014-08-06 06:16:08

标签: javascript gwt localization internationalization locale

加载我的GWT项目时遇到以下错误(同时尝试让语言环境正常工作......):

Error while executing the JavaScript provider for property 'locale'
com.google.gwt.core.client.JavaScriptException: (TypeError) __gwt_getProperty([string: 'locale']): undefined is not a function
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:249)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:576)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:284)

我按照这些说明操作:

首先在模块文件中:

<inherits name="com.google.gwt.i18n.I18N"/>

<extend-property name="locale" values="en" />
<extend-property name="locale" values="zh" />
<set-property-fallback name="locale" value="en" />
<set-configuration-property name="locale.useragent" value="Y" />

还创建了一个基本的Constants类,如下所示:

import com.google.gwt.i18n.client.Constants;

public interface LocaleConstants extends Constants {

    @Key("locale.name")
    String localeName();

    @Key("locale.code")
    String localeCode();

    @DefaultStringValue("Hello")
    String hello();

[...]

使用相应的属性文件,例如&#39; LocaleConstants_en.properties&#39;:

locale.name=English
locale.code=en
hello=Hi

我从头开始尝试了一个新项目,效果很好。我无法弄清楚现有项目中导致问题的原因。

有任何线索吗?谢谢!

1 个答案:

答案 0 :(得分:1)

确保在主页中设置区域设置(在<head>中):

<meta name="gwt:property" content="locale=en">