禍兮福所倚,福兮禍所伏

          想隨便當個小職員,隨便賺點錢然后隨便和一個不美也不丑的普通女孩結婚,隨便生兩個孩子,先生個女孩再生個男孩。等女兒結婚,兒子也能夠獨擋一面的時候,然后就退休,然后每天過著下著象棋和圍棋的悠閑生活。然后在自己的老婆死之前自己先老死這種生活多美好呀!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            0 Posts :: 8 Stories :: 0 Comments :: 0 Trackbacks

             國際化又叫118N是一種處理引擎,通過它們一個應用程序能夠適應各種語言和地區而不用修改應用邏輯。為了支持國際化,一個應用必須考慮下列問題。

             1.文本,錯誤提示,異常提示,GUI組件標簽必須放到資源文件中。這些資源文件容納下面介紹的特定的信息。

             2.日期,時間,貨幣,數字,計量單位和電話號碼必須基于本地參數和文化格式化顯示。

            在今天的全球化市場一個帶國際化支持的應用是很重要的。實現國際化功能比在程序開發完后合并多語言要方便得多。國際化類通過JDK提供的本地類處理本地顯示。一個本地對象表現了一個特定地區的地理,政治,文化。下面討論struts怎么實現國際化。

              本地對象

               struts類提供了118N支持,用getAttribute(Action.LOCALE_KEY)從HttpSession中獲得本地特定信息。本地對象使用下面介紹的幾種方式保存在session中。

               使用HtmlTag:定制的標簽org.apache.struts.taglib.html.HtmlTag插入到jsp中.這是也聲明的方式保存。當locale為true時,標簽邏輯會使用HttpServletRequest.getLocale()方法獲得本地對象。getLocale方法返回客戶端瀏覽器基于Accept-Language header接受的內容的首選本地對象。當客戶端沒有提供一個Accept-Language header一個默認的本地對象將返回。如果session不存在就會創建,然后本地對象將用Action.LOCALE_KEY存到session對象中。HTML標簽接著使用本地對象的語言屬性設置特定語言到輸出流中。這種方式本地對象存儲一次;以后的locale=true的操作將不能替換session中的本地對象。這種方式最好用在用戶更改瀏覽器本地設置時。

              使用action對象

              如果要變成改變本地對象,action類提供了setLocale方法使用Action.LOCALE_KEY保存本地對象到session中。這種設置本地對象的方式最好用在用戶通過點擊UI組件選擇HTML表單的本地化方式時。但是,如果本地化資源正在加載,而用戶正在改變本地化方式時會引起錯誤。當一個本地化改變時最好在重置所有本地資源且可控的方式下進行。

              使用元素

              在struts-config.xml文件中通過controller標簽,標記RequestProcessor從

              HttpServletRequest對象獲得本地對象,用Action.LOCALE_KEY把本地對象放到session中。如果value=true,本地對象將通過request. getLocale()獲得然后保存到session中(如果以前沒有保存)

              國際化提示和標簽

              因為要支持國際化,所以所有的錯誤提示,指導性的提示,信息,標題,GUI組件的標簽,輸入標簽必須必須單獨保存,通過本地特定方式處理。struts框架提供了MessageResources類用來模擬JDK提供的ResourceBundle類。本地特定的資源包提供一個分離本地特定信息的方式。資源包的成員都使用一個共同的基本名字,但是名字的額外部分標識不同的本地性。默認的資源包也有同樣的基本名字,沒有找到匹配的本地信息時就用默認包。例如:

              如果資源包名為MyApplicationResources,這這個包家族的成員名字會是。

              MyApplicationResources_en 英文包

              MyApplicationResources_fr 法語包

              MyApplicationResources_fr_FR  法國的法語包
              MyApplicationResources_fr_CA   加拿大的法語包

              資源包搜索順序如下:

              1. MyApplicationResources_fr_FR 預期的包

              2. MyApplicationResources_fr 預期包沒有時找它
              3. MyApplicationResources_en_US 沒有匹配包時用默認包
              4. MyApplicationResources_en 沒有默認包時用它
              5. MyApplicationResources 最基本的包

              struts使用MessageResources對象提供相對容易的方式實現上述的機制。MessageResources對象通過下面的屬性文件定義的名/值對初始化。你只需要在struts-config.xml定義MessageResources的基本名字,就可以按一致的搜索方式處理本地資源文件。

               配置文件中的parameter屬性值聲明了基本的不帶本地信息的屬性文件。這個基本的資源文件名為MyApplicationResources.properties,本地文件可能取名為MyApplicationResoures_localeSpecificExtension.properties.對每一個程序,我們可以定義一個或多個基本包名字。消息資源對象由控制器中的ActionServlet根據Globals.MESSAGES_KEY(和Action.MESSAGES_KEY相同)保存到ServletContext中,或者是多個消息資源時,所有消息資源對象使用元素保存。為了能訪問request handlers中的消息資源對象,action類提供了方便的方法Action.getResources通過消息對象特定的標識Key從ServletContext中獲得消息資源。每個消息資源對象通過處理下列的本地屬性文件來獲得本地消息。屬性文件通過配載文件參數標簽標識基本的消息資源名。

              要獲得本地消息,傳遞本地消息key參數給MessageResources.getMessage即可。使用Action.LOCALE_KEY可以從session中獲得本地對象。當給MessageResources.getMessage提供一個對象參數,獲得的消息將作為一個消息格式模式并轉換為消息格式對象。消息格式對象然后調用MessageFormat.format方法同時傳遞被適當格式化的對象。消息格式化類不是本地特定的,因此相關消息格式模式和對象必須獲得本地化信息到帳號中。消息資源API提供了許多方法處理消息;相關JavaDoc可以在http://jakarta.apache.org/struts/api/index.html查到。

          posted on 2005-06-09 09:08 塞翁 閱讀(163) 評論(0)  編輯  收藏 所屬分類: Java翻譯
          主站蜘蛛池模板: 永泰县| 鄂州市| 周至县| 延吉市| 利津县| 莎车县| 海盐县| 南木林县| 江西省| 鹤山市| 临沧市| 唐山市| 泰和县| 汨罗市| 金川县| 嘉黎县| 六枝特区| 泸州市| 宜黄县| 诏安县| 定州市| 乌什县| 那坡县| 苏尼特右旗| 徐闻县| 盖州市| 桃园县| 乐昌市| 宝坻区| 沙坪坝区| 青岛市| 石渠县| 澎湖县| 寻乌县| 广西| 高清| 东宁县| 安图县| 东乡县| 平湖市| 厦门市|