struts2--java国际化

java国际化通过以下三个类来完成:

Ø java.util.ResourceBundle:用于加载一个国家、语言资源包。

Ø java.util.Locale:用于封装一个特定的国家/区域、语言环境。

Ø java.text.MessageFormat:用于格式化带占位符的字符串。

为了实现程序的国际化,必须先提供程序所需要的资源文件。资源文件的内容是很多key-value对。其中key是程序使用的部分,而value则是程序界面的显示字符串。

资源文件的命名可以有如下三种形式:

Ø baseName language _country.properties 

Ø baseName _language.properties 

Ø baseName.properties

其中baseName是资源文件的基本名,用户可以自由定义。而language和country都不可随意变化,必须是Java所支持的语言和国家。

 



获取Locale对象的三种方式:

  1. Locale locale1 = new Locale("zh","CN");     
  2.     
  3. //②只有语言信息的本地化对象    
  4. Locale locale2 = new Locale("zh");      //1
  5.     
  6. //③等同于Locale("zh","CN")    
  7. Locale locale3 = Locale.CHINA;     
  8.     
  9. //④等同于Locale("zh")    
  10. Locale locale4 = Locale.CHINESE;      //2
  11.     
  12. //⑤获取本地系统默认的本地化对象    
  13. Locale locale5= Locale.getDefault();   //3

案例:实现不同的语言环境下输出不同的"Hello world"。

SayHello.java类:

package com.bean;

import java.util.Locale;
import java.util.ResourceBundle;

public class SayHello {
  public static void main(String []args) {
	  //获取系统默认的国家/语言系统
	Locale locale = Locale.getDefault();
	//根据指定的国家/语言环境加载资源文件
	ResourceBundle rBundle = ResourceBundle.getBundle("hello", locale);
	//通过键取值
	System.out.println(rBundle.getString("hello"));
}
}

根路径下的两个属性配置文件:

hello_en_US.properties:

hello =Hello World\!


hello_zh_CN.properties:

hello =\u60A8\u597D   (您好)

以上程序不是直接打印"Hello World",而是从资源包中读取的信息,如果在中午环境下该程序的运行结果将打印“您好”,英文环境则打印"Hello world"。



MessageFormat类:

案例:创建MyLocale的java类:

package com.bean;

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

public class MyResource {
  public static void main(String[] args) {
	Locale locale = Locale.getDefault();
	ResourceBundle rBundle = ResourceBundle.getBundle("hello", locale);
	String hello = rBundle.getString("hello");
	String mFormat = MessageFormat.format(hello, "刘东升",new java.util.Date());//format(pattern,args)
	System.out.println(mFormat);
}
}

创建国际化资源文件hello_zh_CN.properties:

hello ={0},\u60A8\u597D,{1}

输出:


MessageFormat提供了一个format(String pattern,Object ……values)静态方法,该方法将多个参数填充到pattern字符串中,其中pattern字符串是一个带占位符的字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值