1、 軟件的國際化
a) 軟件開發時、要是它能夠同時應對世界不同地區和國家的訪問、冰針對不同地區和國家的訪問,提供相應的、符合來訪問閱讀習慣的頁面或數據
2、 合格的國際化軟件
a) 軟件的國際化需具備哪些特徵
i. 對於程序中固定使用文本元素如:菜單欄 等需要根據來訪者的地區和國家玄色不同語言的文本爲之服務
ii. 對於程序動態產生的數據如貨幣,軟件應能根據當前所在的國家和地區的文化習慣進行顯示
3、 固定文本元素的國際化
a) 把固定不變的文本信息、可以把他們寫到一個properties文件中。並根據不同的顧家編寫不同的properties文件。這一組properties文件稱爲 “一個資源包”
b) 使用ResourceBundle類描述一個資源包並且 ResourceBundle類提供了相應的方法getBundle,這個方法可以根據來訪者的國家地區自動獲取與之對應的資源文件予以顯示。
4、 創建資源包和資源文件
a) 一個資源包裏的資源文件必須有共同的基名,每個資源文件的名稱中還必須有標識其本地信息的附加部分如:myproperites_zh.properties” “myproperites_en.properties
b) 每個資源包都應該有一個默認資源文件,這個文件不帶有標識本地信息的附加部分
5、 資源文件的書寫格式
a) 資源文件的內容通常採用“關鍵字=值”的形式,軟件根據關鍵字檢索值顯示在頁面上。一個資源包中的所有資源文件的關鍵字必須相同,值則爲相應國家的文字
6、 ResourceBundle類提供了一個靜態方法getBundle,用於裝載資源文件
a) Locale currentLocale = Locale.getDefault();
ResourceBundle myResources =ResourceBundle.getBundle(basename, currentLocale);
b) basename爲資源包基名(完整路徑)
c) 如果與該locale對象匹配的資源包子類找不到。一般情況下,則選用默認資源文件
予以顯示。
d) 加載資源文件後, 程序就可以調用ResourceBundle 實例對象的 getString 方法獲取指定的資源信息名稱所對應的值。
String value = myResources.getString(“key");
7、 動態數據的國際化
a) 數值、貨幣、時間、日期等數據由於可能在程序運行時動態產生,所以需要想特殊處理
b) Locale類
i. Locale 實例對象代表一個特定的地理,政治、文化區域。
ii. 一個 Locale 對象本身不會驗證它代表的語言和國家地區信息是否正確,只是向本地敏感的類提供國家地區信息,與國際化相關的格式化和解析任務由本地敏感的類去完成
8、 DateFormat類
a) 可以將一個日期/時間對象格式化爲表示某個國家地區的日期/時間字符串。
b) DateFormate類除了可以按國家地區格式輸出日期外,,他還定義了一些用於描述日期/時間的顯示模式的int型的常量,包括 FULL、LONG、MEDIU、DEFAULT、SHORT、實例化DateFormat對象是可以使用這些常量控制時間/日期的顯示長度
c) DateFormat類的方式
i. getDateInstance(int style, Locale aLocale):以指定的日期顯示模式和本地信息來獲得DateFormat實例對象,該實例對象不處理時間值部分。
ii. getTimeInstance(int style, Locale aLocale):以指定的時間顯示模式和本地信息來獲得DateFormat實例對象,該實例對象不處理日期值部分。
iii. getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale):以單獨指定的日期顯示模式、時間顯示模式和本地信息來獲得DateFormat實例對象。
d) DateFormat對象的方法
i. Format:將date對象格式化爲符合某個本地環境習慣的字符串
ii. Parse:將字符串解析爲日期/時間愛你對象
iii. (注;parse和format完全相反,一個是把date時間轉化爲相應地區和國家的顯示方式,一個是把一個是把相應地區的時間日期轉化成date對象)
e) DateFormat對象每個線程都應該創建自己的DateFormate實例對象