我在模块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的一个排列获得一个排列?
答案 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"/>