java.lang.Locale类
获得此Java虚拟机当前线程默认的语言环境值:
Locale defaultLocale = Locale.getDefault();
获取当前Java虚拟机线程默认的国家和语言信息:
String country = defaultLocale.getCountry();//返回国家地区代码
String language = defaultLocale.getLanguage();//返回国家的语言
String displayCountry = defaultLocale.getDisplayCountry();//返回适合向用户显示的国家信息
String displayLanaguage = defaultLocale.getDisplayLanaguage();//返回适合向用户展示的语言信息
String displayName = defaultLocale.getDisplayName();//返回适合向用户展示的语言环境名
假如当前Java虚拟机线程所处的操作系统的区域语言设置为“中文(简体,中国)”,则上边的运行结果依次将会是:
CN
zh
中国
中文
中文(中国)
根据国家地区和语言构造一个Locale(语言环境)
Locale currentLocale = new Locale(“zh”, ”CN”);
利用ResourceBundle类,代码如下:
import
java.util.Locale;
import
java.util.ResourceBundle;
public
class
TestLocale {
public
static
void
main(String[] s) {
// 资源包基名(包名+myproperties)
String basename =
"me.gacl.i18n.resource.myproperties"
;
// 设置语言环境
Locale cn = Locale.CHINA;
// 中文
Locale us = Locale.US;
// 英文
/*
* 根据基名和语言环境加载对应的语言资源文件,如果有多个资源文件,会遵循某种顺序查找,比如,加载英文文件时,先找myproperties_en_US.properties,
* 如果找不到,则找myproperties_en.properties,如果还找不到则找myproperties_zh_CN.properties,接着找myproperties_zh.properties,
* 直到找到一个为止,所以,如果英文文件不存在,可能会用到中文的来代替
*/
//加载myproperties_zh_CN.properties或myproperties_zh.properties
ResourceBundle myResourcesCN = ResourceBundle.getBundle(basename, Locale.CHINA);
//加载myproperties_en_US.properties或myproperties_en.properties
ResourceBundle myResourcesUS = ResourceBundle.getBundle(basename, Locale.US);
// 加载资源文件后, 程序就可以调用ResourceBundle实例对象的 getString方法获取指定的资源信息名称所对应的值。
String usernameCN = myResourcesCN.getString(
"username"
);
String passwordCN = myResourcesCN.getString(
"password"
);
String usernameUS = myResourcesUS.getString(
"username"
);
String passwordUS = myResourcesUS.getString(
"password"
);
System.out.println(usernameCN +
"--"
+ passwordCN);
System.out.println(usernameUS +
"--"
+ passwordUS);
}
}
在改包下新建两个资源文件:
myproperties_en_US.properties
myproperties_zh_CN.properties