08-国际化程序

nobility 发布于 2021-12-31 03-Java常用工具类 1906 次阅读


国际化程序

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世界
加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2021-12-31