




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
JAVA應(yīng)用開發(fā)詳解第11章:JAVA常用類庫
——國際化程序MLDN軟件教學(xué)研發(fā)部本章目標(biāo)掌握國際化程序的基本實現(xiàn)原理掌握資源文件的作用掌握Locale類的作用掌握ResourceBundle類的作用可以使用MessageFormat處理動態(tài)文本了解資源類的使用國際化程序國際化的操作就是指一個程序可以同時適應(yīng)多門語言,即:如果現(xiàn)在程序者是中國人,則會以中文為顯示文字,如果現(xiàn)在程序的使用者是英國人,則會以英語為顯示的文字,也就是說可以通過國際化操作,讓一個程序適應(yīng)各個國家的語言要求。國際化程序的實現(xiàn)思路國際化實現(xiàn)的支持類如果要想實現(xiàn)Java程序的國際化操作必須通過以下的三個類完成。java.util.Locale:用于表示一個國家語言類。java.util.ResourceBundle:用于訪問資源文件。java.text.MessageFormat:格式化資源文件的占位字符串。Locale要想實現(xiàn)國際化首先就要認(rèn)識Locale類,因為此類是實現(xiàn)國際化的一個重要類。國家都有對應(yīng)的ISO編碼中國的編碼為:zh-CN英語-美國的編碼為:en-US法語的編碼為:fr-FRNo.方法定義類型描述1publicLocale(Stringlanguage)構(gòu)造根據(jù)語言代碼構(gòu)造一個語言環(huán)境2publicLocale(Stringlanguage,Stringcountry)構(gòu)造根據(jù)語言和國家構(gòu)造一個語言環(huán)境ResourceBundleResourceBundle類的主要是讀取屬性文件,讀取屬性文件的的時候可以直接指定屬性文件的名稱(指定名稱時不需要文件的后綴),也可以根據(jù)Locale所指定的區(qū)域碼來選取指定的資源文件。No.方法類型描述1publicstaticfinalResourceBundlegetBundle(StringbaseName)普通取得ResourceBundle的實例,并指定要操作的資源文件名稱2publicstaticfinalResourceBundlegetBundle(StringbaseName,Localelocale)普通取得ResourceBundle的實例,并指定要操作的資源文件名稱和區(qū)域碼3publicfinalStringgetString(Stringkey)普通根據(jù)key從資源文件中取出對應(yīng)的value使用ResourceBundle類找到資源文件info=HELLOimportjava.util.ResourceBundle;public
classInterDemo01{
public
static
voidmain(String[]args){ ResourceBundlerb=ResourceBundle.getBundle("Message"); //找到資源文件
System.out.println("內(nèi)容:"+rb.getString("info")); //從資源文件中取得內(nèi)容
}}定義資源文件:Mperties從資源文件中取得內(nèi)容JAVA國際化程序程序開發(fā)國際化要求:下面完成一個簡單的國際化操作,可以根據(jù)Locale所選擇的國家不同,輸出不同國家的你好。中文:你好!英語:Hello!法語:Bonjour!第一步:建立資源文件info=\u4f60\u597d\uff01info=Hello!info=Bonjour!
中文的屬性文件:Message_zh_CN.properties英語的屬性文件:Message_en_US.properties法語的屬性文件:Message_fr_FR.properties使用Locale和ResourceBundle讀取資源文件importjava.util.Locale;importjava.util.ResourceBundle;public
classInterDemo02{
public
static
voidmain(String[]args){ LocalezhLoc=newLocale("zh","CN"); //表示中國地區(qū)
LocaleenLoc=newLocale("en","US"); //表示美國地區(qū)
LocalefrLoc=newLocale("fr","FR"); //表示法國地區(qū)
//找到中文的屬性文件
ResourceBundlezhrb=ResourceBundle.getBundle("Message",zhLoc);
//找到英語的屬性文件
ResourceBundleenrb=ResourceBundle.getBundle("Message",enLoc);
//找到法語的屬性文件
ResourceBundlefrrb=ResourceBundle.getBundle("Message",frLoc);
//依次讀取各個屬性文件的內(nèi)容,通過鍵值讀取,此時的鍵值名稱為“info” System.out.println("中文:"+zhrb.getString("info")); System.out.println("英語:"+enrb.getString("info")); System.out.println("法語:"+frrb.getString("info")); }}處理動態(tài)文本在以上的程序中,所有的資源內(nèi)容都是固定,但是輸出的消息中要是包含了一些動態(tài)文本的話,則必須使用占位符清楚的表示出動態(tài)文本的位置,占位符使用“{編號}”的格式出現(xiàn)。使用占位符之后,程序可以直接通過MessageFormat對信息進行格式化,為占位符動態(tài)設(shè)置文本的內(nèi)容。操作方法:publicstaticStringformat(Stringpattern,Object...arguments)資源文件:中文的屬性文件:Message_zh_CN.propertiesinfo=\u4f60\u597d\uff0c{0}\uff01英語的屬性文件:Message_en_US.propertiesinfo=Hello,{0}!法語的屬性文件:Message_fr_FR.propertiesinfo=Bonjour,{0}!程序?qū)崿F(xiàn)importjava.text.MessageFormat;importjava.util.Locale;importjava.util.ResourceBundle;public
classInterDemo03{
public
static
voidmain(String[]args){ LocalezhLoc=newLocale("zh","CN"); //表示中國地區(qū)
LocaleenLoc=newLocale("en","US"); //表示美國地區(qū)
LocalefrLoc=newLocale("fr","FR"); //表示法國地區(qū)
//找到中文的屬性文件
ResourceBundlezhrb=ResourceBundle.getBundle("Message",zhLoc);
//找到英語的屬性文件
ResourceBundleenrb=ResourceBundle.getBundle("Message",enLoc);
//找到法語的屬性文件
ResourceBundlefrrb=ResourceBundle.getBundle("Message",frLoc);
//依次讀取各個屬性文件的內(nèi)容,通過鍵值讀取,此時的鍵值名稱為“info” Stringstr1=zhrb.getString("info"); Stringstr2=enrb.getString("info"); Stringstr3=frrb.getString("info"); System.out.println("中文:"+MessageFormat.format(str1,"李興華")); System.out.println("英語:"+MessageFormat.format(str2,"LiXingHua")); System.out.println("法語:"+MessageFormat.format(str3,"LiXingHua")); }}設(shè)置多個占位符JAVA新特性——可變參數(shù)在方法傳遞參數(shù)的時候可以使用如下的形式:返回值類型方法名稱(Object…args),此處表示方法可以接收任意長度的類型,之后按照數(shù)組的方式輸出即可。使用類代替資源文件之前是使用屬性文件保存所有的資源信息的,當(dāng)然,在Java中也可以使用類來保存所有的資源信息,但是在開發(fā)中此種做法并不多見,主要還是以屬性文件的應(yīng)用為主。與之前的資源文件一樣,如果使用類保存信息,則也必須按照key-value的形式出現(xiàn),而且類的命名必須與屬性文件一致。而且此類必須繼承ListResourceBundle類,繼承之后要覆寫此類中的getContent()方法。定義資源類importjava.util.ListResourceBundle;publicclassMessage_zh_CNextendsListResourceBundle{
private
finalObjectdata[][]={ {"info","你好,{0}"} };
publicObject[][]getContents(){ //覆寫方法
return
data; }}應(yīng)用資源類importjava.text.MessageFormat;importjava.util.Locale;importjava.util.ResourceBundle;public
classInterDemo06{
public
static
voidmain(String[]args){ LocalezhLoc=newLocale("zh","CN"); //表示中國地區(qū)
//找到中文的屬性文件
ResourceBundlezhrb=ResourceBundle.getBundle("org.lxh.demo11.Message",zhLoc);
//依次讀取各個屬性文件的內(nèi)容,通過鍵值讀取,此時的鍵值名稱為“info” Stringstr1=zhrb.getString("info"); System.out.println("中文:"+MessageFormat.format(str
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國隧道工程行業(yè)發(fā)展趨勢規(guī)劃研究報告
- 2025-2030年中國鍛壓機械制造行業(yè)運行現(xiàn)狀及未來投資發(fā)展研究報告
- 2025-2030年中國金屬鎂產(chǎn)業(yè)十三五規(guī)劃及發(fā)展趨勢分析報告
- 2025-2030年中國金屬天花產(chǎn)業(yè)運營趨勢及投資戰(zhàn)略研究報告
- 2025-2030年中國醋酸仲丁酯市場十三五規(guī)劃與投資風(fēng)險評估報告
- 2025-2030年中國裙帶菜行業(yè)市場運行態(tài)勢及發(fā)展戰(zhàn)略分析報告
- 2025-2030年中國蔬菜飲料市場運行動態(tài)與營銷策略研究報告
- 2025-2030年中國花園式住宅行業(yè)競爭格局及發(fā)展可行性分析報告
- 2025-2030年中國職業(yè)裝市場十三五規(guī)劃與未來發(fā)展前景預(yù)測報告
- 2025-2030年中國磚瓦行業(yè)競爭態(tài)勢與營銷策略研究報告
- 退休延期留用崗位協(xié)議書
- 3.1 歌曲《音階歌》課件(10張內(nèi)嵌音頻)
- 中醫(yī)適宜技術(shù)-中藥熱奄包
- 2024年儲能行業(yè)市場全景分析及發(fā)展趨勢展望報告
- 2024-2025學(xué)年小學(xué)科學(xué)五年級下冊青島版(六三制2024)教學(xué)設(shè)計合集
- 文言文雙文本閱讀:重耳出亡(附答案解析與譯文)
- DL∕T 664-2016 帶電設(shè)備紅外診斷應(yīng)用規(guī)范
- 團體標(biāo)準(zhǔn)-電化學(xué)儲能電站能量管理系統(tǒng)技術(shù)規(guī)范
- 二年級下冊計算小能手帶答案
- 2024年臨滄市工業(yè)產(chǎn)業(yè)發(fā)展集團限公司招聘2名公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 2023年3月云南專升本大??肌堵糜螌W(xué)概論》試題及答案
評論
0/150
提交評論