您的位置:首页 > Web前端 > HTML5

Cordys HTML5 多语言代码 解读

2015-10-29 15:19 756 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: