我试图学习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
这个问题,但我想它可以提出其他类型,例如Money
或Double
或其他类型。