jquery結(jié)合html實(shí)現(xiàn)中英文頁(yè)面切換
目的:前端(只采用thymeleaf模板+jquery) 實(shí)現(xiàn)國(guó)際化
由:前端沒(méi)有采用流行的vue.js angular 等框架,純html不可以引用js中定義的常量
采用jquery賦值(維護(hù)2個(gè)模板(中,英)界面) 直接out
方案:采用https://github.com/coderifous/jquery-localize/ 一個(gè)本地化插件
a jQuery plugin that makes it easy to internationalize your web site
步驟:
1 html
<!DOCTYPE>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Language</title>
<!-- 引用三個(gè)js文件 language_cookie.js實(shí)現(xiàn)記憶功能 下一次用戶刷新界面之后 記得之前用戶使用了那個(gè)語(yǔ)種 -->
<script src="jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="jquery.localize.js" type="text/javascript" charset="utf-8"></script>
<script src="language_cookie.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="top_lan">
<select id="ddlSomoveLanguage" onchange="chgLang();">
<option value="">LAGUAGE</option>
<option value="ja">日本</option>
<option value="en">ENGLISH</option>
</select>
</div>
<div id="prod_navright">
<ul> <!-- data-localize="hpt.management" 固定寫(xiě)法 對(duì)應(yīng)語(yǔ)言包文件中的key -->
<li><a data-localize="hpt.management" href="hospitality_management_ja.html" >MANAGEMENT</a></li>
<li><a data-localize="hpt.support" href="hospitality_support_ja.html">SUPPORT</a></li>
<li><a data-localize="hpt.tutorial" href="hospitality_tutorial_ja.html">TUTORIAL</a></li>
<li><a data-localize="hpt.features" href="hospitality_features_ja.html">FEATURES</a></li>
</ul>
</div>
</body>
</html>
2 語(yǔ)言包文件
text-en.json
{
"hpt":{
"features": "FEATURES",
"tutorial": "TUTORIAL",
"support": "SUPPORT",
"management": "MANAGEMENT"
}
}
text-ja.json
·······
3 language_cookie.js 需要在服務(wù)器上執(zhí)行 本機(jī)執(zhí)行無(wú)法獲取需要的json文件 主要的代碼 標(biāo)記處的代碼底層可能使用的是xmlHttpRequest實(shí)現(xiàn)獲取.json語(yǔ)言包文件
var name = "somoveLanguage";
function chgLang() {
var value = $("#ddlSomoveLanguage").children('option:selected').val();
SetCookie(name, value);
console.log("come in chgLang" + name + value);
location.reload();
}
function SetCookie(name, value) {
var Days = 30; //此 cookie 將被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
}
function getCookie(name){ //取cookies函數(shù)
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
if (arr != null) return unescape(arr[2]);
return null
}
$(function() {
var uulanguage = (navigator.language || navigator.browserLanguage).toLowerCase();
console.log("come in readly" + uulanguage);
if (uulanguage.indexOf("en") > -1) {
$("[data-localize]").localize("text", { //**主要的代碼** jquery.localize.js 底層實(shí)現(xiàn)切換邏輯
pathPrefix: "lang",
language: "en"
});
console.log("come in en");
} else if (uulanguage.indexOf("ja") > -1) {
$("[data-localize]").localize("text", {
pathPrefix: "lang",
language: "ja"
});
console.log("come in ja");
} else {
$("[data-localize]").localize("text", {
pathPrefix: "lang",
language: "en"
});
console.log("come in moren en");
};
//根據(jù)cookie選擇語(yǔ)言
if (getCookie(name) != "") {
if (getCookie(name) == "ja") {
$("[data-localize]").localize("text", {
pathPrefix: "lang",
language: "ja"
});
console.log("come in cookie ja");
}
if (getCookie(name) == "en") {
$("[data-localize]").localize("text", {
pathPrefix: "lang",
language: "en"
});
console.log("come in cookie en");
}
}
});
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 簡(jiǎn)單實(shí)現(xiàn)js頁(yè)面切換功能
- js實(shí)現(xiàn)的鼠標(biāo)滾輪滾動(dòng)切換頁(yè)面效果(類(lèi)似360默認(rèn)頁(yè)面滾動(dòng)切換效果)
- js實(shí)現(xiàn)單一html頁(yè)面兩套css切換代碼
- echarts同一頁(yè)面中四個(gè)圖表切換的js數(shù)據(jù)交互方法示例
- 基于JS實(shí)現(xiàn)翻書(shū)效果的頁(yè)面切換樣式
- 使用AngularJS實(shí)現(xiàn)可伸縮的頁(yè)面切換的方法
- javascript單頁(yè)面手勢(shì)滑屏切換原理詳解
- JavaScript實(shí)現(xiàn)鼠標(biāo)滾輪控制頁(yè)面圖片切換功能示例
- jQuery實(shí)現(xiàn)切換頁(yè)面過(guò)渡動(dòng)畫(huà)效果
- JavaScript/jQuery實(shí)現(xiàn)切換頁(yè)面效果
相關(guān)文章
jQuery實(shí)現(xiàn)滾動(dòng)切換的tab選項(xiàng)卡效果代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)滾動(dòng)切換的tab選項(xiàng)卡效果代碼,涉及jquery鏈?zhǔn)讲僮骷皹邮絼?dòng)態(tài)操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
jQuery實(shí)現(xiàn)簡(jiǎn)易QQ聊天框
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)簡(jiǎn)易QQ聊天框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
jquery實(shí)現(xiàn)一個(gè)全局計(jì)時(shí)器(商城可用)
這篇文章主要介紹了jquery實(shí)現(xiàn)一個(gè)全局計(jì)時(shí)器,商城一類(lèi)都可以使用2017-06-06
jQuery實(shí)現(xiàn)微信長(zhǎng)按識(shí)別二維碼功能
這篇文章主要介紹了jQuery實(shí)現(xiàn)微信長(zhǎng)按識(shí)別二維碼的功能,非常不錯(cuò),具有參考借鑒價(jià)值,對(duì)jquery長(zhǎng)按識(shí)別二維碼的相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-08-08
使用jQuery中的wrap()函數(shù)操作HTML元素的教程
wrap(),顧名思義,就是包裹的意思,就是在你所在器外層包裹一層?xùn)|西,接下來(lái)我們就詳細(xì)來(lái)看使用jQuery中的wrap()函數(shù)操作HTML元素的教程:2016-05-05
jquery 學(xué)習(xí)筆記 傳智博客佟老師附詳細(xì)注釋
本人水平有限,在學(xué)習(xí)時(shí)請(qǐng)用批判的態(tài)度學(xué)習(xí),有問(wèn)題給我留言 傳智博客佟老師 jqurey 學(xué)習(xí)筆記,以及例子代碼詳細(xì)注釋。2009-07-07

