`
ysq0813
  • 浏览: 1738 次
社区版块
存档分类
最新评论

Struts2 i18n 全局国际化

 
阅读更多

          随着全球经济的一体化,软件开发者应该开发出支持多国语言、国际化的Web应用。使开发出的软件适合于更多国家用户使用,对于Web应用来说,同样的页面在不同的语言环境下需要显示不同的效果。也就是说,一个Web应用程序在运行时能够根据客户端请求所来自的国家和语言显示不同的用户界面。这样 ,当需要在应用程序中添加对一种新的语言的支持时,无需修改应用程序的代码。

        Struts2 i18n对Web应用的国际化提供了很好的支持,Struts2中默认支持i18n国际化的实现,其底层是通过Java基于Locale和ResourceBundle实现国际化。

   Struts2中实现国际化的步骤:

       一、 建立一个包含Struts2的Web应用 二、 编写国际化的资源文件 根据以下的规范,新建资源文件,资源文件命名是要有规范的:文件名_语言代码_国家区域代码.properties 国际化配置文件的三种配置方式和配置文件的命名规范: 

       类级别的国际化(Class) 类级别的国际化配置文件命名规范:ClassName_语言代码_国家区域代码.properties(如:LoginAction_en_US.properties)

       类级别的资源文件须保存在于类相同的目录路径下,且必须用类名作为文件名。 

       包级别的国际化(Package) 包级别的国际化配置文件命名规范:package_语言代码_国家区域代码.properties(如:package_zh_TW.properties)

       包级别的资源文件必须保存在包目录路径下,且必须用package作为文件名。 

       应用级别的国际化(Application) 应用级别的国家化配置文件命名规范:FileName_语言代码_国家区域代码.properties(如:golbal_zh_CN.properties)

      应用级别的国际化文件名可随意,没有强制规定,对于保存路径同样没有强制性规定,一般我们将其保存在应用的source根目录下。 

      说明:在Struts2中,类级别国际化>包级别国际化>应用级别国际化;如我们在系统中同时使用了三种国际化形式,Struts2会从类级别的国际化资源文件逐层向上查找

  三、 配置Struts.xml文件 Struts2中默认支持i18n国际化,对于类级别和包级别的国际化,不需要再单独配置,只需资源文件命名规范和文件的保存路径完全正确即可;而对于应用级别的国际化,需要在Struts.xml中单独配置,指明Struts2在加载国国际化文件的路径。

     如在系统中应用级别的国际化文件名为:global_en_US.properites,且在系统中保存在source根目录下,其在Struts.xml中的配置如下: 其中value的值即为配置文件的文件名。 如果应用级别的国际化资源文件保存在其他位置,则需要明确指定资源文件的保存路径, 如上的配置表示以global为文件名的应用级别的资源文件保存在cn/gocom/properties目录下

      四、 编写资源文件 资源文件的编写和普通的properties文件编写完全一样,类似于“键-值”对的方式编写 例:

Welcome=世界你好!

Welcom=Hello World!

注意:等号前后不要有空格

      五、 完成上面4步以后,整个应用国际化环境就全部搭建好了。 而对于整个系统来讲,我们希望的效果是在一处设置好语言后,接下来整个系统的应用浏览都是使用这一语言环境。

Struts2在实现国际化时,需要设置浏览器使用的区域编码,同时拦截器需要从Session中取出WW_TRANS_I18N_LOCALE的值作为整个应用的语言环境。

在系统初始化时,在Actin中做以下设置:

        private Locale current; ActionContext.getContext().setLocale(current);

       ActionContext.getContext().getSession().put("WW_TRANS_I18N_LOCALE",current);

       根据如上设置后,在整个系统浏览中,都将使用同一语言环境。

原理及思路

       国际化是设计容易适应不同区域要求的一种方式。它要求从产品中抽离出所有与语言、国家/地区和文化习惯等相关的元素。国际化的应用程序在功能和代码设计上兼顾了在不同地域环境运行的需要,其目的之一也是为了简化不同本地版本的开发。 软件开发应采用国际化设计思想,应用程序在本地化之前必须首先国际化。应用程序国际化的目标是编写在任何受支持的区域设置中都同样能正常运行,且外观本地化的代码。这样的软件将来很容易本地化,软件缺陷也将降至最低。在国际化的软件开发中,文本信息通常采用Unicode编码保存。 国际化程序中,对消息文本也应该进行本地化处理,此时应该把消息文本保存到资源包中,以提供对应于不同Locale的版本,其实现方式与保存普通文本的方式是相同的。 在国际化的应用程序中,通常以J2SE标准类java.util.ResourceBundle的形式来保存与运行环境相关的资源,如消息文本,消息等等,每一个资源包对应一种用户Locale。

           资源包采用统一的命名规则,其格式为:文件名_语言代码_国家/地区代码.properties,其保存的字符串信息按“键-值”对方式排列,每行保存一条。 在使用时,通过J2SE的ResourceBundle类处理需要国际化的资源,处理的方式与处理普通的properties文件相似,加载相应语言环境的资源文件(.properties),通过getString(“XX”)方法获取到资源文件中“键”所对应的“值”。

如下:

ResourceBundle rb = ResourceBundle.getBundle("global", new Locale("zh", "TW"));

String str = rb.getString("main.welcom");

System.out.println(str);

      这样就能够获取到用台湾地区字体编码保存的properties资源文件中“main.welcom”所对应的值。在实际运用中,可在应用程序初始化时,一次加载完成显示界面所需要的资源,并放入在一个集合中,在需要使用的地方通过“键”从集合中取出对应的“值”,使应用程序在调用时响应更快。 如下图:

 

  • 大小: 31 KB
  • 大小: 41.7 KB
  • 大小: 39.7 KB
分享到:
评论

相关推荐

    struts2国际化_i18n

    Struts2是一个非常流行的Java Web框架,用于构建可维护、可扩展且结构良好的应用程序。...这个提供的`i18n`压缩包文件可能包含了示例的资源包和相关的配置文件,可以帮助初学者理解并实践Struts2的国际化实现。

    Struts1 和 Struts 2 国际化全局资源

    Struts1 和 Struts 2 是两种非常流行的Java Web开发框架,它们都提供了对国际化(i18n)的支持,使得应用能够根据用户的语言和地区显示相应的本地化内容。国际化是软件设计的一个重要方面,它允许应用程序在全球范围...

    Struts2的国际化(i18n)

    Struts2的国际化(i18n)是框架提供的一个关键特性,使得应用程序能够支持多语言环境,从而满足全球用户的需求。Struts2的i18n机制基于Java语言的国际化概念,而Java本身是基于Unicode编码标准的,这确保了支持世界上...

    struts2国际化 标签 页面 处理类

    - Struts2还提供了`s:i18n`标签,可以指定basename来查找特定的资源文件,如 `<s:i18n name="messagefile">...</s:i18n>`。这将从`messagefile_XX_XX.properties`文件中查找键。 在Action类中处理国际化: - `...

    struts2框架国际化

    国际化(i18n)是Struts2的一个重要特性,使得应用能够支持多种语言环境,以满足全球用户的语言需求。以下是对Struts2框架国际化实现的详细讲解。 1. **国际化的基本概念** 国际化(Internationalization,简称i18...

    Struts2 使用 Struts2 实现国际化

    在Struts2的配置文件`struts.xml`中,我们需要添加一个全局结果类型(`<global-results>`),用于处理国际化请求。例如: ```xml <package name="default" extends="struts-default"> ...

    小知识点i18n,关于国际化处理

    国际化(i18n)是软件开发中的一个重要概念,它指的是使软件能够适应不同语言和地区的能力。"i18n"这个名字来源于"internationalization"这个单词,其中"i"和"n"之间有18个字母。这个术语通常与本地化(l10n)一起使用,...

    struts1.0,struts2.0国际化

    1. **配置国际化**: 在`struts.xml`配置文件中,配置全局结果类型`i18n`,并指定资源文件的位置: ```xml <result-type name="i18n" class="org.apache.struts2.views.properties.I18nResult" /> ``` 2. **...

    struts2国际化测试

    在Struts2的配置文件`struts.xml`中,我们需要定义一个全局结果类型`i18n`,这样当用户请求改变语言时,框架知道如何处理。以下是一个示例配置: ```xml <package name="default" namespace="/" extends="struts-...

    基于struts2的国际化

    2. **配置Struts2的国际化**:在Struts2的配置文件(struts.xml或struts.properties)中,我们需要添加一个全局常量,指定资源文件的基路径和前缀。 ```xml <constant name="struts.i18n.encoding" value="UTF-8"/>...

    struts1.2 国际化

    在软件开发过程中,为了满足不同地域和语言环境下的用户需求,软件国际化(Internationalization, 简称 I18N)和本地化(Localization, 简称 L10N)成为了一项重要的技术挑战。Struts 1.2 框架作为 Java Web 开发的...

    STRUTS2国际化

    Struts2的国际化功能,简称i18n,允许应用程序根据用户的语言和地区提供相应的界面和信息,无需修改核心代码。这一特性使得软件更具有全球化的适应性,满足不同文化和语言背景的用户需求。 **5.1 Struts2国际化原理...

    Struts2的国际化

    Struts2框架支持多语言环境,即所谓的国际化(Internationalization,简称i18n)。与Struts1相似,Struts2同样通过资源文件来实现这一功能,但其机制更加灵活与强大。 在Struts1中,开发者需要在类路径下创建`...

    struts2语言国际化

    Struts2语言国际化是开发多语种Web应用的关键技术,它允许用户根据其浏览器设置或用户选择的语言来显示相应的界面内容。以下是对Struts2语言国际化配置和使用的详细讲解。 一、准备工作 在开始之前,确保你的项目...

    Struts2国际化 录象演示

    3. 配置Struts2:在struts.xml配置文件中,设置全局结果类型`i18n`,这样Struts2就知道如何处理国际化请求。添加如下代码: ```xml <package name="default" namespace="/" extends="struts-default"> ...

    struts2实现自主选择页面语言

    在“struts2实现自主选择页面语言”这个项目中,我们主要探讨的是如何利用Struts2的国际化(i18n)功能来支持多语言环境,使用户可以根据自己的偏好选择页面显示的语言。 首先,让我们了解一下什么是国际化(i18n)。...

    Struts2 Struts2 超好的Struts2 pdf 文档

    10. **国际化(i18n)**:Struts2支持多语言环境,通过资源包(Properties文件)来实现不同语言的文本显示。 通过阅读这份“超好的Struts2 pdf 文档”,开发者不仅可以掌握Struts2的基本使用,还能深入理解其设计...

    struts2.0的简单事例上传、下载、常用标签、i18n

    4. **i18n(国际化)**:Struts2支持多语言环境,通过资源包(Properties文件)来实现。创建不同语言的资源文件,如`message_en.properties`(英文)和`message_zh_CN.properties`(简体中文)。在`struts....

    畅所欲言struts2的国际化

    国际化通常被简称为i18n,因为“Internationalization”这个词中,从'i'到'n'有18个字母。Struts2提供了多种方式实现国际化,主要涉及到JSP页面、Action类以及校验框架的XML配置。 1. **JSP页面的国际化**: - **...

Global site tag (gtag.js) - Google Analytics