Gwt 使用本地以外的自定义本地消息

Gwt 使用本地以外的自定义本地消息,gwt,localization,internationalization,Gwt,Localization,Internationalization,我们在定制GWT的I18N功能时遇到问题 我们目前正在使用一个静态属性文件来生成代码中使用的接口。除了在运行时加载默认区域设置(如“de”或“en”),我们还寻找一种加载依赖于另一个属性(例如称为“dist”)的自定义语言文件的方法 详细内容: 在我们的.gwt.xml中,两个属性的定义如下: <extend-property values="de" name="locale"/> <extend-property values="en" name="locale"/>

我们在定制GWT的I18N功能时遇到问题

我们目前正在使用一个静态属性文件来生成代码中使用的接口。除了在运行时加载默认区域设置(如“de”或“en”),我们还寻找一种加载依赖于另一个属性(例如称为“dist”)的自定义语言文件的方法

详细内容:

在我们的.gwt.xml中,两个属性的定义如下:

<extend-property values="de" name="locale"/>
<extend-property values="en" name="locale"/>
<define-property name="x.dist" values="dist1,dist2,dist3"/>

我们现在希望有一个包含所有泛型属性的语言文件,对于每个发行版和语言,还有其他可以包含特殊值的语言文件。 所有这些接口也应该使用maven gwt插件“i18nMessagesBundle”自动生成

我们已经尝试使用“SpecialLocalMessage”接口来扩展所有特殊的dist接口,但是我们无法通过
替换gwt.xml中的那些接口,因为有类,但不需要接口


您看到这个问题的解决方案了吗?

将只在编译时运行,而maven goal I18nMessageBundle将在编译器运行之前运行,并创建编译器将使用的接口。除了亲自编写一个像I18NMessageBundle这样的应用程序来创建接口,然后在编译之前使用自定义maven目标调用它之外,我看不到任何其他方法来实现您的目的。或者,您可以尝试使用语言子集,如en_US或en_UK(我认为没有什么能阻止你拥有像en_dist1、en_dist2这样的东西!)在普通en或de值的基础上添加更多特殊值。这样您就不需要自定义属性,这会使事情变得更简单。我在GWT邮件列表中也提出了这个问题,并在那里得到了很好的响应。只想在这里再次分享:只在编译时运行,而maven goal I18nMessageBundle则运行在编译器运行并创建编译器将使用的接口之前。除了亲自编写I18NMessageBundle之类的应用程序来创建接口,然后使用编译之前运行的自定义maven目标调用它之外,我看不到任何方法来做您想要做的事。或者,您可以尝试使用语言子集,如en_US或en_UK(我认为没有什么能阻止你拥有像en_dist1、en_dist2这样的东西!)在正常的en或de值之上添加更多的特殊值。您不需要自定义属性,这会使事情变得更简单。我在GWT邮件列表中也问过这个问题,并在那里得到了很好的响应。只想在这里再次分享: