国际化小结(更新中)

一、整体分为jsp国际化和js国际化

jsp国际化比较简单:

1、在jsp页面中主要运用了Struts2已经封装好的标签<s:text name="hello">

 

2、当然在你的项目中会有两份资源文件例如:message_en_US.properties   内含内容hello=Hello World

 

                                                              message_zh_CN.properties  内含内容hello=你好!

3、struts.xml文件中会有配置文件,指定资源文件message

  <constant name="struts.custom.i18n.resources" value="message"/>

4、备注,在jsp文件头部需要加入<%@taglib prefix="s" uri="/struts-tags"%>

 

 

js国际化比较麻烦,(因为是在项目完成后将它国际化)主要通过以下两种方法。(示例代码参见项目中BouseTable.jsp和BouseTable.js.jsp以及BouseAction.java)

 

方法1、在jsp文件中设计变量a,然后实现国际化,然后再把a传给js文件(缺点:jsp文件中含有中英文信息,没有写入配置文件中去,不好维护)

(1)jsp中的设置

Locale locale = (Locale) session.getAttribute("WW_TRANS_I18N_LOCALE");
String a = "";
if(locale.toString().equals("en_US")){
 a = "WithBourseCountry";
}else{
a="有交易所的国家";}
initTree('<%=a%>');

(2)js中接受

 

function initTree(a){
	。。。。。。。。。。。。。。。。。。
}

 

说明:a、WW_TRANS_I18N_LOCALE这个变量是在主页index选择语种时设置在session中一个变量,决定了语种。

               具体可以参考主页语种设置博客文章:

           b、WithBourse是资源文件message中的key

 

方法2、主要是看通过那个Action跳转到上面“方法1”中所述的jsp页面的,这样的话

(1)在该action添加代码,实现国际化

private String value;

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}



String v = I18nUtil.getStringValue("WithBourse");
		value = v;
		return SUCCESS;

 

备注: I18nUtil是一个工具类,附附件中

 

(2)在jsp添加

<%@taglib prefix="s" uri="/struts-tags"%>

initTree('<s:property value="value"/>');

 (3)js中接受

 

function initTree(a){
	。。。。。。。。。。。。。。。。。。
}

 备注:方法2较方法1可以把大量的中英文配置放入message资源文件中,容易维护。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值