首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

一口一口吃掉Struts(九)——国际化有关问题(1)

2013-04-02 
一口一口吃掉Struts(九)——国际化问题(1) Web应用实现国际化(i18n),主要包括两个方面 一、页面(jsp)静态信息

一口一口吃掉Struts(九)——国际化问题(1)

 

Web应用实现国际化(i18n),主要包括两个方面 

一、页面(jsp)静态信息的国际化

二、动态消息的国际化

 

在开始Struts国际化之前,我们先来看一下java如何实现国际化

 

主要步骤:

 

1、创建属性文件(国际化资源文件)

 

*国际化资源文件是有baseName+Locale构成,如MessagesBundle_en_US.properties

 

*缺省的国际化资源文件是baseName.properties格式命名,如:MessagesBundle.properties

 

*关于中文必须转换成unicode,可以采用JAVA_HOME/bin/native2ascii工具转换

命令native2ascii.exe o.properties MessagesBundle_zh_CN.properties

也可以一个一个字符转换

 

举例:

一口一口吃掉Struts(九)——国际化有关问题(1)

 

属性文件示例:

k1=China

k2=Hello,{0}

 

2、定义Locale对象

 

*可以获得系统默认local,也可以自定义

 

*缺省的Locale是有操作系统决定的

 

*Locale是有语言和国家代码构成

 

3、创建一个ResourceBundle对象

 

*ResourceBundle对象用于分离跟本地相关的数据

 

*如果找不到相应语言或国家代码的属性文件,将使用默认的属性文件(即没有标识语言和国家代码的属性文件:MessagesBundle.properties)

 

4、从ResourceBundle对象中获取数据,如果有占位符,可以给占位符赋值

 

示例:

public class test {public static void main(String[] args){//获取系统默认locleLocale localeDefault=Locale.getDefault();System.out.println("Country="+localeDefault.getCountry());System.out.println("Language="+localeDefault.getLanguage());System.out.println("------------------------");//我们通过指定一个语言代码和国家代码来创建一个Locale对象Locale localeNew=new Locale("en","US");System.out.println("Country="+localeNew.getCountry());System.out.println("Language="+localeNew.getLanguage());System.out.println("------------------------");//读取国际化资源文件/** * 其创建方式如下:第一个参数,表示要从哪些资源属性文件中(MessagesBundle_XX_XX.properties)获取数据第二个参数,是一个Locale对象,表示要选择哪个资源属性文件ResourceBundle对象用于分离跟本地相关的数据                     如果找不到相应语言或国家代码的属性文件,                     将使用默认的属性文件(即没有标识语言和国家代码的属性文件:MessagesBundle.properties) */ResourceBundle myResources =ResourceBundle.getBundle("com.jialin.resource.MessagesBundle", localeDefault);    //从ResourceBundle对象中获取数据System.out.println(myResources.getString("k1"));System.out.println(myResources.getString("k2"));System.out.println("------------------------");//给国际化资源文件中的占位符赋值MessageFormat myFormat=new MessageFormat(myResources.getString("k2"));System.out.println(myFormat.format(new Object[]{"jialin"}));}}

 

Struts国际化实现的核心原理,基本也是这个样子,只是把相关的东西都写到了配置文件中,更复杂也更灵活一些。

下篇继续介绍Struts如何实现国际化。

 

 

 

2楼lfmilaoshi前天 11:22
加油
1楼StubbornPotatoes3天前 16:12

热点排行