跳至内容
梅竹生辉
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
translation
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== 国际化语言翻译 ====== 采用原生js编写的国际化语言切换工具,使用简洁方便,不依赖任何插件和库 ===== 使用说明 ===== 初始化:new translation().init("en"); //传入需要使用的语言名称 调用:new translation().tr("dinghui"); 占位符匹配:new translation().tr("ding%1hui%2","str1","str2"); ===== 资源引入 ===== <script src="translation.js"></script> ===== JS部分 ===== (function(window, document) { var translation = function() { // this.init(); }; translation.prototype = { default: "en", init: function(language) { console.log("初始化"); window.languagename = language ? language : this.default; var that = this; var ajax = new XMLHttpRequest(); ajax.open('get', 'translation/' + window.languagename + '.json'); ajax.send(); ajax.onreadystatechange = function() { if (ajax.readyState == 4 && ajax.status == 200) { var data = that.getJsonObject(ajax.responseText) console.log(data) window.languagename = data.name; window.languagelist = data.list; } } }, getJsonObject: function(p) { var res = null; if (typeof(p) == "object") { return p; } else if (typeof(p) == "string") { try { return JSON.parse(p); } catch (e) { return p; } } return null; }, tr() { for (var i = 0; i < arguments.length; i++) { if (typeof(arguments[i]) !== "string") { throw err = new Error('Incorrect parameter type'); } } return this.getMsgstr(arguments); }, getMsgstr: function(argument) { var msgid = argument[0]; var msgstr = msgid; var languagelist = window.languagelist; for (var i = 0; i < languagelist.length; i++) { if (languagelist[i].msgid == msgid) { msgstr = this.msgEscape(languagelist[i], argument); break; } } return msgstr; }, msgEscape: function() { var msgid = arguments[0].msgid; var msgstr = arguments[0].msgstr; var escapelist = msgid.match(/[%]\d+/g) ? msgid.match(/[%]\d+/g) : []; for (var i = 0; i < escapelist.length; i++) { if (arguments[1][parseInt(escapelist[i].substring(1))]) { msgstr = msgstr.replace(escapelist[i], this.tr(arguments[1][parseInt(escapelist[i].substring(1))])); } } return msgstr } } window.translation = translation; new translation().init("en"); }(window, document)); ===== json部分 ===== zh.json(中文翻译文件) { "name": "zh", "list": [{ "msgid": "my name dinghui", "msgstr": "我的名字丁辉" }, { "msgid": "dinghui", "msgstr": "丁辉" }, { "msgid": "ding%1hui%2", "msgstr": "丁%1辉%2" }] } en.json(英文翻译文件) { "name": "en", "list": [{ "msgid": "my name dinghui", "msgstr": "my name dinghui" }, { "msgid": "dinghui", "msgstr": "dinghui" }, { "msgid": "ding%1hui%2", "msgstr": "ding%1hui%2" }] }
translation.txt
· 最后更改: 2021/12/23 17:19 (外部编辑)
页面工具
显示页面
修订记录
反向链接
回到顶部