您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    Web运用顺序中Resource Bundle技术概述
    时间:2017-09-21 12:48 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    世界经济日益全球化的同时,一个运用顺序需求在全球范围内运用势在必然。传统的顺序设计办法将可翻译信息如菜单按钮的标签,提示信息,协助文档等文字信息硬编码在顺序代码中,不能很好的顺应全球化开展,顺序的扩展性差,维护成本高。一个能支持全球化的运用顺序,必须完成单一可执行的顺序,静态地运用资源(Single Source Single Executable),图1 是两种模型的比照图。

    图 1. 传统的顺序模型和支持全球化顺序模型

    Web运用顺序中Resource Bundle技术概述

    Web运用顺序中Resource Bundle技术概述

    关于一个能支持全球化的运用顺序来说:

    一方面需求思索的是用户的言语环境(我们称作 Language Locale):这里主要就是指翻译,在不同的国度用他们本人的言语正确运作软件,让客户觉得这个产品是为他们而设计的;

    另一方面就是用户的文明环境(我们称作 Culture Locale):主要处置的是多元文明的支持,包括货币、日历、时间、日期、排序、界面方向性(Bi-directional) 等契合各个国度本人习气的显示方式。

    图2 概述了如何使得一个运用顺序(C/S 或许 B/S)支持全球化和本地化。

    图 2. 全球化运用顺序

    Web运用顺序中Resource Bundle技术概述

    Web运用顺序中Resource Bundle技术概述

    本文结合项目实际,总结了 web 运用顺序中 Java,JSP,Dojo 和 HTML 四种不同言语是如何管理 Resource Bundle 的,完成单一可执行顺序静态读取资源文件,从而支持全球化和本地化。主要从三个方面来阐述:资源文件存储和命名规则;用户言语区域信息的读取;如何取得对应言语的资源文件中的键值。

    Java 顺序中的 Resource Bundle 管理

    ResourceBundle 是一个机制,主要用来依据用户的言语环境展现不同的界面文字给用户,让用户觉得这个运用顺序为我而定制。

    但是 Java 中的 ResourceBundle 是一个类,包含在标准的 Java 发行版中。图3总结了 Java 顺序中 ResourceBundle 的管理机制。

    图 3. Java 顺序 Resource Bundle 管理流程

    Web运用顺序中Resource Bundle技术概述

    Web运用顺序中Resource Bundle技术概述

    Java 顺序中资源文件的存储和命名

    在一个多模块的 Java 运用顺序中,普通每个模块都有本人独立的资源文件(也叫 Resource Bundles),Resource Bundle 普通存储在对应模块的 src/resources/bundles/java/ 目录下面。通常的命名规则是:模块名_言语_国度 .properties({moduleName}_{language}_{country}.properties)。对应资源文件中的每一个 key,普通都是小写字母扫尾,用下划线表示这个 key 在顺序中的层级结构,并且按照字母顺序排序,便于管理和查找,如清单1所示的例子。

    清单 1. Java properties 文件示例

    英文Properties 文件: 

        helloKey=Hello! 

        goodMorningKey=Good Morning! 

        goodEveningKey=Good Evening! 

         

    日语Properties 文件: 

        helloKey=\u3053\u3093\u306b\u3061\u306f! 

        goodMorningKey=\u304a\u306f\u3088\u3046! 

        goodEveningKey=\u3053\u3093\u3070\u3093\u306f! 

    Java 顺序对资源文件的回滚机制:当对应翻译的资源文件不存在时,将运用"默许"的资源文件(通常为英文),图 4 是 Java 资源文件的组织方式。

    图 4. Java 资源文件组织方式

    Web运用顺序中Resource Bundle技术概述

    Java 中用户言语环境(Locale)和资源文件的读取

    依据用户运用的区域信息来决议从哪个 Resource Bundle 外面读取对应的 key 值。Java 言语经过 java.util.Locale 类来表示区域,一个 Locale 实例就代表了一个特定的区域。在实践的项目中,通常将读取资源文件包装成一个类,方便后续代码的重用和管理,如清单 2 的示例所示。

    清单 2. Java 中 ResourceBundleService 运用

    public class LocalizedPropertyResources extends MessageResources {  

    private static final String MODULE_NAME = "resourceBundle.module.name" 

    public String getProperty(String key, Object... parameters) {  

    Locale locale = getUserLocale();  

    String value = getProperty(key, locale, parameters);  

    Return value;  

     

    (责任编辑:admin)