禍兮福所倚,福兮禍所伏

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

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            0 Posts :: 8 Stories :: 0 Comments :: 0 Trackbacks

             國(guó)際化又叫118N是一種處理引擎,通過(guò)它們一個(gè)應(yīng)用程序能夠適應(yīng)各種語(yǔ)言和地區(qū)而不用修改應(yīng)用邏輯。為了支持國(guó)際化,一個(gè)應(yīng)用必須考慮下列問(wèn)題。

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

             2.日期,時(shí)間,貨幣,數(shù)字,計(jì)量單位和電話號(hào)碼必須基于本地參數(shù)和文化格式化顯示。

            在今天的全球化市場(chǎng)一個(gè)帶國(guó)際化支持的應(yīng)用是很重要的。實(shí)現(xiàn)國(guó)際化功能比在程序開發(fā)完后合并多語(yǔ)言要方便得多。國(guó)際化類通過(guò)JDK提供的本地類處理本地顯示。一個(gè)本地對(duì)象表現(xiàn)了一個(gè)特定地區(qū)的地理,政治,文化。下面討論struts怎么實(shí)現(xiàn)國(guó)際化。

              本地對(duì)象

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

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

              使用action對(duì)象

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

              使用元素

              在struts-config.xml文件中通過(guò)controller標(biāo)簽,標(biāo)記RequestProcessor從

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

              國(guó)際化提示和標(biāo)簽

              因?yàn)橐С謬?guó)際化,所以所有的錯(cuò)誤提示,指導(dǎo)性的提示,信息,標(biāo)題,GUI組件的標(biāo)簽,輸入標(biāo)簽必須必須單獨(dú)保存,通過(guò)本地特定方式處理。struts框架提供了MessageResources類用來(lái)模擬JDK提供的ResourceBundle類。本地特定的資源包提供一個(gè)分離本地特定信息的方式。資源包的成員都使用一個(gè)共同的基本名字,但是名字的額外部分標(biāo)識(shí)不同的本地性。默認(rèn)的資源包也有同樣的基本名字,沒(méi)有找到匹配的本地信息時(shí)就用默認(rèn)包。例如:

              如果資源包名為MyApplicationResources,這這個(gè)包家族的成員名字會(huì)是。

              MyApplicationResources_en 英文包

              MyApplicationResources_fr 法語(yǔ)包

              MyApplicationResources_fr_FR  法國(guó)的法語(yǔ)包
              MyApplicationResources_fr_CA   加拿大的法語(yǔ)包

              資源包搜索順序如下:

              1. MyApplicationResources_fr_FR 預(yù)期的包

              2. MyApplicationResources_fr 預(yù)期包沒(méi)有時(shí)找它
              3. MyApplicationResources_en_US 沒(méi)有匹配包時(shí)用默認(rèn)包
              4. MyApplicationResources_en 沒(méi)有默認(rèn)包時(shí)用它
              5. MyApplicationResources 最基本的包

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

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

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

          posted on 2005-06-09 09:08 塞翁 閱讀(164) 評(píng)論(0)  編輯  收藏 所屬分類: Java翻譯
          主站蜘蛛池模板: 阿瓦提县| 上饶市| 巩留县| 昔阳县| 湖南省| 库伦旗| 武汉市| 伊通| 淳安县| 于都县| 金秀| 竹北市| 台东县| 汉中市| 西畴县| 萨嘎县| 黔江区| 崇左市| 诸暨市| 景东| 武功县| 新丰县| 深泽县| 清水县| 江川县| 抚州市| 论坛| 大足县| 广平县| 衡南县| 中卫市| 盐津县| 洮南市| 曲阜市| 三原县| 孟连| 沙湾县| 乌鲁木齐县| 那坡县| 丹寨县| 山阳县|