Struts1.x系列教程(13):国际化 - 编程入门网
Struts1.x系列教程(13):国际化时间:2011-01-10 BlogJava 银河使者对于一个面向全球的Web应用程序,按着不同国家的要求显示相关信息(称为国际化)显得尤为重要。国际化的工作非常复杂和繁琐。因为要翻译很多Web界面,信息格式等。然而,Struts为我们提供了完成国际化工作的更容易的方式。在本文将介绍如何使用Struts来简化国际化的工作。 一、处理客户端界面的编码问题 由于Web浏览器可以使用不同的编码格式来解析客户端代码,这主要取决于用户的默认设置或偏好。由于存在这种情况,因此,在服务端向客户端发送数据时,就必须使用和客户端一致的编码格式。 通常的做法是使用Internet上比较常用的UTF-8编码,这主要是因为UTF-8编码格式所描述的字符包括了世界上所有以知国家和地区的语言编码。这样服务端就不用根据客户端的编码格式不断地调整服务端响应信息的编码格式了。对于JSP页面来说,可以使用page指定来设置响应信息的编码格式,如下面代码所示: <%@ page contentType="text/html; charset=UTF-8" %> 当然,如果我们在Web程序中使用了Struts框架,还可以在struts-config.xml文件中使用如下的代码来设置编码格式: <controller contentType="text/html; charset=UTF-8" /> 如果使用上面的设置,所有通过.do或<forward>元素访问的页面都会继承这一编码设置。但是如果单独访问JSP页面,就会绕过Struts的这个设置。 对于静态页面(如HTML)来说,需要使用<meta>元素来设置编码格式,如下面代码所示: <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"></head> 除了使用通用的UTF-8编码格式外,也可以从HTTP请求头字段Accept- Charset中获得客户端的编码格式。然后根据这个编码格式来设置响应信息的编码格式。然而,虽然根据HTML4.0规范,Web浏览器可以设置 Accept-Charset字段,但是有很多浏览器可以会忽略这一字段,因此,只使用这个字段来确定Web浏览器所使用的编码格式是不可靠的。所以最好的国际化编码格式解决方案仍然是UTF-8。 二、本地化属性文件 本地化最重要的部分就是根据用户所处的语言环境来显示响应语言的界面,如用户在英文操作系统下,就会显示英文界面,如果在中文操作系统下,就会显示中文界面。最理想的情况是这种显示效果的切换是完全透明的。 在Struts中提供了这种技术,使我们可以更容易地实现透明地界面切换。在Struts Bean标签库中有一个<bean:message>标签,它可以根据客户端浏览器所处的语言环境自动选择相应的属性文件来读取界面显示信息。为了演示如何使用<bean:message>以及不同的属性文件来实现国际化的程序。让我们先来看一个例子。 在本例中,选用了三个国家的语言环境(中文、英文和法文)来演示国际化的实现。由于读者可能不便于输入法文,因此,法文信息仍然用中文代替,只是后面多了个“(法文)”作为标识。我们需要如下四步来完成这个例子: 【第1步】建立一个默认的属性文件 在<samples工程目录>\src\struts目录中建立一个application.properties文件,内容如下: title=这是一个国际化的web程序(默认值) name=姓名(默认值) submit=提交(默认值) application.properties文件是默认的属性文件,如果客户端浏览器所处的语言环境在服务端未找到相应的属性文件,<bean:message>标签就会从application.properties文件中读取字符串信息。 在Eclipse中编辑非ISO 8859-1编码格式的字符时,应使用在《属性(资源)文件乱码问题的解决之道》介绍的两个Eclipse插件,或使用native2ascii.exe命令进行转换 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |