文档章节

多语言

王静0716
 王静0716
发布于 2016/02/05 16:18
字数 408
阅读 22
收藏 0
<%
	String path = request.getContextPath(); 
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";	
	//String language = request.getLocale().toString();  浏览器语言
	String language = request.getSession().getAttribute("WW_TRANS_I18N_LOCALE").toString(); 选择的多语言
	String imagePathCc = basePath + "resource/theme/default/" +language + "/images/";
%>
<s:if test="#session.WW_TRANS_I18N_LOCALE.toString() == 'en_US'">
	<a href="javascript:changeLang('en_US')" style="color: #6d6e71;text-decoration: none;">English</a>
	</s:if>
	<s:else>
    <a href="javascript:changeLang('en_US')" style="color: #a9a9a9;text-decoration: underline;">English</a>
    </s:else>
    <s:if test="#session.WW_TRANS_I18N_LOCALE.toString()== 'zh_CN'">
    <a href="javascript:changeLang('zh_CN')" style="margin-left:30px;color: #6d6e71;text-decoration: none;"><s:text name='coocSimplifiedChinese' /></a>
    </s:if>
    <s:else>
	<a href="javascript:changeLang('zh_CN')" style="margin-left:30px;color: #a9a9a9;text-decoration: underline;"><s:text name='coocSimplifiedChinese' /></a>
	</s:else>
	<s:if test="#session.WW_TRANS_I18N_LOCALE.toString() == 'zh_TW'">
	<a href="javascript:changeLang('zh_TW')" style="margin-left:30px;color: #6d6e71;text-decoration: none;"><s:text name='coocTraditionalChinese' /></a>
	</s:if>
	<s:else>
	<a href="javascript:changeLang('zh_TW')" style="margin-left:30px;color: #a9a9a9;text-decoration: underline;"><s:text name='coocTraditionalChinese' /></a>
	</s:else>
function changeLang(lang) {
			$.ajax({
				async : true,
				cache : false,
				data:{"locale_language":lang},
				type:'POST',
				url: '<s:url action="lang!changeLanguage.so" namespace=""/>',
				success: function(json) {
					window.location.reload(true);
				}});
		}
<struts>
	<package name="comm" namespace="" extends="gloab-package">
		<action name="lang" class="com.wistron.wh.ets.cc.action.LangAction">
		</action>
	</package>
	
</struts>
@Controller
@Scope("prototype")
public class LangAction extends BaseAction {
	
	private static final long serialVersionUID = 1L;
	private static final String LANGUAGE = "language";// application中key
	private String locale_language;// 界面选择的语言
	public String getLocale_language() {
		return locale_language;
	}
	public void setLocale_language(String localeLanguage) {
		locale_language = localeLanguage;
	}
	public void changeLanguage() throws Exception {
		String lang[] = locale_language.split("_");
		Locale locale = new Locale(lang[0] , lang[1]);
		Map<String , Object> maps = ActionContext.getContext().getSession();
		maps.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale.toString());//把当前语种放入sesison中
		ServletActionContext.getRequest().getSession().setAttribute(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale);
		ActionContext.getContext().setLocale(locale);//设置struts上下文语种
		Map session = ActionContext.getContext().getSession();
		String userId = session.get("userId").toString();
		CoocWsUtils.updateUserLang(userId, locale_language);
		super.response("success");
	}

	// 写cookie
	public void writeLanguage() {
		if (locale_language == null) {
			locale_language = ServletActionContext.getContext().getLocale().toString();
		}
		// cookie 中没有语言 默认从application取
	    ServletActionContext.getContext().getSession()
				.put(LANGUAGE, locale_language);
		ActionContext.getContext().setLocale(LocaleUtils.toLocale(locale_language));
		ActionContext.getContext().getSession().put("WW_TRANS_I18N_LOCALE", LocaleUtils.toLocale(locale_language));

	}

	// 默认初始语言 或是 找用户计算机上的cookie信息
	public String getLanguage() {
		// cookie 中没有语言 默认从application取
		String language = ServletActionContext.getContext().getSession().get(LANGUAGE).toString();
		//ActionContext.getContext().getSession().put("WW_TRANS_I18N_LOCALE", LocaleUtils.toLocale(language)); 
		return language;
	}
}

en_US       zh_CN       zh_TW

message_en_US.properties   <s:text name="" />

© 著作权归作者所有

共有 人打赏支持
上一篇: ajax工作原理
下一篇: selectOne
王静0716
粉丝 30
博文 63
码字总数 27883
作品 0
深圳
程序员
私信 提问
纸壳CMS可视化建站系统搭建多语言网站

纸壳CMS已经从架构上支持多语言。但是多语言功能默认是没有开启的。您可以从设置中开启多语言,或者随时关闭它,您可以随时进行切换。 开启多语言 如果您没有在系统设置中看到多语言设置菜单...

ZKEASOFT
2018/09/11
0
0
ASP.NET Aries 高级开发教程:主题样式及多语言(标签化控制)

前言: 最新ASP.NET Aries升级到V5.2.0以上之后,之前的样式和多语言机制,有了重大的升级机制,这篇就简单介绍一下。 1、控制开关 在配置维护那里,新增了两个控制项: 2、如何添加主题 说明...

路过秋天
2018/09/19
0
0
RDIFramework.NET V2.9版本多语言的实现

RDIFramework.NET V2.9版本多语言的实现 现在是国际化时代,软件也不能落后。一个公司里很可能会有老外,也可能有台湾的朋友,他们用软件的习惯都不一样,若同样一个软件同时能适应多种语言文...

NET快速开发框架
2017/11/17
0
0
RDIFramework.NET V2.9版本多语言的实现

RDIFramework.NET V2.9版本多语言的实现   现在是国际化时代,软件也不能落后。一个公司里很可能会有老外,也可能有台湾的朋友,他们用软件的习惯都不一样,若同样一个软件同时能适应多种语...

yonghu86
2018/06/26
0
0
[Abp 源码分析]十三、多语言(本地化)处理

0.简介 如果你所开发的需要走向世界的话,那么肯定需要针对每一个用户进行不同的本地化处理,有可能你的客户在日本,需要使用日语作为显示文本,也有可能你的客户在美国,需要使用英语作为显...

myzony
2018/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

嵌入式应用选择合适的微控制器

为嵌入式应用选择微控制器有几个原因,即低成本,高集成度,增加可靠性,节省空间等。 准备所需硬件接口列表使用微控制器的基本硬件框图,准备一份微控制器需要支持的所有外设接口的列表。微...

linux-tao
43分钟前
4
0

中国龙-扬科
今天
2
0
使用apicloud开发移动端APP,IOS list页面滚动卡顿解决记录

给内容容器添加样式:-webkit-overflow-scrolling:touch; -webkit-overflow-scrolling:属性控制元素在移动设备上是否使用滚动回弹效果. auto:使用普通滚动, 当手指从触摸屏上移开,滚动会立即...

万建宁
今天
1
0
Akka消息传送可靠性 23

原文:https://doc.akka.io/docs/akka/2.5/general/message-delivery-reliability.html Akka可帮助您构建可靠的应用程序,这些应用程序在一台计算机中使用多个处理器核心或分布在计算机网络中...

woshixin
今天
3
0
composer安装

前言:随着开源的东西越来越多,一些好的代码我们是可以直接拿过来用的,github更是加快了这一节奏,在github上我们可以看到一些开源的项目、代码块、函数库、类结构等,我们可以直接Fork,然...

echojson
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部