Cordys 多语言设计思路
User Name
如果页面上需要翻译 则添加自定义标签。 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;
}