1. 程式人生 > >jquery 原生實現簡易多語言

jquery 原生實現簡易多語言

以下該版本實現了簡易的多語言方案 ,你可以去維護一套多語言的json ,進行前端的語言切換。通過獲取自定義資料 data-trans 來改變語言。
html 結構

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>多語言</title>
</head>
<body>
    <h1 id="locale">en</h1>
    <h3 data-trans="js_gloTitle"
>
多語言</h3> </body> <script src="jquery-3.3.1.min.js"></script> <script src="demo.js"></script> </html>

對應的demo.js 程式碼:

"use strict";
window.global_lan = 'zh';
// 獲取對應的json 物件
var getTranslate = null;
// 改變對應的json 物件
var setTranslate = function (e) {
    var lanObj;
    lanObj = {
        zh: {
            js_gloTitle: "這是最後的機會"
, }, en: { js_gloTitle: "Dream of Your West Journey", } }[/^zh/.test(e) ? "zh" : "en"]; // 設定其值 getTranslate = function (e) { return lanObj[e] || e } }; $(function () { (function e() { window.global_lan = localStorage.language || window.navigator.language; setTranslate(global_lan); var
t = /^zh/.test(global_lan); $("#locale").text(t ? "en" : "cn"); // 獲取所有需要翻譯的結構化資料 var r = $("[data-trans]"); Array.prototype.forEach.call(r, function (e) { var a = e.getAttribute("data-trans"); e.textContent = getTranslate(a) }) // 手動切換語言 en or zh $("#locale").off('click').on("click", function () { localStorage.setItem("language", t ? "en" : "zh"); setTranslate(global_lan); e(); }); })() });

還有更好的方案,看自己需求決定!