《Bboss国际化实践》由会员分享,可在线阅读,更多相关《Bboss国际化实践(25页珍藏版)》请在金锄头文库上搜索。
1、Bboss国际化实践尹标平l界面文字、图片、logo、按钮国际化l消息提示框国际化lCSS样式文件、JS文件国际化l 后台输出数据和日志国际化l业务数据(货币单位、字典数据)国际化范围思路基于平台业务系统国际化辅助第三方系统国际化目标国际化思路和目标基础框架提供国际化机制和通用用国际化组件公共开发平台国际化制定标准国际化UI规范公共控件(标签库,js库)国际化平台提供菜单国际化机制提供灵活的资源文件加载机制:可加载web应用目录下资源文件可加载classpath对应目录及子目录下资源文件bboss框架国际化机制特点国际化机制提供多种国别代码识别机制:Session,浏览器设置,Cookie。采
2、用插件来实现不同的国别代码识别机制采用国际通用的properties文件来配置和管理国际化信息提供国际化属性配置文件缓冲机制,确保运行时性能最优化,并提供热加载机制(在线修改,实时加载),确保开发效率最大化提供属性配置文件模块化管理机制,每个模块可以有自己的属性配置文件国际化机制和组件与平台IOC框架、MVC框架、标签库天然结合提供灵活的国际化菜单信息获取api菜单国际化机制特点国际化机制与平台国际化机制共用国别代码识别、设置管理机制以平台国际化机制为基础实现平台菜单国际化机制(缓冲机制、热加载机制等等)提供菜单国际化的导航标签:一级top导航国际化标签,左侧菜单国际化导航标签,当前位置国际化
3、导航标签主子系统即可共用相同的菜单国际化属性配置文件,也可以有自己的菜单国际化属性配置文件菜单国际化内容有:系统名称、系统logo图片、菜单标题、菜单描述、菜单鼠标事件图片国际化属性文件命名、配置、存储规范国际化配置属性文件命名规范messages_模块名称_国别代码.properties模块名称:系统模块的英文简称,可选,可以不要国别代码:国家的英文代码,例如zh_CN,en_US实例:messages_module_en_US.propertiesmessages_module_zh_CN.properties属性命名规范:类似于java包路径的命名规则,实例如下pdp.module.cu
4、rrentposition=您的当前位置:pdp.module.personcenter=个人中心国际化属性文件命名、配置、存储规范国际化配置Web应用目录中的属性文件存储、配置、加载与mvc框架结合的国际化属性文件存储和配置属性文件存储在WEB-INF目录或者WEB-INF子目录下国际化属性文件命名、配置、存储规范国际化配置Web应用目录中属性文件存储、配置、加载与mvc框架结合的国际化属性文件配置和加载在web.xml文件的mvc拦截器中配置,多个文件用逗号分隔,这些属性配置文件在mvc框架初始化时进行加载国际化属性文件命名、配置、存储规范国际化配置Web应用目录中属性文件存储、配置、加载
5、可以独立加载存储在web应用目录下的属性配置文件,方法如下:注意:mvc的配置方法、独立加载方法,包括后面要介绍的的从classpath中直接加载属性配置文件时,属性文件名称都不能带国别标识和.properties后缀。需要指定两个参数,第一个参数就是国际化文件在web应用下的存储路径,第二个参数ServletContext对象,必须指定否则无法获取web应用绝对目录地址国际化属性文件命名、配置、存储规范国际化配置菜单国际化配置和加载菜单国际化包括:系统名称、系统logo图片、菜单标题、菜单描述、菜单鼠标事件图片,相应配置都在系统菜单配置文件中进行,我们以module.xml文件作为示例来说明
6、:菜单国际化语言范围配置:在module.xml的根元素system上进行配置,languages属性指定了菜单国际化支持的语言种类,多个用逗号分隔在sysmenu上指定messagesource属性,来指定菜单的一些全局国际化配置文件的地址,多个用逗号分隔,比如:当前位置的前缀配置,个人中心配置等等,多个系统可以共有一个配置文件,系统只加载一次在sysmenu的子元素description上指定i18n:+国别标识来设定系统标题的国际化设置国际化属性文件命名、配置、存储规范国际化配置菜单国际化配置和加载系统首页和系统logo的国际化配置,在publicitem上指定i18n:+国别标识来设定
7、首页标题的国际化设置,在publicitem中content元素上指定i18n:+国别标识来设定系统logo的国际化设置国际化属性文件命名、配置、存储规范国际化配置菜单国际化配置和加载系统模块(module)和菜单(item)标题,module和item的配置类似,以item为例进行说明:在item元素上指定i18n:+国别标识来设定菜单标题的国际化:国际化属性文件命名、配置、存储规范国际化配置菜单国际化文件配置和加载系统菜单(item)鼠标事件国际化配置,菜单鼠标事件包括click,over,up,out四个,在相应的xml元素上指定i18n:+国别标识来设定相应事件图片的国际化设置:说明:
8、菜单中原有的相关配置将被默认作为zh_CN的配置,因此zh_CN的国际化配置无需单独额外配置,比如publicitemname=首页 i18n:en_US=“Index” 中,name属性的值就是对于与zh_Cn的国际化配置,如果其他语言没有指定,那么默认输出中文值。国际化属性文件命名、配置、存储规范国际化配置Classpath国际化文件的配置和加载Classpath中国际化文件无需进行额外配置,可以直接通过国际化组件进行加载:说明:如果要加载多个配置文件,请用逗号分隔MessageSourcemessageSource=MessageSourceUtil.getMessageSource(o
9、rg/frameworkset/servlet/i18n/messages_module);国际化国别语言设置国际化组件可以从session,request请求头(浏览器设置),Cookie(目前未提供)中获取事先设置好的语言对象Locale,这里以session方式为例进行说明:首先要在bboss-mvc.xml设置sessionlocale对象解析插件并指定sessionlocalkey名称国际化国别语言设置在登录页进行语言选择和设置:国际化国别语言设置在登录页选择的语言设置到session中即可:国际化组件和标签平台和框架提供了一系列国际化组件和标签来简化系统国际化工作的开展,组件和标签
10、的使用也非常简单:Java组件:org.frameworkset.web.servlet.support.RequestContextUtilsorg.frameworkset.spi.support.MessageSourceorg.frameworkset.web.servlet.i18n.WebMessageSourceUtil/获取语言代码Stringlocal_request=RequestContextUtils.getRequestContextLocalName(request);/获取语言对象Localelocale=RequestContextUtils.getReques
11、tContextLocale(request);/加载classpath下的国际化配置文件MessageSourcemessageSource=WebMessageSourceUtil.getMessageSource(org/frameworkset/servlet/i18n/messages_module);/传入code和locale对象,获取对应语言的的值Stringmessage=messageSource.getMessage(pdp.module.personcenter,locale);Java组件使用方法国际化组件和标签平台和框架提供了一系列国际化组件和标签来简化系统国际化工
12、作的开展,组件和标签的使用也非常简单:Java组件:org.frameworkset.web.servlet.support.RequestContextUtilsorg.frameworkset.spi.support.MessageSourceorg.frameworkset.web.servlet.i18n.WebMessageSourceUtil/从web应用目录下加载国际化属性配置文件(两个以上文件用逗号分隔),获取MessageSource对象第一个参数代表所有的配置文件,第二个参数为ServletContext对象,必须指定否则无法获取web应用绝对目录地址MessageSour
13、cems=WebMessageSourceUtil.getMessageSource(/WEB-INF/messages_pdp,+/WEB-INF/messages_pdp_common,/WEB-INF/conf/appbom/messages_appbom,pageContext.getServletContext();Stringmessage=ms.getMessage(Trans.Log.TransformationIsToAllocateStep,newObjecta,b,Locale.SIMPLIFIED_CHINESE);属性为:Trans.Log.Transformatio
14、nIsToAllocateStep=转换大约分配了步骤0类型的1输出为:转换大约分配了步骤a类型的bJava组件使用方法-web应用目录下文件模式国际化组件和标签平台和框架提供了一系列国际化组件和标签来简化系统国际化工作的开展,组件和标签的使用也非常简单:标签组件local(在页面上输出国别代码),message(获取国际化信息),使用方法如下:前提:在jsp头部导入标签定义文件:输出相应的语言代码,例如:zh_CNprobe.jsp.wrongparams=转换大约分配了5个步骤输出属性probe.jsp.wrongparams对应的值:转换大约分配了5个步骤国际化组件和标签平台和框架提供了
15、一系列国际化组件和标签来简化系统国际化工作的开展,组件和标签的使用也非常简单:标签组件local(在页面上输出国别代码),message(获取国际化信息),使用方法如下:probe.jsp.wrongparams=转换大约分配了步骤0类型的1,2,3输出属性probe.jsp.wrongparams对应的值为:转换大约分配了步骤a类型的b,c,d输出属性probe.jsp.wrongparams对应的值为:转换大约分配了步骤a类型的b,c,d国际化组件和标签平台和框架提供了一系列国际化组件和标签来简化系统国际化工作的开展,组件和标签的使用也非常简单:标签组件Title增加titlecode属性
16、,标题国际化代码,如果代码在mvc国际化相关配置文件中不存在,则输出code。使用方法如下:/probe.jsp.wrongparams=主键名称国际化组件和标签平台和框架提供了一系列国际化组件和标签来简化系统国际化工作的开展,组件和标签的使用也非常简单:mvc容器国际化属性java获取方法public static String getI18nMessage(String code,Object args,String defaultMessage,HttpServletRequest request)Localelocale=RequestContextUtils.getRequestCo
17、ntextLocal(request);MessageSourcemessageSource=WebApplicationContextUtils.getWebApplicationContext();if(messageSource != null)return messageSource.getMessage(code, locale);/return messageSource.getMessage(code, defaultMessage, locale);/return messageSource.getMessage(code, args, locale);/return mess
18、ageSource.getMessage(code, args, defaultMessage, locale);elseif(defaultMessage != null)return defaultMessage;elsereturn code;国际化组件热加载机制配置国际化组件提供了简单实用的国际化属性文件热加载机制,可以方便地开启和关闭热加载机制。检测文件是否改动的时间间隔默认5秒,如果文件有改动国际化组件会重新加载被修改的文件,没有修改的文件不会重新加载。如果想屏蔽热加载机制,请修改bboss-aop.jar/aop.properties文件的选项#国际化属性文件变更检测时间间隔,单位为毫秒,默认为5秒间隔resourcefile.refresh_interval=5000若果0则启用热加载机制,=0则屏蔽热加载机制,开发环境请开启,生产环境请关闭。参考文档bboss国际化功能简介http:/yin-