2013-09-16 77 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自己的實現。 –