You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.6 KiB
85 lines
1.6 KiB
/**
|
|
* @file jquery.translate.js
|
|
* @brief jQuery plugin to translate text in the client side.
|
|
* @author Manuel Fernandes
|
|
* @site
|
|
* @version 0.9
|
|
* @license MIT license <http://www.opensource.org/licenses/MIT>
|
|
*
|
|
* translate.js is a jQuery plugin to translate text in the client side.
|
|
*
|
|
*/
|
|
|
|
(function($){
|
|
$.fn.translate = function(options) {
|
|
|
|
var that = this; //a reference to ourselves
|
|
|
|
var settings = {
|
|
css: "trn",
|
|
lang: "en"/*,
|
|
t: {
|
|
"translate": {
|
|
pt: "tradução",
|
|
br: "tradução"
|
|
}
|
|
}*/
|
|
};
|
|
settings = $.extend(settings, options || {});
|
|
if (settings.css.lastIndexOf(".", 0) !== 0) //doesn't start with '.'
|
|
settings.css = "." + settings.css;
|
|
|
|
var t = settings.t;
|
|
|
|
//public methods
|
|
this.lang = function(l) {
|
|
if (l) {
|
|
settings.lang = l;
|
|
this.translate(settings); //translate everything
|
|
}
|
|
|
|
return settings.lang;
|
|
};
|
|
|
|
|
|
this.get = function(index) {
|
|
var res = index;
|
|
|
|
try {
|
|
res = t[index][settings.lang];
|
|
}
|
|
catch (err) {
|
|
//not found, return index
|
|
return index;
|
|
}
|
|
|
|
if (res)
|
|
return res;
|
|
else
|
|
return index;
|
|
};
|
|
|
|
this.g = this.get;
|
|
|
|
|
|
|
|
//main
|
|
this.find(settings.css).each(function(i) {
|
|
var $this = $(this);
|
|
|
|
var trn_key = $this.attr("data-trn-key");
|
|
if (!trn_key) {
|
|
trn_key = $this.html();
|
|
$this.attr("data-trn-key", trn_key); //store key for next time
|
|
}
|
|
|
|
$this.html(that.get(trn_key));
|
|
});
|
|
|
|
|
|
return this;
|
|
|
|
|
|
|
|
};
|
|
})(jQuery);
|