5.1.1 资源文件和资源包
要用Struts实现国际化和本地化,首先要定义资源文件的名称,这个文件会包含用默认语言编写的在程序中会出现的所有消息。这些消息以“关键字—值”的形式存储,例如:
error.validation.location = The entered location is invalid |
当对一个应用程序进行国际化处理时,所要用的各种语言版本的“标签”信息应该存放在不同的属性文件中,每一个这样的文件对应一种语言的版本。所有属性文件合在一起被称为资源包(Resource Bundle)。
属性文件的命名格式可分为以下两种:
文件名前缀.properties
文件名前缀_语言种类.properties
文件名后缀必须为properties,前缀则由开发者自行确定,其中的语言种类字段必须是有效的ISO(International Standardization Organization,国际标准化组织)语言代码,ISO-639标准定义的这些代码格式为英文小写、双字符,具体见表5-1所示。
表5-1 ISO-639标准常用语言代码
|
语 言 |
编 码 |
|
汉语(Chinese) |
Zh |
|
英语(English) |
En |
|
法语(French) |
Fr |
|
德语(German) |
De |
|
日语(Japanese) |
Ja |
|
意大利语(Italian) |
It |
文件名前缀中默认语言代码的为默认属性文件。当系统找不到与客户端请求的语言属性匹配的属性文件时,则使用该默认属性文件。
例如,如果我们要对前面的登录系统进行国际化处理,要求根据不同的语言环境显示英文和中文用户界面,那么就需要创建英文和中文版本的资源文件,分别取名为ApplicationResources.properties和ApplicationResources_zh.properties。它们的内容如例程5-1和例程5-2所示。
例程5-1 英文版资源文件ApplicationResources.properties
#A simple properties file title.login = Login Page |
#一个简单的属性文件 title.login = 登录页面 |
可以看出,属性文件中包含的是“键—值”对的形式的字符串信息。属性文件在应用程序启动时被载入内存,并根据客户端请求所携带的语言/地区信息进行匹配和使用。这些信息以java.util.Locale类的属性的方式被封存在request对象中。可以通过HttpServletRequest类的getLocale()方法获得相应的Locale对象,进而再调用Locale对象的getLanguage()方法获取具体的语言种类信息。
资源文件需要存储在类的路径下,而且它的路径要作为初始化参数传送给ActionServlet时,路径的格式要符合完整Java类的标准命名规范。比如,如果资源文件存储在WEB-INF\classes目录中,文件名是 ApplicationResources.properties,那么需要传递的参数值是ApplicationResources。如果文件在WEB-INF\classes\com\test中,那么参数值就应该是com.test.ApplicationResources。
资源包需要在Struts配置文件struts-config.xml中进行配置。<message-resources>元素就是用来配置资源包的。
<message-resources parameter="ApplicationResources"/> |
<message-resources parameter="ApplicationResources"/> |
其中,不带key属性的就是默认的资源包。
资源包应该放在Web应用程序的WEB-INF/classes目录下,当系统初始化时,会装载这些资源文件。如果修改了资源文件,则需要重启应用服务器。
| 回书目 上一节 下一节 |
|
· Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. · 网络工程师模拟测试获.. |
· 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. · 构建可扩展的Web站点的.. |
|
||||
| · 微软出价446亿美元收购.. · 首届中国IT工程师生态.. · 视频访谈:网管员如何踏.. · 企业数据恢复指南 · Linux——从菜鸟到高手 · 交换机故障解决指南 · OSPF路由协议专栏 · 勇闯IT培训黑色围城 |
· 见证中国网络安全二十年 · 技术人求职简历完备手册 · 华为员工自杀频频拷问.. · 思科全球CEO钱伯斯第七.. · 北漂技术人90天求职纪实 · 2007年互联网大会 · 龙芯要做中国的“奔腾” · IPv6协议--拓展网络无.. |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · 三层交换技术专题 · SQL Server入门到精通 |
· 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux防火墙 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · ADSL应用面面俱到 · 入侵防护系统(IPS)初探 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · 三层交换技术专题 · RAID——磁盘阵列基础 |
· 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · PHP开发应用手册 · 中间件应用技术专题 |
|||