版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、北京傳智播客教育 JavaWEB開(kāi)發(fā)-國(guó)際化方立勛 北京傳智播客教育 Tip1:國(guó)際化開(kāi)發(fā)概述軟件的國(guó)際化:軟件開(kāi)發(fā)時(shí),要使它能同時(shí)應(yīng)對(duì)世界不同地區(qū)和國(guó)家的訪問(wèn),并針對(duì)不同地區(qū)和國(guó)家的訪問(wèn),提供相應(yīng)的、符合來(lái)訪者閱讀習(xí)慣的頁(yè)面或數(shù)據(jù)。國(guó)際化又稱(chēng)為 i18n:internationalization北京傳智播客教育 Tip2:合格的國(guó)際化軟件軟件實(shí)現(xiàn)國(guó)際化,需具備哪些特征:對(duì)于程序中固定使用的文本元素,例如菜單欄、導(dǎo)航條等中使用的文本元素、或錯(cuò)誤提示信息,狀態(tài)信息等,需要根據(jù)來(lái)訪者的地區(qū)和國(guó)家,選擇不同語(yǔ)言的文本為之服務(wù)。對(duì)于程序動(dòng)態(tài)產(chǎn)生的數(shù)據(jù),例如(日期,貨幣等),軟件應(yīng)能根據(jù)當(dāng)前所在的國(guó)家或
2、地區(qū)的文化習(xí)慣進(jìn)行顯示。北京傳智播客教育 Tip3:固定文本元素的國(guó)際化對(duì)于軟件中的菜單欄、導(dǎo)航條、錯(cuò)誤提示信息,狀態(tài)信息等這些固定不變的文本信息,可以把它們寫(xiě)在一個(gè)properties文件中,并根據(jù)不同的國(guó)家編寫(xiě)不同的properties文件。這一組properties文件稱(chēng)之為一個(gè)資源包。在JavaAPI中提供了一個(gè)ResourceBundle 類(lèi)用于描述一個(gè)資源包,并且 ResourceBundle類(lèi)提供了相應(yīng)的方法getBundle,這個(gè)方法可以根據(jù)來(lái)訪者的國(guó)家地區(qū)自動(dòng)獲取與之對(duì)應(yīng)的資源文件予以顯示。北京傳智播客教育 Tip4:創(chuàng)建資源包和資源文件一個(gè)資源包中的每個(gè)資源文件都必須擁有共
3、同的基名。除了基名,每個(gè)資源文件的名稱(chēng)中還必須有標(biāo)識(shí)其本地信息的附加部分。例如:一個(gè)資源包的基名是“myproperties”,則與中文、英文環(huán)境相對(duì)應(yīng)的資源文件名則為: “myproperites_perties” “myproperites_perties”每個(gè)資源包都應(yīng)有一個(gè)默認(rèn)資源文件,這個(gè)文件不帶有標(biāo)識(shí)本地信息的附加部分。若ResourceBundle對(duì)象在資源包中找不到與用戶匹配的資源文件,它將選擇該資源包中與用戶最相近的資源文件,如果再找不到,則使用默認(rèn)資源文件。例如:perties北京傳智播客教育 Tip5:資源文件的書(shū)寫(xiě)
4、格式資源文件的內(nèi)容通常采用“關(guān)鍵字值”的形式,軟件根據(jù)關(guān)鍵字檢索值顯示在頁(yè)面上。一個(gè)資源包中的所有資源文件的關(guān)鍵字必須相同,值則為相應(yīng)國(guó)家的文字。并且資源文件中采用的是properties格式文件,所以文件中的所有字符都必須是ASCII字碼,對(duì)于像中文這樣的非ACSII字符,須先進(jìn)行編碼。(java提供了一個(gè)native2ascII命令用于編碼)。例:屬性文件是不能保存中文的username=usernamepassword=passwordsubmit=submitresource_perties文件username=u7528u6237u540dpassword=u5bc6u7
5、801submit=u63d0u4ea4resource_perties文件北京傳智播客教育 Tip6:編程實(shí)現(xiàn)固定文本的國(guó)際化ResourceBundle類(lèi)提供了一個(gè)靜態(tài)方法getBundle,該方法用于裝載資源文件,并創(chuàng)建ResourceBundle實(shí)例: LocalecurrentLocale=Locale.getDefault(); ResourceBundlemyResources= ResourceBundle.getBundle(basename,currentLocale);basename為資源包基名(且必須為完整路徑)。如果與該locale對(duì)象匹配的資源包子類(lèi)找
6、不到。一般情況下,則選用默認(rèn)資源文件予以顯示。 加載資源文件后, 程序就可以調(diào)用ResourceBundle 實(shí)例對(duì)象的 getString 方法獲取指定的資源信息名稱(chēng)所對(duì)應(yīng)的值。 String value = myResources.getString(“key);在WEB應(yīng)用中實(shí)現(xiàn)固定文本的國(guó)際化北京傳智播客教育 Tip7:動(dòng)態(tài)數(shù)據(jù)的國(guó)際化數(shù)值,貨幣,時(shí)間,日期等數(shù)據(jù)由于可能在程序運(yùn)行時(shí)動(dòng)態(tài)產(chǎn)生,所以無(wú)法像文字一樣簡(jiǎn)單地將它們從應(yīng)用程序中分離出來(lái),而是需要特殊處理。Java 中提供了解決這些問(wèn)題的 API 類(lèi)(位于 java.util 包和 java.text 包中)Locale 類(lèi)Loc
7、ale 實(shí)例對(duì)象代表一個(gè)特定的地理,政治、文化區(qū)域。一個(gè) Locale 對(duì)象本身不會(huì)驗(yàn)證它代表的語(yǔ)言和國(guó)家地區(qū)信息是否正確,只是向本地敏感的類(lèi)提供國(guó)家地區(qū)信息,與國(guó)際化相關(guān)的格式化和解析任務(wù)由本地敏感的類(lèi)去完成。(若JDK中的某個(gè)類(lèi)在運(yùn)行時(shí)需要根據(jù) Locale 對(duì)象來(lái)調(diào)整其功能,這個(gè)類(lèi)就稱(chēng)為本地敏感類(lèi))北京傳智播客教育 Tip8:DateFormat類(lèi)(國(guó)際化日期)DateFormat 類(lèi)可以將一個(gè)日期/時(shí)間對(duì)象格式化為表示某個(gè)國(guó)家地區(qū)的日期/時(shí)間字符串。DateFormat 類(lèi)除了可按國(guó)家地區(qū)格式化輸出日期外,它還定義了一些用于描述日期/時(shí)間的顯示模式的 int 型的常量,包括FULL,
8、LONG, MEDIUM, DEFAULT, SHORT,實(shí)例化DateFormat對(duì)象時(shí),可以使用這些常量,控制日期/時(shí)間的顯示長(zhǎng)度。北京傳智播客教育 Tip9:DateFormat類(lèi)例如,對(duì)于日期/時(shí)間“2005年9月15日下午4時(shí)41分20秒”,如設(shè)置了DateFormat的顯示模式,則日期/時(shí)間顯示樣式分別為:SHORT模式完全是數(shù)字的,在中文環(huán)境下顯示為“05-9-15 下午4:41”;在英文環(huán)境下為“9/15/05 4:41 PM”。MEDIUM模式比SHORT模式長(zhǎng)些,在中文環(huán)境顯示為“2005-9-15 16:41:20”;在英文環(huán)境下顯示為“Sep 15, 2005 4:41
9、:20 PM”。LONG模式比MEDIUM模式更長(zhǎng)一些,在中文環(huán)境下顯示為“2005年9月15日 下午04時(shí)41分20秒”;在英文環(huán)境下顯示為“September 15, 2005 4:41:20 PM CST”。FULL模式指定日期/時(shí)間的完整格式,在中文環(huán)境下顯示為“2005年9月15日 星期四 下午04時(shí)41分20秒 CST”;在英文環(huán)境下,這個(gè)日期/時(shí)間顯示為“Thursday, September 15, 2005 4:41:20 PM CST”。北京傳智播客教育 Tip10:實(shí)例化DateFormat類(lèi)實(shí)例化DateFormat類(lèi)有九種方式,以下三種為帶參形式,下面列出的三種方式也
10、可以分別不帶參,或只帶顯示樣式的參數(shù)。getDateInstance(int style, Locale aLocale):以指定的日期顯示模式和本地信息來(lái)獲得DateFormat實(shí)例對(duì)象,該實(shí)例對(duì)象不處理時(shí)間值部分。getTimeInstance(int style, Locale aLocale):以指定的時(shí)間顯示模式和本地信息來(lái)獲得DateFormat實(shí)例對(duì)象,該實(shí)例對(duì)象不處理日期值部分。getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale):以單獨(dú)指定的日期顯示模式、時(shí)間顯示模式和本地信息來(lái)獲得DateForm
11、at實(shí)例對(duì)象。北京傳智播客教育 Tip11:DateFormat類(lèi)DateFormat 對(duì)象的方法:format: 將date對(duì)象格式化為符合某個(gè)本地環(huán)境習(xí)慣的字符串。parse:將字符串解析為日期/時(shí)間對(duì)象注意:parse和format完全相反,一個(gè)是把date時(shí)間轉(zhuǎn)化為相應(yīng)地區(qū)和國(guó)家的顯示樣式,一個(gè)是把相應(yīng)地區(qū)的時(shí)間日期轉(zhuǎn)化成date對(duì)象,該方法在使用時(shí),解析的時(shí)間或日期要符合指定的國(guó)家、地區(qū)格式,否則會(huì)拋異常。DateFormat 對(duì)象通常不是線程安全的,每個(gè)線程都應(yīng)該創(chuàng)建自己的 DateFormat 實(shí)例對(duì)象北京傳智播客教育 Tip12:NumberFormat類(lèi)NumberForma
12、t 可以將一個(gè)數(shù)值格式化為符合某個(gè)國(guó)家地區(qū)習(xí)慣的數(shù)值字符串,也可以將符合某個(gè)國(guó)家地區(qū)習(xí)慣的數(shù)值字符串解析為對(duì)應(yīng)的數(shù)值NumberFormat 類(lèi)的方法:format 方法:將一個(gè)數(shù)值格式化為符合某個(gè)國(guó)家地區(qū)習(xí)慣的數(shù)值字符串parse 方法:將符合某個(gè)國(guó)家地區(qū)習(xí)慣的數(shù)值字符串解析為對(duì)應(yīng)的數(shù)值。北京傳智播客教育 Tip13:NumberFormat類(lèi)實(shí)例化NumberFormat類(lèi)時(shí),可以使用locale對(duì)象作為參數(shù),也可以不使用,下面列出的是使用參數(shù)的。getNumberInstance(Locale locale):以參數(shù)locale對(duì)象所標(biāo)識(shí)的本地信息來(lái)獲得具有多種用途的NumberForm
13、at實(shí)例對(duì)象getIntegerInstance(Locale locale):以參數(shù)locale對(duì)象所標(biāo)識(shí)的本地信息來(lái)獲得處理整數(shù)的NumberFormat實(shí)例對(duì)象getCurrencyInstance(Locale locale):以參數(shù)locale對(duì)象所標(biāo)識(shí)的本地信息來(lái)獲得處理貨幣的NumberFormat實(shí)例對(duì)象getPercentInstance(Locale locale):以參數(shù)locale對(duì)象所標(biāo)識(shí)的本地信息來(lái)獲得處理百分比數(shù)值的NumberFormat實(shí)例對(duì)象北京傳智播客教育 Tip13:練習(xí)請(qǐng)編寫(xiě)一個(gè)能?chē)?guó)際化顯示的登陸頁(yè)面。請(qǐng)創(chuàng)建一個(gè)date對(duì)象,并把date對(duì)象中表示日期
14、部分的時(shí)間值,以及表示時(shí)間部分的時(shí)間值,分別以short、long模式進(jìn)行格式化輸出(國(guó)家設(shè)置為中國(guó))。請(qǐng)將時(shí)間值:09-11-28 上午10時(shí)25分39秒 CST,反向解析成一個(gè)date對(duì)象。請(qǐng)將整數(shù)198,輸出為貨幣形式:$198,并將$198反向解析成整數(shù)198。北京傳智播客教育 Tip14:MessageFormat(動(dòng)態(tài)文本)如果一個(gè)字符串中包含了多個(gè)與國(guó)際化相關(guān)的數(shù)據(jù),可以使用MessageFormat類(lèi)對(duì)這些數(shù)據(jù)進(jìn)行批量處理。例如:At 12:30 pm on jul 3,1998, a hurricance destroyed 99 houses and caused $100
15、0000 of damage以上字符串中包含了時(shí)間、數(shù)字、貨幣等多個(gè)與國(guó)際化相關(guān)的數(shù)據(jù),對(duì)于這種字符串,可以使用MessageFormat類(lèi)對(duì)其國(guó)際化相關(guān)的數(shù)據(jù)進(jìn)行批量處理。MessageFormat 類(lèi)如何進(jìn)行批量處理呢?1.MessageFormat類(lèi)允許開(kāi)發(fā)人員用占位符替換掉字符串中的敏感數(shù)據(jù)(即國(guó)際化相關(guān)的數(shù)據(jù))。2.MessageFormat類(lèi)在格式化輸出包含占位符的文本時(shí),messageFormat類(lèi)可以接收一個(gè)參數(shù)數(shù)組,以替換文本中的每一個(gè)占位符。北京傳智播客教育 Tip15:模式字符串與占位符At 12:30 pm on jul 3,1998, a hurricance des
16、troyed 99 houses and caused $1000000 of damage模式字符串: At 0 on 1,a destroyed 2 houses and caused 3 of damage.占位符北京傳智播客教育 Tip16:格式化模式字符串模式字符串:On 0, a hurricance destroyed houses and caused of damage.MessageFormat類(lèi)MessageFormat(String pattern) 實(shí)例化MessageFormat對(duì)象,并裝載相應(yīng)的模式字符串。format(object obj)格式化輸出模式字符串,
17、參數(shù)數(shù)組中指定占位符相應(yīng)的替換對(duì)象。format(new Object date, new Integer(99), new Double(1E7) )北京傳智播客教育 Tip17:格式化模式字符串String pattern = On 0, a hurricance destroyed 1 houses and caused + 2 of damage.;MessageFormat msgFmt = new MessageFormat(pattern,Locale.US);/準(zhǔn)備參數(shù)數(shù)組String datetime = Jul 3, 1998 12:30 PM;Date date = Da
18、teFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, Locale.US).parse(datetime);Object msgArgs = date, new Integer(99),new Double(1E7);/執(zhí)行格式化操作String result = msgFmt.format(msgArgs);System.out.println(result);北京傳智播客教育 Tip18:模式字符串與占位符占位符有三種方式書(shū)寫(xiě)方式:argumentIndex: 0-9 之間的數(shù)字,表示要格式化對(duì)象數(shù)據(jù)在參數(shù)數(shù)組中的索引號(hào)argumentIndex,forma
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息論與編碼第八章1
- 校園數(shù)據(jù)中臺(tái)技術(shù)方案
- 人教部編版四年級(jí)語(yǔ)文上冊(cè)第22課《為中華之崛起而讀書(shū)》精美課件
- 2024年寧夏客運(yùn)資格證考試考什么
- 算法設(shè)計(jì)與分析 課件 5.6.1-動(dòng)態(tài)規(guī)劃應(yīng)用-最長(zhǎng)公共子序列-問(wèn)題描述和分析
- 2024年新疆客運(yùn)資格證需要什么條件
- 2024年武漢申請(qǐng)客運(yùn)從業(yè)資格證2024年試題
- 2024年贛州客運(yùn)從業(yè)資格證培訓(xùn)資料
- 2024年寧夏客運(yùn)資格證考幾科
- 2024-2025學(xué)年山東省濰坊市寒亭區(qū)統(tǒng)編版六年級(jí)上冊(cè)第一次月考語(yǔ)文試卷(含答案解析)
- 檢具的設(shè)計(jì)、制造和使用
- (蘇州專(zhuān)版)江蘇省蘇州市2023-2024學(xué)年五年級(jí)數(shù)學(xué)上冊(cè)期中綜合素養(yǎng)測(cè)評(píng)調(diào)研試卷(蘇教版)
- 湖南省衡陽(yáng)市成章實(shí)驗(yàn)中學(xué)2022-2023學(xué)年七年級(jí)上冊(cè)數(shù)學(xué)期中考試模擬卷
- 養(yǎng)老機(jī)構(gòu)安全隱患排查清單、自查表、治理整改臺(tái)賬
- 決策理論與方法實(shí)際案例解析
- 貝葉斯決策理論的起源與發(fā)展
- 服務(wù)器運(yùn)維應(yīng)急預(yù)案
- (新版)研學(xué)旅行指導(dǎo)師認(rèn)證考試復(fù)習(xí)題庫(kù)大全(附答案)
- 螺栓檢測(cè)報(bào)告新
- 人工智能概論肖漢光課后參考答案
- 工程EPC總承包項(xiàng)目安全生產(chǎn)管理辦法
評(píng)論
0/150
提交評(píng)論