为了使我的 GWT 应用程序可国际化,我创建了一个消息接口(interface),如下所示:
@DefaultLocale("fr")
@Generate(format =
{ "com.google.gwt.i18n.rebind.format.PropertiesFormat" }, fileName = "Messages", locales =
{ "fr", "en" })
public interface MessageResources extends Messages
{
public static final MessageResources MR = GWT.create(MessageResources.class);
@DefaultMessage("Identifiant")
public String login();
@DefaultMessage("Mot de passe")
public String password();
}
然后我将我的项目配置为支持英语和法语,如下所示:
<inherits name='com.google.gwt.i18n.I18N' />
<extend-property name="locale" values="fr" />
<extend-property name="locale" values="en" />
我使用选项 -extra extra 编译了我的项目,并复制了这两个文件。属性与接口(interface)位于同一包中。但是当我运行我的应用程序时,参数 ?Locale=en 不起作用,应用程序仍保持法语!
最佳答案
属性文件是在编译时读取的,因此每次修改它们时都必须重新编译(GWT 编译)。
使用 -extra 进行的第一次编译只是生成“骨架”属性文件的“帮助”;您可以自己编写它(前提是您知道要放什么)。
哦,顺便说一句,它是 locale=en
,而不是 Locale=en
(小写 L)
关于java - GWT:语言环境没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7403322/