參考文獻:《Java瘋狂講義》(第三版)
國際化與格式化
Java國際化的思路:
Java程序國際化的主要通過如下三個類完成:
1鞍爱、java.util.ResourceBundle:用于加載國家锐墙、語言資源包;
2映琳、java.util.Locale:用于封裝特定的國家/區(qū)域、語言環(huán)境蜘拉;
3萨西、java.text.MessageFormat:用于格式化帶占位符的字符串;
為了實現(xiàn)程序的國際化旭旭,必須先提供程序所需要的資源文件原杂。資源文件的內(nèi)容是很
多key-value對,其中key是程序使用的部份您机,而value則是程序界面的顯示字符串穿肄。
完成程序國際化:
例子代碼:
import java.util.*;
public class RawHello{
public static void main(String[] args){
//取得系統(tǒng)默認的國家/語言環(huán)境
Locale myLocale=Locale.getDefault
(Locale.Category.FORMAT);
ResourceBundle bundle=ResourceBundle.getBundle
("mess",myLocale);
//打印從資源文件中取得消息
System.out.println(bundle.getString("hello"));
}
}
mess_en_US.properties文件如下:
#資源文件的內(nèi)容是key-value對
hello=Welcome you!
mess.properties文件如下:
#資源文件的內(nèi)容是key-value對
hello=你好际看!
對mess.properties文件執(zhí)行
native2ascii 源資源文件 目的資源文件操作
生成一個程序需要的資源文件
注:Java是區(qū)分大小寫的編程語言咸产,我之前輸入的是Hello字符串,運行會發(fā)生異常仲闽;
知識點:Java程序國際化的關(guān)鍵類是ResourceBundle脑溢,它有一個靜態(tài)方法:
getBundle()String baseName,Locale locale),該方法根據(jù)Locale加載資源
文件,Locale封裝了一個國家、語言。
例子:
ResourceBundle bundle=ResourceBundle.getBundle("mess",myLocale);
上面代碼會加載baseName為"mess"的系列系統(tǒng)資源文件之一囚聚,對于簡體中文的
Locale赠橙,則加載mess_zh_CN.properties文件
一旦加載了該文件,該資源文件內(nèi)容就是多個key-value對莺丑,程序就根據(jù)key來獲取
指定的信息,例如獲取了key為hello的信息,該消息是"你好"搏恤。
Java程序國際化的關(guān)鍵類是ResourceBundle和Locale违寿,ResourceBundle根據(jù)不同
的Locale加載語言資源文件,再根據(jù)指定的key取得已加載語言資源文件中的字符串熟空。