From a47f8e7f89c0152b15d39e3974e1b4214130f9ce Mon Sep 17 00:00:00 2001 From: jorgejeferson Date: Fri, 10 Jul 2015 12:40:23 -0300 Subject: [PATCH 1/3] translating placeholder Upgrade to also translation of TAG placeholder --- jquery.translate.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/jquery.translate.js b/jquery.translate.js index 980c8fa..b9bf505 100644 --- a/jquery.translate.js +++ b/jquery.translate.js @@ -60,8 +60,6 @@ }; this.g = this.get; - - //main this.find(settings.css).each(function(i) { @@ -72,14 +70,17 @@ trn_key = $this.html(); $this.attr("data-trn-key", trn_key); //store key for next time } - - $this.html(that.get(trn_key)); + + //Translate placeholder + if($this.attr("placeholder") != undefined){ + trn_key = $this.attr("placeholder"); + $this.attr("placeholder", that.get(trn_key)); + }else{ + $this.html(that.get(trn_key)); + } }); + return this; - return this; - - - }; -})(jQuery); \ No newline at end of file +})(jQuery); From 31ecb2c080ea9099cbcc1c7fccfebc1149a20887 Mon Sep 17 00:00:00 2001 From: jorgejeferson Date: Fri, 10 Jul 2015 15:28:11 -0300 Subject: [PATCH 2/3] Translating specific attrs Added variable settings in the translation option also in specific attr --- jquery.translate.js | 162 +++++++++++++++++++++++--------------------- 1 file changed, 84 insertions(+), 78 deletions(-) diff --git a/jquery.translate.js b/jquery.translate.js index b9bf505..b06bbe2 100644 --- a/jquery.translate.js +++ b/jquery.translate.js @@ -1,86 +1,92 @@ /** - * @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. - * - */ + * @file jquery.translate.js + * @brief jQuery plugin to translate text in the client side. + * @author Manuel Fernandes + * @contribution Jorge Jeferson + * @site http://www.openxrest.com/translatejs/ + * @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: "en"/*, - t: { - "translate": { - pt: "tradução", - br: "tradução" + $.fn.translate = function(options) { + + var that = this; //a reference to ourselves + + var settings = { + css: "trn", + attrs: ["alt", "placeholder", "title"], + 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; } - }*/ - }; - 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; - }; + var t = settings.t; - 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; - }; + //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; + } - 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 - } - - //Translate placeholder - if($this.attr("placeholder") != undefined){ - trn_key = $this.attr("placeholder"); - $this.attr("placeholder", that.get(trn_key)); - }else{ - $this.html(that.get(trn_key)); - } - }); - - return this; - - }; + 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); + } + + $.each(this.attributes, function() { + if ($.inArray(this.name, settings.attrs) !== -1) { + var trn_attr_key = $this.attr("data-trn-attr"); + if (!trn_attr_key) { + trn_attr_key = $this.attr(this.name); + $this.attr("data-trn-attr", trn_attr_key); + } + $this.attr(this.name, that.get(trn_attr_key)); + } + }); + + $this.html(that.get(trn_key)); + }); + + return this; + + }; })(jQuery); From 39be8237666a76035fc210a28d8e431f1416579e Mon Sep 17 00:00:00 2001 From: jorgejeferson Date: Mon, 13 Jul 2015 12:47:17 -0300 Subject: [PATCH 3/3] Changing images Changing the images based on the selected language --- jquery.translate.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/jquery.translate.js b/jquery.translate.js index b06bbe2..9083946 100644 --- a/jquery.translate.js +++ b/jquery.translate.js @@ -19,7 +19,9 @@ var settings = { css: "trn", attrs: ["alt", "placeholder", "title"], - lang: "en"/*, + checkImage: true, // Checking images + lang: "pt", + langDefault: "pt"/*, t: { "translate": { pt: "tradução", @@ -72,6 +74,7 @@ $this.attr("data-trn-key", trn_key); } + // Filtering attr $.each(this.attributes, function() { if ($.inArray(this.name, settings.attrs) !== -1) { var trn_attr_key = $this.attr("data-trn-attr"); @@ -83,6 +86,23 @@ } }); + // images + if(settings.checkImage){ + if($this.is('img')){ + var trn_img_key = $this.attr("data-trn-img"); + + if (!trn_img_key) { + trn_img_key = $this.attr('src'); + $this.attr("data-trn-img", trn_img_key); + } + if(settings.lang !== settings.langDefault){ + var new_src = trn_img_key.split("."); + trn_img_key = new_src[0] + "-" + settings.lang + "." + new_src[1]; + } + $this.attr('src', trn_img_key); + } + } + $this.html(that.get(trn_key)); });