国际化
简介:
国际化即internationalization简称i18n。我们开发出来的项目都需要根据语言的不同而发生变化,所以就要通过国际化来实现。
类似的IE中就有语言的设置:【IE——>工具——>Internet选项——>语言】就可以对语言进行修改、添加的操作
配置文件的创建:
在不同的范围内创建配置文件是有不同的命名规范的:
命名规范:*+language_country.properties
全局范围:project\WebRoot\WEB-INF\classes下
basename_language_country.properties
包范围:同包下及子包
package_language_country,properties(此处为固定写法)
类范围:在类的当前包内使用
actionName_language_country.properties
struts-constant.xml中的配置:
<!-- 国际化资源文件的基本名称 在包下的时候value值需要加上包名-->
<constant name="struts.custom.i18n.resources" value="basename"/>
jsp中获取:
<!-- 加上struts的标签库 --> <%@ taglib uri="/struts-tags" prefix="s"%>
1、直接使用
<s:text name="name"/>
2、用<s:>标签中key获取
<s:……key="properties_var_name">
3、带有通配符的
资源文件中:properties_var_name = 随便{0}写点{1}什么
<s:text name="properties_var_name">
<s:param>通配符赋值</s:param>
<s:param>下一个赋值</s:param>
</s:text>
4、访问固定包下资源文件中属性的值
<s:i18n name="package.name"> <s:text name="properties_var_name"> <s:param>通配符赋值</s:param> <s:param>下一个赋值</s:param> </s:text> </s:i18n>
action中获取:
直接使用getText()方法例:System.out.println(getText("properties_var_name"));
带有通配符的
System.out.println(getText("properties_var_name"),args[]);
args[]是为通配符赋值,因为可能有多个所以使用数组或列表为其赋值