关于Struts2-I18n国际化
一、什么是I18N?
:人们常把I18N作为“国际化”的简称,其来源是英文单词 internationalization的首末字符i和n。18为中间的字符数。
二、为什么要是用国际化?
:互联网是一个多元文化的集结地,它让信息变的全球化。但是每一个国家的语言却是不同的,那么如何使得在某个国家使用某种语言的版面了?那就是使用I18N.
三、Java中对I18N的支持。
:我们知道Java在底层就提供了国家化的操作,在JDK帮助文档中我们可以找到有关于使用I18N的几个重要的类
1.Locale 获取使用场地等信息
2.ResourceBundle 获取资源文件包
3.MessageFormat 进行参数的设定
public class TestI18n {
/*
* JDK 自带的I18N功能的实现
* */
public static void main(String[] args) {
Locale.setDefault(Locale.US);
/*
Locale [] locales= Locale.getAvailableLocales();
//获取已经安装的语言文件信息
for (Locale locale : locales) {System.out.println(locale.getDisplayCountry()+" :
"+locale.getCountry());
//获取国家 和 国家名的缩写 如: 中国:CN 美国:US
}
System.out.println("--------------------------------------------------------");
for (Locale locale : locales) {
System.out.println(locale.getDisplayLanguage()+" : "+locale.getLanguage());
//获取语言 和 语言缩写 如:中文:zn 英文:en
}
*/
ResourceBundle bundle = ResourceBundle.getBundle("message", Locale.CHINA);
//资源文件对象 getBundle方法的参数为 资源文件basename 和 指定的语言表示(也就是使用什么语言)
//message 为配置文件的前缀 这里有两种语言文件:message_zh_CN.properties, message_en_US.properties
String value=bundle.getString("hello");
//hello为配置文件中的key
/*
hello=hello={0}\u4E2D\u56FD\u4F60\u597D\u5440!
*/
String format = MessageFormat.format(value, new String[]{"北京"});
//使用MessageFormat的format方法进行参数的设定value为需要设定的
//数据new String[]{"北京"} 则是设定的参数
String values="我是{0},来自{1},很高兴认识你{2}";
String strs=MessageFormat.format(values, new String []{"天蓝","地球","外星人"});
System.out.println(strs);
System.out.println(format);
}
}
四、Struts2中的国际化。
:首先我们要知道的是,Struts2的国际化功能是基于Java中的上述操作.我们主要需要了解的是如何在不同的阶层设
置I18N的使用。
1.关于I18N的资源文件的创建
a):I18N的资源文件的名称规范为:BaseName + (_language) +(_country)+(.properties)
BaseName:可以随便起
language:对应设定的语言
country: 对应语言的国家 如:
message_zh_CN.properties (中文资源包)
message_en_US.properties(英文资源包)
b):资源文件的创建有四种方式。
1.全局的资源文件
:创建在Src的根目录下 资源文件的basename 由struts.xml文件中的<Constant
name="struts.custom.i18n.resources" value="message"> value值指定
如:
message_zh_CN.properties (中文资源包)
message_en_US.properties(英文资源包)
2.包级别的资源文件
:创建该包目录下资源文件的basename 为固定写法
如:
package_zh_CN.properties (中文资源包)
package_en_US.properties(英文资源包)
3.类级别的资源文件
:创建在包目录下资源文件的basename为类的名称
如:
RigesterAction_zh_CN.properties(中文资源包)
RigesterAction_en_US.properties(英文资源包)
4.临时的资源文件
:创建在Src的根目录下basename 主要是给<s:i18n>标签提供数据信息的
如:
temp_zh_CN.properties(中文资源包)
temp_en_US.properties(英文资源包)
c):关于资源文件的优先级
文件的优先级是有小及大的:程序为先访问 类级别的资源包 -> 包级别的资源包 -> 全局的资源文件包
d):关于取出资源文件中的信息
1.界面上的取值和设定参数的方法
:使用struts2的标签库
第一种:<S:text name="指定资源文件中的key"/>
第二中:<s:i18n name="指定资源文件的basename名称">
<s:text name="指定资源文件中的key">
<s:param>对应资源文件的{0}</s:param>
<s:param>对应资源文件的{1}</s:param>//依次类推
</s:text>
</s:i18n>
2.Action-validation.xml中的取值的方法:
<message key="指定资源文件中的key"></message>
3.Action中的取值和传入参数的方法
调用ActionSupport的getTest()方法获取信息
this.getTest("指定资源文件中的key","对应参数的集合或数组");
如:
资源文件的信息为:hello=wellcome to ,{1}
this.getTest("hello",new String []{"天蓝"});
结果为:wellcome to 天蓝
分享到:
相关推荐
Struts2-i18n是Apache Struts框架中用于实现应用程序国际化的功能模块。这个例子主要是为了帮助初学者理解如何在Struts2框架下进行国际化设置。以下将详细讲解Struts2-i18n的基本概念、实现步骤以及相关知识点。 **...
Struts2-i18n是一个专门针对Struts2框架实现的国际化(i18n)解决方案。在Web开发中,国际化是一项重要的功能,它允许应用为不同地区的用户提供本地化的界面和内容。Struts2作为流行的Java Web MVC框架,提供了一套...
在这个“Struts2 I18N国际化最简单例子”中,我们将探讨如何在Struts2框架下实现国际化功能。 1. **Struts2的I18N支持** Struts2提供了内置的支持来处理多语言环境。它通过资源包(Resource Bundle)来管理不同的...
这个"struts2 i18n国际化实例"应该包含了实现上述所有步骤的具体代码示例,对于初学者来说,是一个很好的学习起点,可以帮助理解Struts2如何处理国际化,以及如何在实际项目中应用这些概念。同时,遇到问题可以与...
5. **国际化(i18n)**:如何为应用添加多语言支持。 6. **异常处理**:演示了如何配置和处理应用程序中的异常。 7. **Tiles布局**:使用Tiles插件来组织和定义页面模板。 8. **Ajax支持**:展示了Struts2与...
这个"struts2中的国际化(i18n)项目实例"是为了帮助初学者理解如何在Struts2中实现在MyEclipse集成开发环境中配置和使用国际化功能。 首先,我们要知道i18n代表的是“国际化”,这里的18个字符代表了英文单词...
国际化(I18N)是软件开发中的一个重要方面,它允许应用程序根据用户的地域设置显示不同的语言和格式。在Java和Struts2中实现国际化,可以为全球用户提供更友好的用户体验。 首先,我们需要理解Java的国际化机制。...
在Struts2中,i18n(国际化)是一种重要的功能,它允许开发者创建能够支持多种语言的应用程序,以满足全球用户的需要。在这个主题"struts2_i18n"中,我们将深入探讨Struts2框架中的国际化实现机制。 首先,了解i18n...
Struts I18N 国际化是一种技术,它允许应用程序根据用户所在的地理位置或首选语言环境来显示相应的本地化内容。在Struts框架中,I18N(Internationalization)是一个关键特性,使得开发者能够轻松地创建支持多语言的...
Struts2是一个非常流行的Java Web框架,用于构建可维护、可扩展且结构良好的应用程序。...这个提供的`i18n`压缩包文件可能包含了示例的资源包和相关的配置文件,可以帮助初学者理解并实践Struts2的国际化实现。
在Struts1中,I18N(国际化)是实现多语言支持的关键特性,它允许开发者创建能够适应不同地区和语言的Web应用。下面我们将详细探讨Struts1的I18N实现及其相关知识点。 首先,国际化(I18N)是软件设计的一种方法,...
《struts2_i18n国际化学习.docx》文档可能包含更详细的操作步骤、示例代码以及常见问题解答,建议仔细阅读以加深理解。 总结,Struts2的i18n功能使得开发多语言应用变得简单,只需维护好资源文件,就能为全球用户...
在Struts2中,国际化(i18n)是处理多语言环境的重要特性,使得同一个应用可以适应不同地区用户的需求。本篇文章将深入探讨如何在Struts2中实现简单语言包的国际化。 首先,我们需要了解什么是i18n。这里的数字"18...
总之,"struts2i18n"演示了如何在Struts2框架下进行国际化,这对于开发面向全球用户的Web应用至关重要。通过学习和实践这个示例,开发者可以掌握Struts2的国际化机制,提高其Web应用的全球化适应性。
10. `s:i18n`: 国际化标签,支持多语言环境。 三、Struts2标签API Struts2的标签API文档详细列出了每个标签的用法、属性、示例以及它们如何与Action上下文交互。通过阅读API,开发者可以了解每个标签的完整功能,...
5. **国际化(i18n)与本地化(l10n)**:Struts2支持多语言环境,开发者可以通过简单的配置实现应用的国际化和本地化。 6. **插件体系**:Struts2有一个强大的插件系统,可以轻松地扩展框架功能,如Spring集成、...
Struts2的国际化(i18n)是Web应用开发中必不可少的一个特性,它允许应用程序根据用户的语言和地区提供相应的本地化内容。Struts2框架提供了强大的国际化支持,包括页面、Action和XML配置文件的国际化。 首先,为了...
8. **国际化支持**:`struts2-i18n-plugin`提供了对多语言环境的支持,使得应用能够根据用户设置显示不同语言的内容。 学习和使用Struts2-lib,开发者需要了解MVC架构,掌握Action、Result、Interceptor等概念,...
8. **国际化(i18n)**:Struts2提供对多语言的支持,可以在资源文件中定义不同语言的文本,方便应用的国际化。 9. **异常处理**:通过全局异常处理器,可以统一处理应用中的异常,提高代码的可维护性。 通过深入...
6. **国际化与本地化**:struts2-i18n-plugin.jar支持多语言环境,提供国际化和本地化的功能。 7. **测试支持**:struts2-test-plugin.jar为单元测试和集成测试提供了便利。 8. **其他**:还有一些其他的库,如...