国际化又称i18n问题,Internationalization .
1 Struts国际化的配置
在struts-config.xml文件中加入
<message-resource parameter="MessageResources" />
2 提供国家化资源文件 (MessageResources(这个可以随便起,但是后面的不同语言的必须跟这个保持一致) 叫做 baseName)
MessageResources.properties
MessageResources_zh_CN.properties
MessageResources_en_US.properties 等。
中文需要转换成Unicode编码。
转化成Unicode编码需要用到jdk中bin目录下的native2ascii.exe
3 在jsp中采用<bean:message>读取国际化消息文本。
----------------------------------------------------------------------------------------------------------
Locale 对象表示了特定的地理、政治和文化地区。三种构造方法:
Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)
Locale currLocale = new Locale("zh","CN");
ResourceBundle类 : 资源包包含特定于语言环境的对象。当程序需要一个特定于语言环境的资源时(如String
),程序可以从适合当前用户语言环境的资源包中加载它。使用这种方式,可以编写很大程度上独立于用户语言环境的程序代码,它将资源包中大部分(即便不是全部)特定于语言环境的信息隔离开来。
ResourceBundle rb = ResourceBundle.getBundle("MessageResources",currLocale);
这个对象就可以找到各种国家化 资源配置文件。
rb.getString("key");就可以通过key拿到配置文件中的value,从而达到国家化的目的。Struts对这一部分进行了封装。
---------------------------------------------------------------------------------------------------------------
动态消息国际化主要分为三个步骤:
创建国际化消息文本
传递国际化消息文本
显示国家化消息文本
如何创建?
理解ActionMessage和ActionMessges两个对象的区别
如何传递?
调用saveMeassges()传递提示信息,调用saveErrors()传递错误信息
如何显示?
通过<html:message name=“ ” message=" " >显示提示信息和错误信息
通过<html:errors>显示错误信息(只能显示错误消息)