文档章节

多语言

王静0716
 王静0716
发布于 2016/02/05 16:18
字数 408
阅读 20
收藏 0
点赞 1
评论 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
粉丝 29
博文 63
码字总数 27883
作品 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
路过秋天版博客 V2.0 测试版发布 公测一周[支持多语言、多用户、多数据库、目录级URL]

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

晨曦之光
2012/03/09
0
0
细谈PHP多语种建站

公司产品网站不可能局限于中文,因为你的网站注册客户也许是美国人,韩国人,西班牙人等,你不得不面临网站多语种解决问题。 其实多语言网站很多,如谷歌网站,Facebook,code.org等 基于PHP...

crossmix
2015/12/28
34
2
互联网公司的RPC框架如何选择?

主流RPC框架 RPC框架比较 语言 协议 服务治理 社区 机构 Hessian 多语言 hessian – 不活跃 Caucho Thrift 多语言 thrift – 活跃 Apache Finagle Java/Scala 多协议 支持 活跃 Twitter TCha...

王爵nice
2016/02/03
10.3K
17
Winform程序做多余语言翻译有什么快速方法吗?

winform 开发做多语言翻译,使用IDE在FORM属性编辑器里切换语言设置,然后修改多语言字符串的方式,效率太低了。 而且如果代码里使用了字符串还要自己做一套翻译系统,就没有一套完美的效率高...

pj220
2017/10/25
7
0
秋色园QBlog技术原理解析:独创的多语言翻译机制(九)

文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色园QBl...

晨曦之光
2012/03/09
0
0
纠正对“用正确的工具干活儿”这句话的误解——编程语言不是工具

让我以一个免责声明来开始这篇文章:我绝对的认可懂得多种编程语言的价值,也认为“用正确的工具干活儿”是个好思想。但在编程工作中,人们对这个概念有个误解,我认为需要在这里指出一下。但...

oschina
2013/04/11
3.7K
23
osCommerce 数据库结构详解

osCommerce 外贸高级版(含osCommerce 2.3.x)数据库结构, 数据表详情介绍. 商品分类 categories 商品分类 categories_description 商品分类描述,多语言 manufacturers 品牌厂商 manufact...

银月光海
2015/01/17
0
0
Storm官方文档翻译之创建Storm项目

本文将讲述如何在开发环境创建一个Storm项目,下面是步骤: 1、将Storm的相关jar包添加到classpath中; 2、如果使用多语言开发,也要将多语言目录添加到classpath; 点击storm-starter来了解如...

am_danger
2016/01/15
296
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
9分钟前
3
0
ARTS说明

湾曲日报,作者每天阅读5篇优质英文文章,从2014/08/06开始,到今天也1216期了. 阮一峰的每周分享,从2018/04/20开始,每周5分享一周作者认为值得分享的东西,现在最新是14期. 关于ARTS Algorithm ...

yysue
11分钟前
0
0
sql优化原则

批量查询/更新/获得表结构 1.sp_help table_name;-sqlserver==desc table_name-mysql 如: sp_help Student; sql优化: 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引...

xd03122049
19分钟前
0
0
python爬虫日志(6)小小实践

经过3天的学习,现在对简单的网页基本可以爬取想爬取的信息了,但还无法应对网站一些复杂的反爬虫措施。 今天利用目前为止所学的知识,试着爬取了煎蛋网几页图片并下载到本地。 #首先还是先导...

茫羽行
25分钟前
0
0
js中用oop思想封装轮播

用户可以自己设置:1、速度speed:fast,normal,slow 2、是否自动轮播:true,false 3、选择器(当然可以根据需求,增加,目前先封的这三个)仅供参考 觉得oop面向对象的思想比较有意思,前端...

琴妹
25分钟前
0
0
使用fastjson将json格式的数据转化为对象

1. 导入fastjson的jar包 <!-- 9.fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> 2. 常用几种类型的......

Lucky_Me
27分钟前
0
0
JDK11的ZGC小试牛刀

序 本文主要试一下JDK11的ZGC ZGC ZGC全称是Z Garbage Collector,是一款可伸缩(scalable)的低延迟(low latency garbage)、并发(concurrent)垃圾回收器,旨在实现以下几个目标: 停顿时间不超...

go4it
31分钟前
0
0
电信ss/ssr速度慢 电信国际出口速度慢 被QoS限速

很多人跟我反应,同一条线路,电信用户的国际出口速度很慢,而移动/联通用户却还不错,可能移动/联通可以流畅看1080P,而电信卡的连国外网页都打不开。明明电信的国际出口宽带是三家中最高的...

flyzy2005
36分钟前
0
0
java中equals,hashcode和==的区别

1、== java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型 byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.引用类型...

小海bug
58分钟前
0
0
Win10专业版安装GIT后使用Git Bash闪退解决办法

百度后把过程和最终解决办法记录下来: 百度首先出来的解决办法如下: 来自:https://segmentfault.com/q/1010000012722511?sort=created 重启电脑 重新安装 安装到C盘 尝试网上的教程 \Git...

特拉仔
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部