在我的申请中,我想支持同一国家的2种语言(en,tr)。所以我不希望我的应用程序有不同的数字/日期格式。
没有任何语言环境设置(这意味着只有默认语言环境)我有6个排列。 但是当我添加tr和en时,我的排列变为18.所以我仍然拥有图片中的默认语言环境。
所以我的第一个问题 如何摆脱默认语言环境(我希望我的默认设置为我定义的en)
我只需要针对特定于语言环境的消息进行本地化,只需要一个接口和2个消息属性文件。
我不明白为什么它应该为这3个文件多次编译排列。有没有办法通过保留区域设置来加快编译速度。
将servlet中的locasges作为json加载到locale更有意义,并通过扩展消息接口而不是有很多排列来实现GWT编译时的接口。
答案 0 :(得分:0)
要减少编译时间,可以使用-localWorker [核心数]。这将告诉GWT使用[核心数]进行编译。
在您的模块描述符中,您可以通过
添加可用的区域设置<extend-property name="locale" values="en_EN"/>
要设置默认语言环境,请使用以下命令:
<set-property name="locale" value="en_EN" />
这应该将排列数减少到12个。
当然,您可以根据您的语言环境加载消息。这意味着,每次启动应用程序时,都会从服务器加载消息。这需要时间,用户必须等待。它还会增加应用程序的大小。用户必须等待更长时间才能加载应用程序并开始使用它。
我个人会使用动态加载消息,如果我想在不重新加载应用程序的情况下切换语言环境,或者是否经常编辑消息并且我不想每次都编译应用程序。
答案 1 :(得分:0)
如果您不想要多个排列,可以使用动态i18n:
http://www.gwtproject.org/doc/latest/DevGuideI18n.html#DevGuideDynamicStringInternationalization
答案 2 :(得分:0)
感谢您的回答。 所以这个问题的解决方案如下。现在总排列是6 * 2 = 12而不是6 * 3。因此,defualt语言环境就消失了。
<extend-property name="locale" values="en,tr"/>
<set-property-fallback name="locale" value="en"/>
<set-property name="locale" value="en,tr"/>
但是我还是找不到一种方法来处理消息传递而不增加排列大小。