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文件下,目录结构如下: