diff --git a/jquery.translate.js b/jquery.translate.js new file mode 100644 index 0000000..1cffb69 --- /dev/null +++ b/jquery.translate.js @@ -0,0 +1,84 @@ +/** + * @file jquery.translate.js + * @brief jQuery plugin to translate text in the client side. + * @author Manuel Fernandes + * @site + * @version 0.9 + * @license MIT license + * + * 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: "ro", + t: { + "translate": { + en: "translate" + } + } + }; + 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); \ No newline at end of file