i18nCreator使用字符串以外的参数类型生成消息接口

时间:2011-08-19 20:56:15

标签: gwt maven internationalization

我试图学习GWT。我在tutorial

中完成了StockWatcher示例应用

然后我转到下一步:Internationalization(I18N)。

I18N教程让您手动创建Message和Constant接口。其中一个消息文件如下所示:

public interface StockWatcherMessages extends Messages {
    @DefaultMessage("''{0}'' is not a valid symbol.")
    String invalidSymbol(String symbol);

    @DefaultMessage("Last update: {0,date,medium} {0,time,medium}")
    String lastUpdate(Date timestamp);
}

请注意其中一种方法中的Date类型参数。这允许我在调用此方法时传入Date实例,并以局部方式显示。这很好用。

GWT还有一个名为i18nCreator的工具,可以根据相应的.properties文件为您生成这些接口。

我正在使用gwt-maven-plugin构建我的应用和it also supports using the i18nCreator as an automatic part of your build

所以我的问题是,当我使用i18nCreator时,无论是显式还是通过maven插件,我都会得到一个像这样的Message接口:

public interface StockWatcherMessages extends com.google.gwt.i18n.client.Messages {
    @DefaultMessage("''{0}'' is not a valid symbol.")
    @Key("invalidSymbol")
    String invalidSymbol(String arg0);

    @DefaultMessage("Last update: {0,date,medium} {0,time,medium}")
    @Key("lastUpdate")
    String lastUpdate(String arg0);
}

lastUpdate的参数现在是一个字符串。这导致我的其余代码(使用Date实例调用此方法)无法编译。

如何在适当的时候使用除Strings之外的Java类型创建i18nCreator创建接口?我遇到Date这个问题,但我想它可以提出其他类型,例如MoneyDouble或其他类型。

0 个答案:

没有答案