- 程序国际化
- 1.Locale
- 2.Properties文件:属性文件(配置文件),内容以建值对的形式存放
- 3.ResourceBundle工具,来绑定属性文件,并指定Locale对象,来自动选择使用那个属性文件,
- 默认使用与操作系统相匹配的语言环境
- getString()方法从属性文件中使用key来获取value
- 注意:ResourceBundle工具类是只读
- 4.处理动态文本 java.text.MessageFormat
首先需要配置info
中文:
英文
import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.Scanner;
/**
* 程序国际化
* 1.Locale
* 2.Properties文件:属性文件(配置文件),内容以建值对的形式存放<key-value>
* 3.ResourceBundle工具,来绑定属性文件,并指定Locale对象,来自动选择使用那个属性文件,
* 默认使用与操作系统相匹配的语言环境
* getString()方法从属性文件中使用key来获取value
*
* 注意:ResourceBundle工具类是只读
*
* 4.处理动态文本 java.text.Messeage
*
*
*/
public class I18NDemo {
public static void main(String[] args) {
/**
* 创建一个本地语言环境对象,该对象会根据参数设置来自动选择与之相关的语言环境
* 参数:语言,地区
*/
Locale locale_CN=new Locale("zh","CN");
Locale locale_Us=new Locale("en","US");
Locale locale_default=Locale.getDefault();//根据机器来选择
Scanner input=new Scanner(System.in);
//用于绑定属性文件的工具类(参数:属性文件的基本名(就是前缀:info))
ResourceBundle r =ResourceBundle.getBundle("info");
//读取值
System.out.println(r.getString("system.name"));
System.out.println(r.getString("input.username"));
String username=input.nextLine();
System.out.println(r.getString("input.password"));
String password=input.nextLine();
if("admin".equals(username)&&"123".equals(password)){
System.out.println(r.getString("login.success"));
//动态文本格式化
String welcome=r.getString("welcome");
welcome=MessageFormat.format(welcome, username);
System.out.println(welcome);
}else{
System.out.println(r.getString("login.error"));
}
}
}
运行结果: