一 軟件的國際化:軟件開發時,要使它能同時應對世界不一樣地區和國家的訪問,並針對不一樣地區和國家的訪問,提供相應的、符合來訪者閱讀習慣的頁面或數據。
國際化(internationalization)又稱爲 i18n(讀法爲i 18 n,聽說是由於internationalization(國際化)這個單詞從i到n之間有18個英文字母,i18n的名字由此而來)
一、對於程序中固定使用的文本元素,例如菜單欄、導航條等中使用的文本元素、或錯誤提示信息,狀態信息等,須要根據來訪者的地區和國家,選擇不一樣語言的文本爲之服務。
二、對於程序動態產生的數據,例如(日期,貨幣等),軟件應能根據當前所在的國家或地區的文化習慣進行顯示。java
資源文件的內容一般採用"關鍵字=值"的形式,軟件根據關鍵字檢索值顯示在頁面上。一個資源包中的全部資源文件的關鍵字必須相同,值則爲相應國家的文字。
而且資源文件中採用的是properties格式文件,因此文件中的全部字符都必須是ASCII字碼,屬性(properties)文件是不能保存中文的,對於像中文這樣的非ACSII字符,須先進行編碼。
java提供了一個native2ascII工具用於將中文字符進行編碼處理,native2ascII的用法以下所示:
編程
二 編程實現固定文本的國際化工具
package i18n; import java.util.Locale; import java.util.ResourceBundle; /** * * @ClassName: ForI18N * @Description: TODO(這裏用一句話描述這個類的做用) * @author penny * @date 2017年11月21日 下午10:46:58 * */ public class ForI18N { public static void main(String[] args) { Locale cn = Locale.CHINESE; Locale en = Locale.US; ResourceBundle enrb=ResourceBundle.getBundle("i18n.my", en); ResourceBundle cnrb=ResourceBundle.getBundle("i18n.my",cn); System.out.println(cnrb.getString("user")); System.out.println(enrb.getString("user")); } }