package com.cisco.learning;
public class Demo {
public static void main(String[] args) {
System.out.println(Messages.getString("Test.0")); //$NON-NLS-1$
}
}
package com.cisco.learning;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class Messages {
private static final String BUNDLE_NAME = "com.cisco.learning.messages"; //$NON-NLS-1$
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
.getBundle(BUNDLE_NAME);
private Messages() {
}
public static String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
public static void main(String[] args) {
//"en_US"
System.out.println(Locale.getDefault());
}
}
打印出的结果是,先根据操作系统语言选择有没有配置,如果没有选择默认配置。
myres_zh_CN.properties
bbb=thanks
myres_en_US.properties
bbb=thanks
myres_zh_CN.properties
bbb=\多\谢
import java.util.ResourceBundle;
/**
* 国际化资源绑定测试
*
* @author leizhimin 2009-7-29 21:17:42
*/
p lic class TestResourceBundle {
p lic static void main(String[] args) {
Locale locale1 = new Locale( "zh", "CN");
ResourceBundle resb1 = ResourceBundle.getBundle( "myres", locale1);
System.out.println(resb1.getString( "aaa"));
ResourceBundle resb2 = ResourceBundle.getBundle( "myres", Locale.getDefault());
System.out.println(resb1.getString( "aaa"));
Locale locale3 = new Locale( "en", "US");
ResourceBundle resb3 = ResourceBundle.getBundle( "myres", locale3);
System.out.println(resb3.getString( "aaa"));
}
}
好
good
Process finished with exit code 0
Locale 对象表示了特定的地理、政治和文化地区。需要 Locale 来执行其任务的操作称为语言环境敏感的 操作,它使用 Locale 为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。
Locale(String lang ge, String country)
Locale(String lang ge, String country, String variant)
http://www.loc.gov/standards/iso639-2/englangn.html。
国家参数是一个有效的 ISO 国家代码。这些代码是由 ISO-3166 定义的大写两字母代码。在许多网站上都可以找到这些代码的完整列表,如:
http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html。