第三部分java應(yīng)用程序設(shè)計常用類庫國際化_第1頁
第三部分java應(yīng)用程序設(shè)計常用類庫國際化_第2頁
第三部分java應(yīng)用程序設(shè)計常用類庫國際化_第3頁
第三部分java應(yīng)用程序設(shè)計常用類庫國際化_第4頁
第三部分java應(yīng)用程序設(shè)計常用類庫國際化_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論