blogjava's web log

          blogjava's web log
          ...

          jsf學習二(國際化)

          國際化(I18N)就是設計軟件應用,在不改變它們程序邏輯的前提下支持各種語言和區域
          本地化(L10N)就是設計軟件應用支持特定地區
          由于數據經過本地化,因此同一應用程序能在全世界使用
          當增加一種新的語言時,應用不需要重新編譯
          在顯示和文化相關的數據(例如日期或貨幣)時,格式應用遵循用戶的語言和區域
          文本內容(如狀態消息和組件標簽)不是硬編碼到應用程序中,而通常是從文本文件中動態提取的

          國際化的步驟

          創建一個包含應用程序默認語言的鍵/值對的文件
          ?文件命名格式:
          Filename_languagecode_CountryCode.properties
          例如:
          ApplicationResources_zh_CN.properties



          JSF 提供 <f:loadBundle> 標簽以加載資源包
          此標簽具有兩個屬性:basename 和 var
          basename 指定要加載的 properties 文件的名稱
          var屬性用來為該properties文件起一個別名





          < f:view >
          ????
          < f:loadBundle? basename ="message" ?vars ="msg" ? />
          ….
          ????
          < h:outputLabel? value ="#{msg.first}" ? />
          </ f:view >


          資源文件編譯

          native2ascii –encoding gb2312 messagesCN.properties? messages_zh_CN.properties




          一個登陸實現國際化

          后臺檢查登陸是否正確
          ??public?String?Login(string?userName,string?passWord)?{
          ??????
          if?(?UserName=="blog")?{
          ??????????
          return?"success";
          ??????}
          ?else?{
          ?????FacesContext?context?
          =?FacesContext.getCurrentInstance();
          ?????ResourceBundle?bundle?
          =?ResourceBundle.getBundle("messages",?context.getViewRoot().getLocale());
          ??????String?msg?
          =?"";
          ?????
          if?(?username==""?||?passWord=="")
          ?????????msg?
          =?bundle.getString("username_isnull");
          ??
          ????context.addMessage?(
          null,?new?FacesMessage(msg));
          ????
          return?"shibai";?

          ?}

          ??}


          前臺
          <f:loadBundle?basename="message"?var="msg"/>
          <html>
          ?
          <f:view>
          ?????
          <h:form>
          ??????
          <h:outputText?value="#{msg.login}"/>?<br/>
          ??????
          <h:messages?style="color:?blue"/><br/>
          ??????
          <h:inputText?id="username"?value="#{UserBean.userName}"
          ???????????????????????????required
          ="true">
          ???????????
          <f:validateLongRange?minimum="0"?maximum="20"/>
          ??????
          </h:inputText><br/><br/>


          ????
          <h:outputText?value="#{msg.password}"/>?<br/>
          ??????
          <h:messages?style="color:?blue"/><br/>
          ??????
          <h:inputText?id="pssword"?value="#{UserBean.passWord}"
          ???????????????????????????required
          ="true">
          ???????????
          <f:validateLongRange?minimum="0"?maximum="16"/>
          ??????
          </h:inputText><br/><br/>


          ?????
          <h:commandButton?value="#{msg.button_title}"?
          ??????????????????????????????????????action
          ="#{userBean.Login}"/>
          ???
          </h:form>
          ?
          </f:view>
          </html>



          posted on 2006-08-20 10:43 record java and net 閱讀(2363) 評論(1)  編輯  收藏 所屬分類: jsf學習

          評論

          # re: jsf學習二(國際化) 2007-08-24 14:37 牛人

          JSF不能實現完全國際化!  回復  更多評論   

          導航

          常用鏈接

          留言簿(44)

          新聞檔案

          2.動態語言

          3.工具箱

          9.文檔教程

          友情鏈接

          搜索

          最新評論

          主站蜘蛛池模板: 溧阳市| 广东省| 大冶市| 沁水县| 江孜县| 钟祥市| 阜城县| 衡山县| 棋牌| 广河县| 长沙县| 南昌县| 兰西县| 宁海县| 曲周县| 澄江县| 法库县| 若羌县| 仁化县| 宝清县| 昌江| 木兰县| 山阳县| 大港区| 南昌市| 广元市| 高碑店市| 广饶县| 黎平县| 井研县| 蕉岭县| 保亭| 托克逊县| 东乡族自治县| 罗山县| 罗江县| 铜山县| 湟源县| 海南省| 安福县| 弋阳县|