javawebppt國際化11_第1頁
javawebppt國際化11_第2頁
javawebppt國際化11_第3頁
javawebppt國際化11_第4頁
javawebppt國際化11_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、高級軟件人才實作培訓(xùn)專家!JavaWEB開際化王昭珽北京傳智播客教育高級軟件人才實作培訓(xùn)專家!Tip1:國際化開發(fā)概述 軟件的國際化:軟件開發(fā)時,要使它能同時應(yīng)對世界不同地區(qū)和國家的訪問,并針對不同地區(qū)和國家的訪問,提供相應(yīng)的、符合來訪者閱讀習(xí)慣的頁面或數(shù)據(jù)。 國際化又稱為 i18n:internationalization北京傳智播客教育 高級軟件人才實作培訓(xùn)專家!Tip2:合格的國際化軟件 軟件實現(xiàn)國際化,需具備哪些特征: 對于程序中固定使用的文本元素,例如菜單欄、導(dǎo)航條等中使用的文本元素、或錯誤提示信息,狀態(tài)信息等,需要根據(jù)來訪者的地區(qū)

2、和國家,選擇不同語言的文本為之服務(wù)。 對于程序動態(tài)產(chǎn)生的數(shù)據(jù),例如(日期,貨幣等),軟件應(yīng)能根據(jù)當(dāng)前所在的國家或地區(qū)的文化習(xí)慣進行顯示。高級軟件人才實作培訓(xùn)專家!Tip3:固定文本元素的國際化 對于軟件中的菜單欄、導(dǎo)航條、錯誤提示信息,狀態(tài)信息等這些固定不變的文本信息,可以把它們寫在一個properties文件中,并根據(jù)不同的國家編寫不同的properties文件。這一組properties文件稱之為一個資源包。 在JavaAPI中提供了一個ResourceBundle 類用于描述一個資源包,并且 ResourceBundle類提供了相應(yīng)的方法getBundle,這個方法可以根據(jù)來訪者的國家地

3、區(qū)自動獲取與之對應(yīng)的資源文件予以顯示。高級軟件人才實作培訓(xùn)專家!Tip4:創(chuàng)建資源包和資源文件 一個資源包中的每個資源文件都必須擁有共同的基名。除了基名, 每個資源文件的名稱中還必須有標識其本地信息的附加部分。例 如:一個資源包的基名是“myproperties”,則與中文、英文環(huán) 境相對應(yīng)的資源文件名則為: “myproperites_zh_CN.properties”“myproperites_en_US.properties” 每個資源包都應(yīng)有一個默認資源文件,這個文件不帶有標識本地信息的附加部分。若ResourceBundle對象在資源包中找不到與用戶匹配的資源文件,它將選擇該資源包中

4、與用戶最相近的資源文件,如果再找不到,則使用默認資源文件。例如: perties高級軟件人才實作培訓(xùn)專家!Tip5:資源文件的書寫格式 資源文件的內(nèi)容通常采用“關(guān)鍵字值”的形式,軟件根據(jù)關(guān)鍵字檢索值顯示在頁面上。一個資源包中的所有資源文件的關(guān)鍵字必須相同,值則為相應(yīng)國家的文字。 并且資源文件中采用的是properties格式文件,所以文件中的所有字符都必須是ASCII字碼,對于像中文這樣的非ACSII字符,須先進行編碼。(java提供了一個native2ascII命令用于編碼)。例:屬性文件是不能保存中文的username=username password=p

5、assword submit=submitresource_perties文件username=u7528u6237u540d password=u5bc6u7801 submit=u63d0u4ea4resource_perties文件高級軟件人才實作培訓(xùn)專家!Tip6:編程實現(xiàn)固定文本的國際化 ResourceBundle類提供了一個靜態(tài)方法getBundle,該方法用于裝載資源文件,并創(chuàng)建ResourceBundle實例:Locale currentLocale = Locale.getDefault(); ResourceBundle myResources =

6、 ResourceBundle.getBundle(basename, currentLocale); basename為資源包基名(且必須為完整路徑,不要有擴展名)。 如果與該locale對象匹配的資源包子類找不到。一般情況下,則選用默認資源文件予以顯示。 加載資源文件后, 程序就可以調(diào)用ResourceBundle 實例對象的 getString 方法獲取指定的資源信息名稱所對應(yīng)的值。String value = myResources.getString(“key); 在WEB應(yīng)用中實現(xiàn)固定文本的國際化(login.jsp)高級軟件人才實作培訓(xùn)專家!Tip7:動態(tài)數(shù)據(jù)的國際化 數(shù)值,貨幣

7、,時間,日期等數(shù)據(jù)由于可能在程序運行時動態(tài)產(chǎn)生,所以無法像文字一樣簡單地將它們從應(yīng)用程序中分離出來,而是需要特殊處理。Java 中提供了解決這些問題的 API 類(位于 java.util 包和 java.text 包中) Locale 類 Locale 實例對象代表一個特定的地理,政治、文化區(qū)域。 一個 Locale 對象本身不會驗證它代表的語言和國家地區(qū)信息是否正確,只是向本地敏感的類提供國家地區(qū)信息,與國際化相關(guān)的格式化和解析任務(wù)由本地敏感的類去完成。(若JDK 中的某個類在運行時需要根據(jù) Locale 對象來調(diào)整其功能,這個類就稱為本地敏感類)高級軟件人才實作培訓(xùn)專家!Tip8:Dat

8、eFormat類(國際化日期) DateFormat 類可以將一個日期/時間對象格式化為表示某個國家地區(qū)的日期/時間字符串。 DateFormat 類除了可按國家地區(qū)格式化輸出日期外, 它還定義了一些用于描述日期/時間的顯示模式的 int 型的常量,包括FULL, LONG, MEDIUM, DEFAULT,SHORT,實例化DateFormat對象時,可以使用這些常量,控制日期/時間的顯示長度。高級軟件人才實作培訓(xùn)專家!Tip9:DateFormat類 例如,對于日期/時間“2005年9月15日下午4時41分20秒”,如 設(shè)置了DateFormat的顯示模式,則日期/時間顯示樣式分別為: S

9、HORT模式完全是數(shù)字的,在中文環(huán)境下顯示為“05-9-15 下午4:41”;在英文環(huán)境下為“9/15/05 4:41 PM”。 MEDIUM模式比SHORT模式長些,在中文環(huán)境顯示為“2005-9-1516:41:20”;在英文環(huán)境下顯示為“Sep 15, 2005 4:41:20 PM”。 LONG模式比MEDIUM模式更長一些,在中文環(huán)境下顯示為“2005 年9月15日 下午04時41分20秒”;在英文環(huán)境下顯示為“September 15, 2005 4:41:20 PM CST”。 FULL模式指定日期/時間的完整格式,在中文環(huán)境下顯示為“2005 年9月15日 星期四 下午04時4

10、1分20秒 CST”;在英文環(huán)境下,這個日期/時間顯示為“Thursday, September 15, 2005 4:41:20 PM CST”。高級軟件人才實作培訓(xùn)專家!Tip10:實例化DateFormat類 實例化DateFormat類有九種方式,以下三種為帶參形式,下面列出的三種方式也可以分別不帶參,或只帶顯示樣式的參數(shù)。 getDateInstance(int style, Locale aLocale):以指定的日期顯示模式和本地信息來獲得DateFormat 實例對象,該實例對象不處理時間值部分。 getTimeInstance(int style, Locale aLocal

11、e):以指定的時間顯示模式和本地信息來獲得DateFormat實例對象, 該實例對象不處理日期值部分。 getDateTimeInstance(int dateStyle, int timeStyle,Locale aLocale):以單獨指定的日期顯示模式、時間顯示模式和本地信息來獲得DateFormat實例對象。高級軟件人才實作培訓(xùn)專家!Tip11:DateFormat類 DateFormat 對象的方法: format: 將date對象格式化為符合某個本地環(huán)境習(xí)慣的字符串。 parse:將字符串解析為日期/時間對象 注意:parse和format完全相反,一個是把date時間轉(zhuǎn)化為相應(yīng)地

12、區(qū)和國家的顯示樣式,一個是把相應(yīng)地區(qū)的時間日期轉(zhuǎn)化成date對象,該方法在使用時,解析的時間或日期要符合指定的國家、地區(qū)格式,否則會拋異常。 DateFormat 對象通常不是線程安全的,每個線程都應(yīng)該創(chuàng)建自己的 DateFormat實例對象高級軟件人才實作培訓(xùn)專家!Tip12:NumberFormat類 NumberFormat 可以將一個數(shù)值格式化為符合某個國家地區(qū)習(xí)慣的數(shù)值字符串,也可以將符合某個國家地區(qū)習(xí)慣的數(shù)值字符串解析為對應(yīng)的數(shù)值 NumberFormat 類的方法: format 方法:將一個數(shù)值格式化為符合某個國家地區(qū)習(xí)慣的數(shù)值字符串 parse 方法:將符合某個國家地區(qū)習(xí)慣的

13、數(shù)值字符串解析為對應(yīng)的數(shù)值。高級軟件人才實作培訓(xùn)專家!Tip13:NumberFormat類 實例化NumberFormat類時,可以使用locale對象作為參數(shù), 也可以不使用,下面列出的是使用參數(shù)的。 getNumberInstance(Locale locale):以參數(shù)locale對象所標識的本地信息來獲得具有多種用途的NumberFormat實例對象 getIntegerInstance(Locale locale):以參數(shù)locale對象所標識的本地信息來獲得處理整數(shù)的NumberFormat實例對象 getCurrencyInstance(Locale locale):以參數(shù)lo

14、cale對象所標識的本地信息來獲得處理貨幣的NumberFormat實例對象 getPercentInstance(Locale locale):以參數(shù)locale對象所標識的本地信息來獲得處理百分比數(shù)值的NumberFormat 實例對象高級軟件人才實作培訓(xùn)專家!Tip13:練習(xí) 請編寫一個能國際化顯示的登陸頁面。 請創(chuàng)建一個date對象,并把date對象中表示日期部分的時間值, 以及表示時間部分的時間值,分別以short、long模式進行格式化輸出(國家設(shè)置為中國)。 請將時間值:09-11-28 上午10時25分39秒 CST,反向解析成一個date對象。 請將整數(shù)198,輸出為貨幣形式

15、:$198,并將$198反向解析成整數(shù)198。高級軟件人才實作培訓(xùn)專家!Tip14:MessageFormat(動態(tài)文本) 如果一個字符串中包含了多個與國際化相關(guān)的數(shù)據(jù), 可以使用MessageFormat類對這些數(shù)據(jù)進行批量處理。 例如:At 12:30 pm on jul 3,1998, a hurricance destroyed 99 houses and caused $1000000 of damage 以上字符串中包含了時間、數(shù)字、貨幣等多個與國際化相關(guān)的數(shù)據(jù),對于這種字符串,可以使用MessageFormat類對其國際化相關(guān)的數(shù)據(jù)進行批量處理。 MessageFormat 類如

16、何進行批量處理呢? 1.MessageFormat類允許開發(fā)人員用占位符替換掉字符串中的敏感數(shù)據(jù)(即國際化相關(guān)的數(shù)據(jù))。 2.MessageFormat類在格式化輸出包含占位符的文本時,messageFormat類可以接收一個參數(shù)數(shù)組,以替換文本中的每一個占位符。高級軟件人才實作培訓(xùn)專家!Tip15:模式字符串與占位符 At 12:30 pm on jul 3,1998, a hurricance destroyed 99 houses and caused $1000000 of damage 模式字符串:At 0 on 1,a destroyed 2 houses and caused 3

17、 of damage.占位符高級軟件人才實作培訓(xùn)專家!Tip16:格式化模式字符串 模式字符串: On 0, a hurricance destroyed houses and caused of damage. MessageFormat類 MessageFormat(String pattern) 實例化MessageFormat對象,并裝載相應(yīng)的模式字符串。 format(object obj) 格式化輸出模式字符串,參數(shù)數(shù)組中指定占位符相應(yīng)的替換對象。 format(new Object date, new Integer(99), new Double(1E7) )高級軟件人才實作培

18、訓(xùn)專家!Tip17:格式化模式字符串String pattern = On 0, a hurricance destroyed 1 houses and caused + 2 of damage.;MessageFormat msgFmt = new MessageFormat(pattern,Locale.US);/準備參數(shù)數(shù)組String datetime = Jul 3, 1998 12:30 PM;Date date = DateFormat.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);高級軟件人才實作培訓(xùn)專家!Tip18:模式字符串與占位符 占位符有三種方式書寫方式: argumentIndex: 0-9 之間的數(shù)字,表示要格式化對象數(shù)據(jù)在參數(shù)數(shù)組中的索引號 argu

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論