Topic: 小议:Struts i18n

  Print this page

1.小议:Struts i18n Copy to clipboard
Posted by: haibo
Posted on: 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> >


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923