多语言
多语言
王静0716 发表于2年前
多语言
  • 发表于 2年前
  • 阅读 18
  • 收藏 0
  • 点赞 1
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

<%
	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="" />

共有 人打赏支持
粉丝 12
博文 39
码字总数 15808
×
王静0716
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: