1.国际化属性文件默认是从根路径下搜索的,所以放在src下就可以了。
2.国际化属性文件的命名柜子是,前半部分都必须相同,如:MessageTest_en_US.properties MessageTest_zh_CN.properties 前半部分MessageResource 成为基本名称(baseName) 都是相同的,后半部分成local 即 zh_Cn。
3.通过对象 ResourceBundle 对象的 getBundle() 方法可以取得国际化资源文件。
例如:
ResourceBundle rb = ResourceBundle.getBundle("MessageTest",defaultLocale); //MessageTest 为 baseName
String value1 = rb.getString("k1"); //取得 k1 的值
4.将文件转换为 unicode 码 :
native2ascii.exe 源文件名.properties 目标文件名.properties
5. Locale 由操作系统决定,即操作系统内的 区域语言 决定,但是我们也可以自己定义 Locale, 例如:
Locale currentLocale = new Locale("en","US"); //美国区域
Locale currentLocale = new Locale("zh","CN"); //中国区域
6.缺省资源文件定义方式:
MessageBundle.properties // 缺省资源文件名,只用 baseName 不用 Locale
7.向资源文件中动态(即:运行期)加入内容:
* 向资源文件中加入 占位符( {0},{1} ) 占位符从 0 开始的 占位符可能不止一个,所以用数字标记的
属性文件中:
K1=hello,{0},{1}
后台:(往资源文件中的占位符填充内容)
MessageFormat mf = new MessageFormat( rb.getString("k1") ); //构造对象时要传入一个字符串,这个要传入的字符串就是要填充的那段文本。
String s = mf.format(new Object[]{"java_min"}); // s 的返回值为 hello,java_min
String s = mf.format(new Object[]{"java_min","java"}); // s 的返回值为 hello,java_min,java