java - GWT:语言环境没有改变?

标签 java gwt internationalization

为了使我的 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/

相关文章:

ruby-on-rails - Globalize3 - 尝试将翻译添加到现有模型时出现迁移错误

ruby-on-rails - 如何获取模型中的全局化字段列表?

java - commons-httpclient 和 httpclient 之间有什么关系,都来自 apache

java - 使用柯里化(Currying)将内容写入文本文件

java - 使用 SimpleDateFormat 进行不一致的日期解析

java - 将 StyleName 设置为 gwt dockLayoutPanel 子项

java - 如何从 WSDL 文件生成 gwt 类

java - SimplePanel 未显示

java - 具有列表 getter 的 Hibernate HQL

fonts - 关于多语言支持的字体和字符集,我需要了解什么