Jetspeed本身已经解决国际化问题。只要按照Jetspeed的国际化要求进行正确的编码设置和配置,所有网页均可以正确显示。
本文教会大家怎么样汉化Jetspeed项目。
1.让Jetspeed支持中文本地化。
Jetspeed中支持多种语言的本地化,偏偏没有提供中文的本地化,不知道是不是Apache开源组织对中国软件水平的歧视。不管怎样,我们中国人还要靠自己的努力来改变世界对中国软件的看法。废话不说,下面列出中文本地化的步骤:
(1)增加本地化属性文件
在WEB-INFclassesorgapachejetspeedmoduleslocalization目录下,存放了Jetspeed使用的本地化属性文件,但是还没有中文本地化属性文件。
打开JetspeedLocalization.properties,将该属性文件中的属性值翻译为中文,保存文件到新的文件,如1.properties。再使用转码工具(每个jre里都自带了这个工具)native2ascii .exe将翻译完的属性文件转码成ascii编码:
native2ascii 1.properties JetspeedLocalization_zh.properties。
最后确保将这个本地化属性文件JetspeedLocalization_zh.properties放在该目录下。
注:假如你的Jetspeed项目中类结构已经打包部署,请解开这些类结构,部署到classes目录下,方便修改(此时应将原来的jar包从lib目录下移除)。
(2)修改Jetspeed的两个配置文件
---------------------------
WEB-INFconfTurbineResources.properties
找到相应的属性并修改其值:
#Velocity service
services.Velocity.input.encoding=UTF-8
#Localization service
locale.default.language=zh
locale.default.country=CN
locale.default.charset=GBK
---------------------------
WEB-INFconfvelocity.properties
找到相应的属性并修改其值:
#template encoding
template.encoding=UTF-8
(3)执行完以上两步,打开浏览器,设置浏览器的语言首选项,就可以看到不同语种显示的页面。
2.让Jetspeed中的所有页面中文化
上个步骤只是让Jetspeed支持中文本地化,指的是Jetspeed中采用国际化技术制作的页面可以正常显示中文。
但是并非所有的Jetspeed内部页面都已经采用国际化进行处理。我们需要将所有Jetspeed内部已经制作好的页面模板,包括采用jsp技术制作的jsp页面和采用Velocity制作的vm模板,进行国际化处理。就是说,我们需要将这些页面模板中的静态英文字符串采用国际化技术对其进行封装。
具体技术如下:
---------------------------
JSP页面:
页面中确保加入了:
将静态英文字符串替换为
在默认本地化属性文件JetspeedLocalization.properties文件中加入:
key_name=原来的英文字符串
在中文本地化属性文件JetspeedLocalization_zh.properties文件中加入:
key_name=英文字符串的汉语翻译
---------------------------
VM模板:
将静态英文字符串替换为$l10n.key_name
在默认本地化属性文件JetspeedLocalization.properties文件中加入:
key_name=原来的英文字符串
在中文本地化属性文件JetspeedLocalization_zh.properties文件中加入:
key_name=英文字符串的汉语翻译
注重:
(1)JetspeedLocalization_zh.properties文件中的值必须通过native2ascii转码,而不是直接写入中文。
(2)所有属性文件中的key_name不得重复出现。
3.Jetspeed注册文件的汉化
这些注册文件包括Jetspeed的实体注册文件(*.xreg)和Jetspeed站点结构描述文件(*.psml)。这些文件的汉化将影响到Jetspeed最终显示页面中的标题和可选择资源名称的显示。
很简单:将这些文件的编码格式改为GBK,然后就可以大肆修改文件中的标题、描述等字符串。注重千万不要直接改动要害字段,如名称、id号之类的。
这部分的修改涉及到Jetspeed中的具体资源,要谨慎修改,建议先熟悉其深刻含义。
4.作者说明:
作者:Jurich
工作单位:航天四创软件技术有限公司
相关经历:本人从事Jetspeed为基础的门户产品开发和门户应用开发已经有1年多的时间,熟悉J2EE技术体系,熟悉门户开发技术。欢迎有相关项目的组织或个人在技术方面经常交流。
联系方式:zhuhuangfeng@aerostrong.com.cn