Cordys HTML5 多语言代码 解读

来源:互联网 发布:如何进入it行业 知乎 编辑:程序博客网 时间:2024/06/07 14:24

 Cordys 多语言设计思路


<label for="inputName" data-translatable="true">User Name</label>

 如果页面上需要翻译 则添加自定义标签。 data-translatable='true'   则可以利用JQuery 找到所有的对象$("data-translatable='true'")


 var selector = "[data-translatable='true']"; $(selector).each(function () {var $this = $(this);var label_name=$this.text().trim();//得到label name,然后利用label name去匹配,把对应的值找出来。$this.text(getMessage($this.text().trim())); }

 //利用Ajax读取本地文件 $.ajax({type: "GET",url: "translation/html5sdk/sdkmessagebundle_zh-CN.xml",async: true,cache: true,success : function(response){res=response;}});

//将本地文件转为Json数组$.cordys.json.xml2js(res)//找到某个对象dictionary=$.cordys.json.find($.cordys.json.xml2js(res), "dictionary");//var self = this;this.path = path;this.dictionary = dictionary;this.getMessage = function () {var id = arguments[0],label = null,ttext = "";if (self.dictionary) {label = $.cordys.json.find(self.dictionary, "@textidentifier", id);}ttext = label ? (label[language] ? (label[language].text || label[language]) : id) : id;if (arguments.length > 1) {var args = Array.prototype.slice.call(arguments).slice(1);ttext = ttext.replace(/\{(\d+)\}/g, function () {return typeof(args[arguments[1]]) !== "undefined" ? args[arguments[1]] : arguments[0];});}return ttext;}




0 0
原创粉丝点击