• Java程序国际化学习代码一


    Java程序国际化初识

    1、基本思路

    Java程序的国际化的思路是将程序中的标签、提示等信息放在资源文件中,程序需要支持哪些国家、语言环境,就对应提供相应的资源文件。资源文件是key-value对,每个资源文件中的key是不变的,但value则随不同国家、语言改变。

    2、使用的类

    • java.util.ResourceBundle:用于加载一个国家、语言资源包。
    • java.util.Locale:用于封装一个特定的国家/区域、语言环境。
    • java.text.MessageFormat:用于格式化带占位符的字符串。

    3、示例代码(模拟登录)

    代码
    /**
    * 程序国际化 
    * 1、使用的类:Locale、 ResourceBundle、MessageFormat
    * 2、properties属性文件(或配置文件),内容以键值对的方式存放
    * 3、ResourceBundl工具类,来绑定属性文件,并指定Locale对象,来自动选择使用那个属性文件,默认将使用与操作系统相同的语言环境
    * 		getString()方法来从属性文件中使用key来获取value 
    * 		注意:ResourceBundle工具类是只读的,不能用于向属性文件中写入数据
    * @author xiaofei
    */
    public class I18nDemo {
    
    	public static void main(String[] args) {
    		// 创建一个本地语言环境对象,该对象会给根据参数设置来自动选择与之相关的语言环境
    		// 参数:语言,地区,可以从IE浏览器中的工具当中查看各个国家/地区对应的代码
    		Locale locale_CN = new Locale("zh", "CN");
    		Locale locale_US = new Locale("en", "US");
    		// 获取当前系统默认的语言环境
    		Locale locale_default = Locale.getDefault();
    
    		Scanner sc = new Scanner(System.in);
    		// 使用配置文件
    		String baseName = "i18n.info";// baseName即为属性文件的前缀名,带上包名
    		// 用于绑定属性文件的工具类,bundle是大量,包,捆的意思
    		ResourceBundle r = ResourceBundle.getBundle(baseName, locale_US);// 指定用英文
    
    		System.out.println(r.getString("system.name"));
    
    		// 接收用户输入的用户名
    		System.out.println(r.getString("input.username"));
    		String username = sc.nextLine();
    		
    		// 接收用户输入的密码
    		System.out.println(r.getString("input.password"));
    		String password = sc.nextLine();
    
    		if ("admin".equals(username) && "123".equals(password)) {
    			System.out.println(r.getString("login.success"));
    
    			String welcome = r.getString("welcom");
    			// 动态文本格式化,其中welcome,{0}中的{0}叫做占位符
    			welcome = MessageFormat.format(welcome, username);
    			System.out.println(welcome);
    		} else {
    			System.out.println(r.getString("login.error"));
    		}
    	}// main
    
    }
    
    属性文件

    info_zh_CN.properties

    system.name=u5458u5DE5u7BA1u7406u7CFBu7EDF
    input.username=u8F93u5165u7528u6237u540DuFF1A
    input.password=u8F93u5165u5BC6u7801uFF1A
    
    login.success=u767Bu5F55u6210u529FuFF01
    login.error=u767Bu5F55u5931u8D25uFF01
    
    welcom=u6B22u8FCEu4F60uFF0C{0}uFF01
    

    info_en_US.properties

    system.name=EMP Manage System
    input.username=Input Your UserName:
    input.password=Input Your Password:
    
    login.success=Login Success!
    login.error=Login Fail!
    
    welcom=welcome,{0}!
    

    4、运行结果

    英文时

    中文时

  • 相关阅读:
    canvas的基本用法
    h5新增属性
    jquery中遍历
    git版本控制器
    bootstrap-datetimepicker时间插件
    layer.load的使用
    ajax请求json中的数据
    h5中input的request属性提示文字字段
    layUI
    v-show v-if 的使用
  • 原文地址:https://www.cnblogs.com/zxfei/p/10792313.html
Copyright © 2020-2023  润新知