2013-09-16 52 views
2

我正在开发一个大型的GWT项目(实际上是SmartGWT),其中编译时间和本地化常量管理问题开始引起很大的痛苦。我们在这一点上编译了7种语言,GWT编译花费了大约60分钟(在我们的构建机上的3个处理器上)。如果我们将来使用23种语言,这真的会杀死我们。GWT中的本地化替代方案

我们已经探索了在服务器端数据库中管理自己翻译的可能性,那很好。不幸的是,作为GWT一部分的内置字符串仍然需要我们为X语言构建。

从翻译工作流的角度来看,我们也不喜欢GWT中的整个模型。像Web4J这样的东西在处理数千个字符串时确实是一个更好的模型,但我不知道如何将它集成到GWT中。

具体而言,我正在寻找一种避免在GWT中为多种语言构建时编译成本高的方法。另外,我想转向Web4J这种更易于维护和工作流程友好的范例。如果有人知道如何将Web4J集成到GWT中以及如何处理GWT的本地字符串,那将会很有帮助。

+0

你的问题是精确?你想要一个替代品列表,知道如何加快编译时间,或者你想要关于GWT与Web4J集成的意见吗? – otonglet

回答

1

正常的做法是使用Dictionary。请参阅GWT-I18指南以查看此替代方案。

基本上,你必须检测用户在服务器端使用的语言,然后服务器呈现你的应用程序的index.html包括一个javascript对象与应用程序的所有国际化字符串。

将帖子

如果你想一次编译,可以collapse性能在你的模块文件:

<collapse-property name="locale" values="*" /> 
+0

但是由于内嵌的GWT字符串资源,您仍然需要编译所有语言,不是吗? –

+0

例如,DatePicker控件的本地化字符串为月份名称,星期几等。 –

+0

Dictionary被认为是实现自己的常量,日期和数字gwt使用i18n。改变它的方法是使用延迟绑定,并用你的Dictionary替换'DateTimeFormatInfoImpl' bu自己的实现。 –