问答题 Struts如何实现国际化
【正确答案】
【答案解析】国际化(internationalization,简称i18n,其意为internationalization的首末字符i和n之间有18个字符)与本地化(localization,简称110n,其意为localization的首末字符l和n之间有10个字符)是指让产品(例如出版物、软件、硬件等)能够适应非本地环境,特别是其他语言与文化。具体而言,就是要求程序在不修改内部代码的情况下,能根据不同语言以及地区显示相应的界面。国际化资源文件是指用不同国家的语言描述相同的信息,并放在各自对应的.properties属性文件中,程序根据运行时的环境决定到底加载哪个文件。
Struts提供了对国际化的支持。使用国际化功能也非常简单,主要是先准备各语言的资源文件,在资源文件中定义键和对应的字符串,然后在显示的地方指定键就可以了,例如,在实现国际化时需要在JSP文件中加入Struts的bean标记库<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>,如下例所示。
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<html:html locale="true">
<head>
<title>welcome</title>
</head>
<body>
<h2><bean:message key="page.wel"/></h2>
</body>
</html:html>
接下来需要创建一个资源文件ApplicationResource.properties,文件中的内容如下:
page.wel=Welcome
如果想把英文显示转换为中文,那么需要先创建一个临时的中文资源文件ApplicationResource_temp.properites,例如,page.wel=欢迎,接着对临时中文资源文件进行编码转换。可以使用myeclipse的插件,也可以在命令行模式下执行如下命令:
native2ascii-encoding gb2312 ApplieationResource_temp.properties ApplicationResource_zh_CN.properties
最后,把资源文件ApplicationResource_zh_CN.properties添加到相应的struts-config.xml配置文件中即可。