如何合并来自不同语言环境的GWT排列?

时间:2014-04-08 18:49:10

标签: java javascript html gwt locale

我在模块xml文件中定义了以下语言环境:

<extend-property name="locale" values="en, en_US, en_GB"/>
<extend-property name="locale" values="de, de_DE" />    

如何只为en,en_US,en_GB和de,de_DE的一个排列获得一个排列?

2 个答案:

答案 0 :(得分:6)

合并不同属性值排列的GWT方式称为SoftPermutations

<collapse-property name="locale" values="en, en_US, en_GB" />   
<collapse-property name="locale" values="de, de_DE" />   

EDITED

关于使用所有语言环境而不是为每种语言选择一种语言环境的好处,您可以利用所有这些语言的差异,这对用户来说非常重要。

认为GWT包含一个完整的i18n堆栈(基于CLDR),用于国际化数字,日期,复数等,并且显示'en' date-picker与{{3}不同因为欧洲人使用星期一作为星期的第一天而不是星期日。

最终排列中javascript的增量并不重要(很少KB),因为只有那些细微差别必须包括在内,因为大多数属性都是在相似语言之间共享的。

当然,您只需要根据所支持的语言翻译您的应用程序,例如,您可以在&#39; en&#39;中编写所有应用程序消息。因为&#39; en_GB&#39;将回归到&#39; en&#39;如果找不到消息,但您仍然可以选择在需要时更改某些消息。

许多人在GWT中使用语言环境做的事情是将所有这些语言系统解除,从而避免排列爆炸<collapse-property name="locale" values="*" />并缩短编译时间。您可以选择在交付生产应用程序时将该行放出,通常在每个交付周期发生一次,您可以让CI服务器编译所有排列。

答案 1 :(得分:0)

如果您没有将这些版本作为用户选项提供,请删除特定国家/地区的版本:

<extend-property name="locale" values="en"/>
<extend-property name="locale" values="de" />

设置默认语言环境:

<set-property-fallback name="locale" value="en"/>