java 国际化

 

创建.properties资源文件,且按照该规则命名:资源名_语言代码_国家/地区代码.properties,如i18n_zh_CN.properties,其中i18n可以随便写,后面的按照下图写

国家/地区

语言编码

国家/地区

语言编码

简体中文(中国)

zh-cn

繁体中文(台湾地区)

zh-tw

繁体中文(香港)

zh-hk

英语(香港)

en-hk

英语(美国)

en-us

英语(英国)

en-gb

。。。

 

 

 

#i18n.properties
#默认语言,在没有找到其他语言时,默认使用该配置
msg = hello,{0}
#i18n_en_US.properties
msg = hello,{0}
#i18n_zh_CN.properties
msg=\u60a8\u597d\uff01{0}

国际化properties文件中的value必须是Unicode 编码,否则输出时将是乱码,这里的{0}是占位符,java代码输出时会用到。为了开发时方便可以安装eclipse插件打开资源文件,如ResourceBundle Editor或者PropertiesEditor,用插件打开properties就可以看到中文,在输出时会自动转为Unicode 

package website;

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

public class I18n {
	public static void main(String[] args) {
		Locale locale = Locale.CHINA;  //设置语言为中国
		ResourceBundle resourceBundle = ResourceBundle.getBundle("i18n", locale); //第一个参数是资源基名,根据locale的值去找对应语言的properties
		String msg = resourceBundle.getString("msg");  //取出资源文件中key为msg的值
		System.out.println(msg); //输出properties中的值
		String result = MessageFormat.format(msg,"张三"); //使用占位符格式化输出
		System.out.println(result); //格式化后输出
	}
}

参考文档:https://www.cnblogs.com/jingmoxukong/p/5146027.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值