2012-01-11 73 views

回答

1

UiBinder模板可以標記爲本地化。您使用 <ui:msg><ui:attribute>元素來指示應翻譯模板的哪些部分,然後在構建應用程序時提供包含 消息的本地化版本的屬性文件。 More

更新時間: 看到這個GWT Dynamic String Internationalization,我認爲你可以找到有一個解決方案。

+0

感謝您的回覆。但是我想知道DYNAMIC i18n是否可能。我知道靜態字符串i18n是可能的與uibinder – javalearner 2012-01-12 07:17:31

+0

該鏈接澄清靜態國際化。你可以從消息界面看到。這不是動態的 – javalearner 2012-01-12 08:28:53

0

回答你的問題 - 是的,i18n由UI Binder支持。請參閱可用文檔herehere。爲了支持我的要求,這裏是直接引用:

UiBinder的...提供了國際化與GWT的國際化設施運行良好的直接支持;

你只需做一些* .properties文件與指定的語言環境,使在GWT-XML國際化模塊,創造出的方法(返回字符串)既可以在Java代碼和用戶界面的XML文件進行訪問的接口。

+0

感謝您的回覆。但是我想知道DYNAMIC i18n是否可能。我知道靜態字符串i18n可以使用uibinder – javalearner 2012-01-12 07:16:42

0

我們已經使用Dictionary完成了該操作。基本上,您使用動態主機頁面(例如jsp)在主機頁面中動態創建常量。要使用UiBinder的使用他們,你有幾種選擇,但最直接的是創建一個圍繞字典包裝類,例如

package org.gwt.dictionary.test 

public class CurrentTheme { 

    Dictionary theme = Dictionary.getDictionary("CurrentTheme"); 

    public String highlightColor() { 
     return theme.get("highlightColor"); 
    } 

    public String shadowColor() { 
     return theme.get("shadowColor"); 
    } 

    public String errorColor() { 
     return theme.get("errorColor"); 
    } 

    public String errorIconSrc() { 
     return theme.get("errorIconSrc"); 
    } 

    public String errorLabel() { 
     return theme.get("errorLabel"); 
    } 

    public String someTextContent() { 
     return theme.get("someTextContent"); 
    } 
} 

然後你可以使用它在gwt.xml這樣

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
    xmlns:g="urn:import:com.google.gwt.user.client.ui"> 
    <ui:with field="themeConstants" type="org.gwt.dictionary.test.CurrentTheme"/> 
    <g:HTMLPanel> 
     <g:Label text="{themeConstants.errorLabel}" styleName="{themeConstants.errorColor}"/> 
     <div class="aler alert-info"><ui:text from="{themeConstants.someTextContent}"/></div> 
    </g:HTMLPanel> 
</ui:UiBinder> 

希望它有幫助