haibo
CJSDN高级会员
发贴: 322
积分: 71
|
于 2003-01-03 14:08
Java 为应用程序的国际化提供了良好的支持,Struts Framework 也继承了Java 的优点,通过把应用程序所需要的字符资源(比如包括,jsp页内出现的字符串直接量,报错信息,WebApp 内资源的引用名称等)从以前的直接在应用内的“硬编码“形势转换为在应用外通过一个资源文件来配置,来为应用程序的维护和国际化提供了良好的支持。 通常,这个资源文件成为XXX.proerties文件(应用程序默认的有一个叫 Application.properties,但你可以通过配置Struts-config.xml 文件来指定你的 资源文件),它必须存放在web-inf\classes 目录下,一共应用程序在启动时装如它。 如果你的应用不需要 i18n 那么只需指定一个properties 文件。为了支持国际化,你必须创建相应的资源文件,比如需要自持中文简体和繁体 就需要三个properties 文件: 1。ApplicationMessageResources_zh_CN.properties 2。ApplicationMessageResources_zh_TW.properties 3。ApplicationMessageResources.properties 这两个文件必须符合国际化命名规则:ApplicationMessageResources部分是你的自定义命名,zh 代表(language)中文,CN代表(country)国家中国, TW代表台湾。所以第一个就是为“语言“设置为zh-cn的客户,第二个是为语言设置zh-tw的客户,那么如果语言设置为其他的呢?这就是第三个文件存在的原因了,如果Struts 找不到合适语言设置的.properties 文件,他就采用Base(基础的)资源文件。(IE内语言的设置在tools->internet 选项第一张选项卡内。) 现举个例子,比如我们要在Jsp页内指定页面的标题:平常我们可以用<title><bean:message key="label.title"/></title>,我们可在.properties 内设置一个Key: Label.title="XXXX“ 相应的在zh_cn properties 文件内就应该是 Label.title="这是标题“ ,而在zh_tw proerties 文件内就因该市 Label.title="這是標題“ (注意:"這是標題"這四个字一定要采用Big5编码,为了保证编码正确,笔者将操作系统的“区域“一项设置为“中国台湾"后重起机子输入的,这时的字体在Windows 内使用Big5 编码的。不能用将输入法的“简“换作“繁“来做输入,这种输入的编码不是Big5。) 好了,现在用Sun 的 i18n工具 native2ascii 来把我们的采用本地编码 的properties 文件转换为用Unicode 编码。可用命令: 对zh_cn :native2ascii -encoding GBK ApplicationMessageResources_zh_CN.properties ApplicationMessageResources_zh_CNnew.properties 相应的 zh_tw 就应该用 Big5 代替GBK,重新命名ApplicationMessageResources_zh_CNnew.properties 为 ApplicationMessageResources_zh_CN.properties 在jsp 页内用<%@ page cotentType="text/html;charset=UTF-8" %> ,一切OK, startup your application ,浏览你的叶子,试着改变“语言“选项为 zh-cn,或zh-tw(每改变一次,必须重新启动一个新的IE),感受国际化带给你的享受吧!!! Reference : O' reily <<java internationalization>> Sun i18n tourial <<programing jakarta struts> >
|