Java国际化程序

package internation;

import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;

public class TestDemo
{
	public static void main(String[] args)
	{
		//访问的时候一定不要加后缀,默认就会寻找“*.properties”;
		//此时Message.properties文件一定要放在CLASSPATH路径下
		ResourceBundle rb = ResourceBundle.getBundle("Messages");
		System.out.println(rb.getString("Info"));
		String str = rb.getString("wel.msg");     //具备占位符
		//具备占位符的输出
		System.out.println(MessageFormat.format(str, "WYH",new SimpleDateFormat("yyyy-MM-dd").format(new Date())));
		
		//读取中文文件数据
		Locale loc_zh = new Locale("zh", "CN");     //设置语言与国家
		ResourceBundle rb_zh = ResourceBundle.getBundle("Messages",loc_zh);
		String str_zh = rb_zh.getString("wel.msg");
		System.out.println(MessageFormat.format(str_zh, "WYH"));
		
		//读取英文文件
		Locale loc_en = new Locale("en", "US");
		ResourceBundle rb_en = ResourceBundle.getBundle("Messages",loc_en);
		String str_en = rb_en.getString("wel.msg");
		System.out.println(MessageFormat.format(str_en,"WYH"));
	}
}
 
其中 Messages.properties ,Messages_zh_CN.properties , Messages_en_US.properties 如下:

//Messages
Info =  \u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD
wel.msg = \u6B22\u8FCE{0}\uFF01\u73B0\u5728\u662F\uFF1A{1}  //{0}表示占位符
//Messages_zh_CN
wel.msg = \u4F60\u597D{0}
//Messages_en_US
wel.msg = welcome{0}!
注意:

        1.永远都先找特定文件,且优先执行和当前语言环境的*.properties文件。比如说,如果Messages_zh_CN与Messages共存,优先执行第一个,

ResourceBundle rb = ResourceBundle.getBundle("Messages"); 这段代码优先寻找第一个,如果Messages_zh_CN没了,就执行Messages

        2.*properties文件放在src文件下,目录结构如下:

          Java国际化程序_第1张图片


你可能感兴趣的:(国际化)