




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标了解国际化的概念理解国际化的作用掌握国际化的使用国际化简介国际化英文单词为internationalization,该单词比较长,不方便记录,由于在i和n之间有18个字母,所以也称i18n,这样使用起来比较简短方便。国际化软件是指软件能够运行于不同的区域和语言环境中,根据用户所处的区域和语言来修饰软件界面和显示信息,使用户能够用熟悉的界面环境来使用该软件。Struts2的国际化支持Struts2框架的底层国际化与Java国际化是一致的,作为一个良好的MVC框架,Struts2将Java的国际化功能进行了封装和简化,开发者使用起来会更加简单快捷。在Struts2中需要做国际化的有:JSP页面的国际化、action错误信息的国际化、转换错误信息的国际化、校验错误信息的国际化。配置全局资源文件及输出国际化信息准备资源文件,资源文件的命名格式如下:baseName_language_pertiesbaseName_pertiesbaseNperties其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家。如:中国大陆:baseName_zh_CN.properties美国:baseName_en_US.properties在struts.xml中通过struts.custom.i18n.resources常量把资源文件定义为全局资源文件,如:<constantname="struts.custom.i18n.resources"value="globalMessages"/>配置全局资源文件及输出国际化信息在src文件夹中加入globalMessages_en_US.properties文件,内容如下:
HelloWorld=HelloWorld!在src文件夹中加入globalMessages_zh_CN.properties文件,内容如下:
HelloWorld=你好,世界!对于中文的属性文件,我们编写好后,应该使用jdk提供的native2ascii命令把文件转换为unicode编码的文件。命令的使用方式如下:
native2ascii源文件.properties目标文件.properties在WebRoot文件夹下加入HelloWorld.jsp文件。发布运行应用程序,在浏览器地址栏中输入:http://localhost:8080/Struts2_Chapter08/HelloWorld.jsp,出现图8-1所示的页面参数国际化字符串许多情况下,我们都需要在运行时(runtime)为国际化字符插入一些参数,例如在输入验证提示信息的时候。在Struts2中,我们通过以下两种方法做到这点:在资源文件的国际化字符串中使用OGNL,格式为${表达式},例如:validation.require=${getText(fileName)}isrequired使用java.text.MessageFormat中的字符串格式,格式为{参数序号(从0开始),格式类形(number|date|time|choice),格式样式},例如:validation.between=Datemustbetween{0,date,short}and{1,date,short}
在显示这些国际化字符时,同样有两种方法设置参数的值:使用标志的value0、value1...valueN的属性,如:<s:textname="validation.required"value0="UserName"/>使用param子元素,这些param将按先后顺序,代入到国际化字符串的参数中,例如:<s:textname="validation.required">
<s:paramvalue="UserName"/></s:text>让用户方便的选择语言开发国际化的应用程序时,有一个功能是必不可少的——让用户快捷地选择或切换语言。在Struts2中,通过ActionContext.getContext().setLocale(Localearg)可以设置用户的默认语言。不过,由于这是一个比较普遍的应用场景,所以Struts2为您提供了一个名为i18n的拦截器(Interceptor),并在默认情况下将其注册到拦截器链(InterceptorChain)中。它的原理为在执行Action方法前,i18n拦截器查找请求中的一个名为“request_locale”的参数。如果其存在,拦截器就将其作为参数实例化Locale对象,并将其设为用户默认的区域(Locale),最后,将此Locale对象保存在session的名为“WW_TRANS_I18N_LOCALE”的属性中。下面,将提供一个完整示例演示它的使用方法。包范围资源文件在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时候我们可以针对不同模块,使用包范围来组织国际化文件。方法如下:在Java的包下放置package_language_perties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找。在上述案例的基础上将globalMessages_en_US.properties改为package_en_US.properties并放置于com.xtgj.struts2.chapter08.locale包下,将globalMess
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年计算机技术与软件资格考试技巧提升试题及答案
- 茶艺师培训课程介绍试题及答案
- 实战人力资源管理师试题及答案
- 探索茶艺的创新发展试题及答案
- 2025年度财务部合同审核与评估体系合同
- 2025年度航空保险理赔权转让协议书模板
- 二零二五年度煤炭行业收入确认合同变更执行与会计处理协议
- 二零二五年度木材加工厂木材加工厂生态保护补偿协议
- 2025年菜鸟驿站快递网点经营权及服务合同模板
- 二零二五年度新能源充电桩租赁服务协议
- 2025年日语n2考前试题及答案
- 1889-13-15-食堂承包协议工地食堂承包协议书
- T-NYA 007-2023 多味草本足浴包技术规范
- 2025年山西同文职业技术学院单招综合素质考试题库带答案
- 临床基于高级健康评估的高血压Ⅲ级合并脑梗死患者康复个案护理
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 2024年认证行业法律法规及认证基础知识 CCAA年度确认 试题与答案
- 第5课《小心“马路杀手”》课件
- 2023年06月上海市浦东新区临港新片区文员招考聘用笔试题库含答案解析
- 国际关系理论流派共99页课件
- hbs758s混合伺服使用说明书
评论
0/150
提交评论