Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2295707
  • 博文数量: 252
  • 博客积分: 5472
  • 博客等级: 大校
  • 技术积分: 3107
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-17 18:39
文章分类

全部博文(252)

文章存档

2012年(96)

2011年(156)

分类: Java

2011-12-22 11:41:48

国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母。国际化又称本地化(Localization,L10N)。

Java国际化主要通过如下3个类完成

  • java.util.ResourceBundle:用于加载一个资源包
  • java.util.Locale:对应一个特定的国家/区域、语言环境。
  • java.text.MessageFormat:用于将消息格式化

Local类对象的使用和获得有以下四种方式

1 通过构建函数创建Local对象

  1. Local chLocal = new Local("zh","CN");

第一个参数是语言代码 两个小写字母 遵从ISO-639规范

第二个参数是国家代码 两个大写字母 遵从ISO-639规范

2  使用默认定义的Local对象

Local类提供了几个静态常量 他们代表一些常用的Local实例

例如 要获得Japanese Local实例 可以用下面两种方法之一

 

  1. Local local1 = Local.JAPAN;
  2. Local local2 = new Local("js","JP");

3  取得操作系统的默认Local对象

Java虚拟机在启动时会查询操作系统 为运行环境设置默认的Local Java程序可以调用java.util.Local类的静态方法getLocal()来获得默认的Local

 

  1. Local defaultLocal = Local.getDefault();

 

4  在web应用中访问客户端的Local对象

在创建Local对象时 应该把语言和国家代码两个参数传递给构造方法 对于Web应用程序 通常不必创建自己的Local实例 因为Web容器会负责创建所需的Local实例 在应用程序中 可以调用HttpServletRequest对象的以下两个方法 来取得包含Web客户的Local信息的Local实例

  1. public java.util.Local getLocal();
  2. public java.util.Enumeration getLocales();

这两个方法都会访问HTTP请求中的Accept-Language头信息。 getLocal()方法返回客户优先使用的Local 即客户端浏览器设置的第一个语言选项。getLocals()返回一个Enumeration集合对象 它包含了按优先级顺序排列的所有Local对象 即客户端浏览器设置的语言列表 如果客户没有配置任何的Local  getLocal()方法将返回默认的Local

 

ResourceBundle类

java.util.ResourceBundle类提供存放和管理与Local相关的资源的功能。这些资源包括文本域或者按钮的Lable 状态信息 图片名 错误信息和网页标题等

Struts没有直接使用Java提供的ResourceBundle类 在Struts框架中提供了两个类

org.apache.struts.util.MessageResources

org.apache.struts.util.PropertyMessageResources

这两个类具有和ResourceBundle相似的功能 其中PropertyMessageResource是MessageResources类的子类

 

阅读(4065) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~