国际化程序
Locale类
用来描述语言和地区的一个类
Locale locale = new Locale("en","US"); //en_US,手动创建
System.out.println(Locale.CHINA); //zh_CN,使用Locale类的常量
Locale aDefault = Locale.getDefault(); //zh_CN,获取本地的语言城市
资源文件
-
文件命名规则
文件名_语言_地区.properties,例如:info_zh_ch.properties -
一组语言资源文件中必须包含有一个默认的资源文件
文件名.properties即可,找不到指定的语言文字时使用默认资源文件 -
内容依然是key=value形式
资源读取
Locale locale = new Locale("en","US");
ResourceBundle bundle = ResourceBundle.getBundle("com.Info",locale);
//获取指定语言的读取资源文件类,info_en_US.properties
//资源文件的包名+资源文件名,不要加后缀
//若没有该语言则使用默认资源文件
System.out.println(bundle.getString("hollow")); //英文
//读取资源文件的key,获取value
ResourceBundle bundle = ResourceBundle.getBundle("com.Info");
//获取读取资源文件类
//未指定语言,使用系统默认语言
//若只有一个资源文件则使用默认资源文件Info.properties
System.out.println(bundle.getString("hollow")); //中文
文本占位符替换
String str = "你好{0},{1}欢迎来到{1}";
//花括号包裹索引的形式作为占位符
String format = MessageFormat.format(str, "用户", "java世界");
//将要格式化的字符串按照后续参数索引进行替换
//占位符也可以复用
//未被替换的保持原样
System.out.println(format);
//你好用户,java世界欢迎来到java世界

Comments NOTHING