Java程序国际化(汉化)

  • 程序国际化
  • 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"));
		}
	}
}

运行结果:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44117272/article/details/89482875
今日推荐