快速业务通道

Struts1.x系列教程(13):国际化 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

Struts1.x系列教程(13):国际化 - 编程入门网

Struts1.x系列教程(13):国际化(4)

时间:2011-01-10 BlogJava 银河使者

如果在刷新时页面语言未更新,可能是因为IE的Cache的原因,读者可以启一个新的IE窗口,再进行测试。

读者在使用属性文件进行国际化时应注意如下三点:

1. 由于语言还可以继续细分,如中文可以分为简体和繁体,英文也可以分为不同国家或地区的英文,如爱尔兰、澳大利亚等。因此,对于更细化的语言,可以在属性文件后面再加一个代表国家或地区的后缀,如application_zh_TW.properties代表中国台湾所使用的繁体中文,application_en_AU.properties代表澳大利亚英文。Struts在寻找属性文件时,会首先查找带有国家或地区后缀的属性文件,如果这类文件不存在,会继续查找只有语言后缀的属性文件,如果还不存在,最后会读取默认属性文件,也就是application.properties的内容。假设我们在“语言首选项”中选择了“中文(台湾) [zh-tw]”,那么读取文件的顺序(从最左边开始,如果文件不存在,依次读取右边的文件)如下:

application_zh_TW.properties > application_zh.properties > application.properties

如果选择的语言是“中文 [zh]”,那么就直接从application_zh.properties开始读取。

2.在建立属性文件时要注意,后缀的连接符为下划线( _ ),而不能用减号( - )。 

3. 代表语言的后缀(如zh、fr、en等)必须小写,而代表国家或地区的后缀(如CN、TW、AU等)必须大写。如写成application_ZH_tw.properties是不正确的。

在Struts HTML标签库中的标签中以key为后缀的属性值就是属性文件中的key,如下面的代码所示:

<html:submitvalue="提交" titleKey="title" bundle="global"/>

上面的代码将<html:submit>标签的title属性值设为属性文件的title键的值。但是在<html:submit>标签中的value属性无法使用属性文件中的键值,解决的方法是使用< html:submit>标签的另一种写法,代码如下:

<html:submit>     <bean:messagekey=“title” bundle=“global”/>   </html:submit>

三、实现多种语言界面的Web程序

在上面所讲的国际化只是根据客户端浏览器所处的语言环境来自动设置界面语言。而我们在Internet上会看到很多Web程序在主界面上都提供了对不同语言的选择。在本节我们就来讲一下如何通过编程的方式来干预服务端对属性文件的选择。  

实现上,Java使用java.util.Locate类来描述语言,一个Locate类的对象实例就代表一种语言。并且从客户端获得的语言信息使用“org.apache.struts.action.LOCALE”保存在了session中,因此,我们只要在调用<bean:message>或其他使用属性文件的语句之前修改session中保存的Locale对象,就可以达到我们的目的。现在我们来对global.jsp页面进行修改(新建一个文件newGlobal.jsp)。global.jsp中所有的代码都不用动,只需要在第一个<bean:message>标签的前面加上如下的代码:

……   <% if("en".equals(request.getParameter("language"))) session.setAttribute("org.apache.struts.action.LOCALE",new java.util.Locale("en")); else if("zh".equals(request.getParameter("language"))) session.setAttribute("org.apache.struts.action.LOCALE",new java.util.Locale("zh")); else if("fr".equals(request.getParameter("language"))) session.setAttribute("org.apache.struts.action.LOCALE",new

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号