JAVA国际化

需要的配置文件(配置文件的basename是message):
message.properties
message_en_US.properties

message_zh_CN.properties


java实现类:

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

public class JavaI18n {

public static void main(String[] args) {

Locale defaultLocale = Locale.getDefault();//默认的Locale和系统语言设置项一样
System.out.println("defaultCountry:"+defaultLocale.getCountry());
System.out.println("defaultLanguage:"+defaultLocale.getLanguage());
//第一个参数传递的是配置文件的BaseName,如果配置文件不在当前目录下,则可以用directory.basename
ResourceBundle rb = ResourceBundle.getBundle("message", defaultLocale);
//k1,k2为对应的配置文件(basename_language_country.properties)中的key,
//如果在不到对应的key则抛出java.util.MissingResourceException
//System.out.println(rb.getString("k1"));
//System.out.println(rb.getString("k2"));

//指定Locale
//第一个参数为语言,第二个参数为国家
Locale lo = new Locale("en","US");
ResourceBundle rb1 = ResourceBundle.getBundle("message", lo);
//如果找不到指定的locale所对应的配置文件,则程序会找系统默认的语言环境的配置文件,输出其中的key值,
//如果系统默认语言环境也没有对应的配置文件则会有异常,所以最好配置一个缺省的配置文件,basename.properties
System.out.println(rb1.getString("k1"));
System.out.println(rb1.getString("k2"));

//动态生成信息,填充占位符,占位符从0开始
MessageFormat mf = new MessageFormat(rb1.getString("k1"));
//传递的一个object数组,数组元素与占位符去匹配填充
String s1 = mf.format(new Object[]{"Tom"});
System.out.println(s1);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值