0
還有Uibinder的做法,如上所述做i18n here
然後對GWT i18n有this的建議。uibinder的替代方案I18n
我在考慮替代方案,因爲我遇到了第一個解決方案的一些問題。 我想知道這兩種方法的優點和缺點,所以我知道該選什麼。
請指教。
還有Uibinder的做法,如上所述做i18n here
然後對GWT i18n有this的建議。uibinder的替代方案I18n
我在考慮替代方案,因爲我遇到了第一個解決方案的一些問題。 我想知道這兩種方法的優點和缺點,所以我知道該選什麼。
請指教。
第一個解決方案非常冗長,要求您將本地化文件放在特定的文件夾中,並將其描述爲a kind of a nightmare,但它確實支持帶有(運行時)變量的文本。第二個解決方案不支持消息中的變量,但更容易使用。
第二個解決方案支持2個用例。這是他們如何看兩種解決方案:
明文:
解決方案1:
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
ui:generateLocales="default">
<div><ui:msg key="helloWorld" description="Greeting">Hello, world.</ui:msg></div>
</ui:UiBinder>
解決方案2:
<ui:with field='i18n' type='x.y.client.i18n.MyMessages' />
....
<div><ui:text from="{i18n.helloWorld}" /></div>
在上述方案1,在標籤內的文本會是默認文本,說明位於描述屬性中。在第二種解決方案中,您可以將其添加到接口類MyMessages
中,該接口類擴展了Messages
。
靜態方法參數:
解決方案1:
<th title="Gross receipts">
<ui:attribute ui:name='title' ui:description='Tooltip text for gross column'/>
...
</th>
解決方案2:
<th title="{i18n.grossReceiptsTitle}">...</th>
像傳遞參數消息的任何更高級的使用是不可能的溶液2,但可以在initWidget
調用後總是回退以將其添加到您的構造函數中。
當您在消息中包含小部件時,UiBinder I18N真正發光,例如'作爲一個 ,我想 ,這樣 .'。使用'ui:baseMessagesInterface',這是一個噩夢,遠遠沒有像所謂的「解決方案2」那麼簡單。 –
2012-07-26 16:55:38