Struts Internationalization (i18n 国际化)
来源:互联网 发布:淘宝白色蝴蝶结衬衣 编辑:程序博客网 时间:2024/05/08 15:23
参考网址:
http://ajava.org/readbook/open/sshzgf/5012.html
1、为什么需要国际化
国际化是商业系统中不可或缺的一部分,目前很多跨国的商务需求都需要实现多语言,对用户而言他们始终想看到用他们熟悉的语言显示的网站,因此这势必要求开发网站所采用的技术具有国际化的特点。若采用普通的编程方式实现国际化可能需要花费大量的时间和精力,而采用Struts则可以极大地简化程序员在做国际化时所需的工作。
Struts允许将不同语言的文字写在多个资源文件中,每个资源对应一种语言,在JSP页面上通过Struts标签
2、认识Struts国际化组件
要实现国际化,首先应该有存放各种版本语言编写的消息的地方。实际上,这些信息就被存储在多个文本文件中,每个文件对应着一种不同语言的版本。这些文件被称做资源文件,所有资源文件合在一起被称为资源包(Resource Bundle)。
资源文件必须以.properties结尾,文件名前缀可以任意命名,习惯上命名方式有以下两种:
l 文件名前缀.properties。
l 文件名前缀_语言种类.properties。
其中,语言种类字段必须是有效的ISO(International Standardization Organization,国际标准化组织)语言代码,ISO-639标准定义的这些代码格式为英文小写、双字符,如表1所示。
表1 ISO-639标准常用语言代码
语言
编码
汉语(Chinese)
zh
英语(English)
en
法语(French)
fr
德语(German)
de
日语(Japanese)
it
意大利语(Italian)
ja
在进行国际化处理时,资源文件中包含中文字符,若不进行编码转换页面将会出现乱码。在JDK中提供了一个native2ascii程序,它能够实现字符编码转换。例如要转换Application.properties文件中的字符,在DOS中执行以下的命令:
native2ascii -encoding GB2312 Application.properties
Application_zh.properties
经过native2ascii命令转换后,就得到一个新的文件Application_zh.properties,它的内容如下:
login.jsp.title=/u767b/u5f55/u9875/u9762
login.jsp.page.heading=/u767b/u5f55/u9875/u9762
login.jsp.label.username=/u7528/u6237/u540d/uff1a
login.jsp.label.password=/u5bc6/u7801/uff1a
login.jsp.button.submit=/u63d0/u4ea4
login.jsp.button.reset=/u91cd/u5199
3、访问资源包的方式
访问资源包的方式主要包括两种:一种是在JSP页面中通过Struts标签
在JSP页面中通过Struts标签
在JSP页面中引入标签库,引入的方式如下代码所示:
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
在程序中访资源包可通过Action类提供的getResources()方法先获得 org.apache.struts.MessageResources类的一个实例,之后就可以按照request对象中的Locale信息来获取相应资源包中的文本,示例代码如下:
//获取请求的的Locale信息
Locale locale = getLocale(request);
//获取资源包
MessageResources message = getResources(request);
//从资源包中得到信息文本并输出
System.out.println(message.getMessage(locale,"login.jsp.page.heading"));
- Struts Internationalization (i18n 国际化)
- Struts Internationalization (i18n 国际化)
- 国际化—— i18n:internationalization
- Internationalization (国际化)
- Struts(14)本地化/国际化(i18n)
- Struts(14)本地化/国际化(i18n)
- 在struts中使用国际化(i18n)
- struts 国际化 i18n
- 08.struts国际化(I18N)
- struts-i18n国际化实现
- 国际化(Internationalization)被缩写为I18N, 即只取首尾两个字母, 中间字母为18个。
- i18n(Internationalization)
- Struts 国际化 i18n 的配置
- SSH系类(三)struts国际化(I18N)
- Android 国际化(i18n)
- QT国际化(i18n)
- Android 国际化(i18n)
- Rails国际化(i18n)
- 数据泵导出命令 expdp 常用使用总结
- Struts Internationalization (i18n 国际化)
- 近段时间的反省 2011.05
- Oracle 10g的Oracle Data Pump(数据泵)方式的数据导入和导出
- 冒泡排序
- Struts Internationalization (i18n 国际化)
- Opencv中cvCopy()和cvCloneImage()的区别
- CEGUI渲染器
- Struts2配置教程
- 利用UTL_FILE包实现文件I/O操作
- 非法使用long类型数据
- svn 中tag branch trunk 的用法(转自:http://blog.csdn.net/mqboss/archive/2010/10/22/5958225.aspx)
- 介绍如何用C#.NET读写XML文档资料
- TortoiseSvn 分支合并(转自:http://tech.16c.cn/svnpz/20090625/6831.html)