文档章节

多语言

王静0716
 王静0716
发布于 2016/02/05 16:18
字数 408
阅读 20
收藏 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="" />

© 著作权归作者所有

共有 人打赏支持
王静0716
粉丝 30
博文 63
码字总数 27883
作品 0
深圳
程序员
纸壳CMS可视化建站系统搭建多语言网站

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

ZKEASOFT
09/11
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
06/26
0
0
[Abp 源码分析]十三、多语言(本地化)处理

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

myzony
08/18
0
0
路过秋天版博客 V2.0 测试版发布 公测一周[支持多语言、多用户、多数据库、目录级URL]

路过秋天版博客发布历史回顾: 1:2010年11月08日---支持多语言、多用户、多数据库、目录级URL之路过秋天版博客发布[绝对有杀伤力的博客] 2:2010年11月10日---基础却容易被忽略的那点事--w...

晨曦之光
2012/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
34
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部