Transposh WordPress Translation - Version 0.6.7

Version Description

= 0.6.6 = Fixed two XSS vulnerabilities = 0.6.3 = Support .po/.mo files = 0.6.0 = Much improved translation interface engine = 0.5.7 = Fix for critical bug in 0.5.6 = 0.5.6 = Support pluggable widgets = 0.5.5 = Support for buddypress URLs = 0.5.3 = Support URL translation = 0.5.2 = Improved lang attribute support, changed default language translation option = 0.5.1 = Improved speed and database structure = 0.5.0 = Ability to translate all content, backup service for human translations = 0.4.3 = Minor bug fixes, more compatability = 0.4.2 = This version provides Haitian support, auto translate with bing support = 0.4.0 = This version provides integration with google-sitemaps-xml and wp-super-cache = 0.3.9 = This version allows sorting of languages within the widget

Download this release

Release Info

Developer oferwald
Plugin Icon 128x128 Transposh WordPress Translation
Version 0.6.7
Comparing to
See all releases

Code changes from version 0.6.6 to 0.6.7

core/constants.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  //Language indicator in URL. i.e. lang=en
@@ -122,7 +122,7 @@ class transposh_consts {
122
  define('TRANSLATOR', 'translator');
123
 
124
  //Define for transposh plugin version
125
- define('TRANSPOSH_PLUGIN_VER', '0.6.6');
126
 
127
  //Define segment id prefix, will be included in span tag. also used as class identifier
128
  define('SPAN_PREFIX', 'tr_');
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  //Language indicator in URL. i.e. lang=en
122
  define('TRANSLATOR', 'translator');
123
 
124
  //Define for transposh plugin version
125
+ define('TRANSPOSH_PLUGIN_VER', '0.6.7');
126
 
127
  //Define segment id prefix, will be included in span tag. also used as class identifier
128
  define('SPAN_PREFIX', 'tr_');
core/parser.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  require_once("shd/simple_html_dom.php");
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  require_once("shd/simple_html_dom.php");
core/utils.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  /**
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  /**
js/lazy.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.6.6
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
10
  */
11
  (function(b){function s(){function h(a,c){t[a](c,function(d){d=="error"?i.push(c):k.push(c)&&g.each(c);o()},"lazy-loaded-"+(g.name?g.name:(new Date).getTime()))}function j(a){g.complete(a,k,i);g[a](a=="error"?i:k);clearTimeout(p);clearTimeout(u)}function o(){if(k.length==l.length)j("success");else k.length+i.length==l.length&&j("error")}function q(){i.push(this.src);o()}var t=this,g,k=[],i=[],p,u,n,l=[];this.init=function(a){if(a){g=b.extend({},b.xLazyLoader.defaults,a);n={js:g.js,css:g.css,img:g.img};
12
  b.each(n,function(c,d){if(typeof d=="string")d=d.split(",");l=l.concat(d)});if(l.length){if(g.timeout)p=setTimeout(function(){var c=k.concat(i);b.each(l,function(d,f){b.inArray(f,c)==-1&&i.push(f)});j("error")},g.timeout);b.each(n,function(c,d){if(b.isArray(d))b.each(d,function(f,e){h(c,e)});else typeof d=="string"&&h(c,d)})}else j("error")}};this.js=function(a,c,d){var f=b('script[src*="'+a+'"]');if(f.length)f.attr("pending")?f.bind("scriptload",c):c();else{var e=document.createElement("script");
1
  /*
2
+ * Transposh v0.6.7
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
10
  */
11
  (function(b){function s(){function h(a,c){t[a](c,function(d){d=="error"?i.push(c):k.push(c)&&g.each(c);o()},"lazy-loaded-"+(g.name?g.name:(new Date).getTime()))}function j(a){g.complete(a,k,i);g[a](a=="error"?i:k);clearTimeout(p);clearTimeout(u)}function o(){if(k.length==l.length)j("success");else k.length+i.length==l.length&&j("error")}function q(){i.push(this.src);o()}var t=this,g,k=[],i=[],p,u,n,l=[];this.init=function(a){if(a){g=b.extend({},b.xLazyLoader.defaults,a);n={js:g.js,css:g.css,img:g.img};
12
  b.each(n,function(c,d){if(typeof d=="string")d=d.split(",");l=l.concat(d)});if(l.length){if(g.timeout)p=setTimeout(function(){var c=k.concat(i);b.each(l,function(d,f){b.inArray(f,c)==-1&&i.push(f)});j("error")},g.timeout);b.each(n,function(c,d){if(b.isArray(d))b.each(d,function(f,e){h(c,e)});else typeof d=="string"&&h(c,d)})}else j("error")}};this.js=function(a,c,d){var f=b('script[src*="'+a+'"]');if(f.length)f.attr("pending")?f.bind("scriptload",c):c();else{var e=document.createElement("script");
js/transposh.js CHANGED
@@ -1,17 +1,18 @@
1
  /*
2
- * Transposh v0.6.6
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
10
  */
11
- (function(a){function u(c,d){if(a.trim(d).length!==0){var b=function(){var e=a(this).attr("id").substr(a(this).attr("id").lastIndexOf("_")+1),i=a("#"+f+"img_"+e);a("#"+f+e).attr("data-source",1);i.removeClass("tr-icon-yellow").removeClass("tr-icon-green").addClass("tr-icon-yellow")};a("*[data-token='"+c+"'][data-hidden!='y']").html(d).each(b);a("*[data-token='"+c+"'][data-hidden='y']").attr("data-trans",d).each(b)}}function v(c,d){clearTimeout(o);h.push(c);n.push(d);u(c,d);o=setTimeout(function(){var b=
12
- {ln0:t_jp.lang,sr0:p,translation_posted:"2",items:h.length},e;for(e=0;e<h.length;e+=1){b["tk"+e]=h[e];b["tr"+e]=n[e];q+=a("*[data-token='"+h[e]+"']").size()}a.ajax({type:"POST",url:t_jp.post_url,data:b,success:function(){var i=q/j*100;t_jp.progress&&a("#"+k).progressbar("value",i)}});n=[];h=[]},200)}function l(c,d){v(c,a("<div>"+a.trim(d)+"</div>").text());var b=(j-a("."+f+'[data-source=""]').size())/j*100;t_jp.progress&&a("#"+m).progressbar("value",b)}function w(c,d){var b="";a(c).each(function(e){b+=
13
- "&q="+encodeURIComponent(c[e])});a.ajax({url:"http://ajax.googleapis.com/ajax/services/language/translate?v=1.0"+b+"&langpair=%7C"+t_jp.lang,dataType:"jsonp",success:d})}function x(c,d){w(d,function(b){if(b.responseStatus>=200&&b.responseStatus<300)b.responseData.translatedText!==undefined?l(c[0],b.responseData.translatedText):a(b.responseData).each(function(e){this.responseStatus===200&&l(c[e],this.responseData.translatedText)})})}function y(c,d){var b="[";a(c).each(function(e){b+='"'+encodeURIComponent(c[e])+
14
- '",'});b=b.slice(0,-1)+"]";a.ajax({url:"http://api.microsofttranslator.com/V2/Ajax.svc/TranslateArray?appId="+t_jp.MSN_APPID+"&to="+t_jp.binglang+"&texts="+b,dataType:"jsonp",jsonp:"oncomplete",success:d})}function z(c,d){p=2;y(d,function(b){a(b).each(function(e){l(c[e],this.TranslatedText)})})}function A(c,d){a.getJSON(t_jp.post_url+"?tgp="+d+"&tgl="+t_jp.lang,function(b){b.sentences!==undefined&&b.sentences[0].trans&&l(c,b.sentences[0].trans)})}function r(c,d){if(t_jp.msn&&t_jp.preferred==="2")z(c,
15
- d);else if(t_jp.tgp)d[0]&&A(c[0],d[0]);else x(c,d)}function s(){var c=[],d=0,b=[],e=[];if(t_jp.tgp)t=0;a("."+f+'[data-source=""]').each(function(){var i=a(this).attr("data-token"),g=a(this).attr("data-orig");if(g===undefined)g=a(this).html();if(c[g]!==1){c[g]=1;if(d+g.length>t){r(e,b);d=0;b=[];e=[]}d+=g.length;e.push(i);b.push(g)}});r(e,b)}var t=128,j,f=t_jp.prefix,m=f+"pbar",k=m+"_s",p=1,q=0,o,h=[],n=[];t_jp.MSN_APPID="FACA8E2DF8DCCECE0DC311C6E57DA98EFEFA9BC6";a(document).ready(function(){if(t_jp.msn){t_jp.binglang=
16
- t_jp.lang;if(t_jp.binglang==="zh")t_jp.binglang="zh-chs";else if(t_jp.binglang==="zh-tw")t_jp.binglang="zh-cht"}a("#"+f+"setdeflang").click(function(){a.get(t_jp.post_url+"?tr_cookie="+Math.random());a(this).hide("slow");return false});j=a("."+f+'[data-source=""]').size();a.ajaxSetup({cache:true});if(j&&!t_jp.noauto&&(t_jp.google||t_jp.msn||t_jp.tgp))if(t_jp.progress){var c=function(){a.xLazyLoader({js:"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js",css:"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/ui-lightness/jquery-ui.css",
17
- success:function(){a("#"+f+"credit").css({overflow:"auto"}).append('<div style="float: left;width: 90%;height: 10px" id="'+m+'"/><div style="margin-bottom:10px;float:left;width: 90%;height: 10px" id="'+k+'"/>');a("#"+m).progressbar({value:0});a("#"+k).progressbar({value:0});a("#"+k+" > div").css({background:"#28F828",border:"#08A908 1px solid"});s()}})};typeof a.xLazyLoader==="function"?c():a.getScript(t_jp.plugin_url+"/js/lazy.js",c)}else s();t_jp.edit&&a.getScript(t_jp.plugin_url+"/js/transposhedit.js")})})(jQuery);
 
1
  /*
2
+ * Transposh v0.6.7
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
10
  */
11
+ (function(a){function v(b,e){if(a.trim(e).length!==0){var d=function(){var c=a(this).attr("id").substr(a(this).attr("id").lastIndexOf("_")+1),f=a("#"+h+"img_"+c);a("#"+h+c).attr("data-source",1);f.removeClass("tr-icon-yellow").removeClass("tr-icon-green").addClass("tr-icon-yellow")};a("*[data-token='"+b+"'][data-hidden!='y']").html(e).each(d);a("*[data-token='"+b+"'][data-hidden='y']").attr("data-trans",e).each(d)}}function w(b,e){clearTimeout(o);i.push(b);n.push(e);v(b,e);o=setTimeout(function(){var d=
12
+ {ln0:t_jp.lang,sr0:p,translation_posted:"2",items:i.length},c;for(c=0;c<i.length;c+=1){d["tk"+c]=i[c];d["tr"+c]=n[c];q+=a("*[data-token='"+i[c]+"']").size()}a.ajax({type:"POST",url:t_jp.post_url,data:d,success:function(){var f=q/j*100;t_jp.progress&&a("#"+k).progressbar("value",f)}});n=[];i=[]},200)}function l(b,e){w(b,a("<div>"+a.trim(e)+"</div>").text());var d=(j-a("."+h+'[data-source=""]').size())/j*100;t_jp.progress&&a("#"+m).progressbar("value",d)}function x(b,e,d){var c="",f="";a(b).each(function(g){c+=
13
+ "&q="+encodeURIComponent(b[g])});if(e)f=t_jp.olang;a.ajax({url:"http://ajax.googleapis.com/ajax/services/language/translate?v=1.0"+c+"&langpair="+f+"%7C"+t_jp.lang,dataType:"jsonp",success:d})}function r(b,e,d){x(e,d,function(c){if(c.responseStatus>=200&&c.responseStatus<300)c.responseData.translatedText!==undefined?l(b[0],c.responseData.translatedText):a(c.responseData).each(function(f){this.responseStatus===200&&l(b[f],this.responseData.translatedText)});else c.responseStatus>=400&&!d&&r(b,e,true)})}
14
+ function y(b,e){var d="[";a(b).each(function(c){d+='"'+encodeURIComponent(b[c])+'",'});d=d.slice(0,-1)+"]";a.ajax({url:"http://api.microsofttranslator.com/V2/Ajax.svc/TranslateArray?appId="+t_jp.MSN_APPID+"&to="+t_jp.binglang+"&texts="+d,dataType:"jsonp",jsonp:"oncomplete",success:e})}function z(b,e){p=2;y(e,function(d){a(d).each(function(c){l(b[c],this.TranslatedText)})})}function A(b,e){a.getJSON(t_jp.post_url+"?tgp="+e+"&tgl="+t_jp.lang,function(d){d.sentences!==undefined&&d.sentences[0].trans&&
15
+ l(b,d.sentences[0].trans)})}function s(b,e){if(t_jp.msn&&t_jp.preferred==="2")z(b,e);else if(t_jp.tgp)e[0]&&A(b[0],e[0]);else r(b,e,false)}function t(){var b=[],e=0,d=[],c=[];if(t_jp.tgp)u=0;a("."+h+'[data-source=""]').each(function(){var f=a(this).attr("data-token"),g=a(this).attr("data-orig");if(g===undefined)g=a(this).html();if(b[g]!==1){b[g]=1;if(e+g.length>u){s(c,d);e=0;d=[];c=[]}e+=g.length;c.push(f);d.push(g)}});s(c,d)}var u=128,j,h=t_jp.prefix,m=h+"pbar",k=m+"_s",p=1,q=0,o,i=[],n=[];t_jp.MSN_APPID=
16
+ "FACA8E2DF8DCCECE0DC311C6E57DA98EFEFA9BC6";a(document).ready(function(){if(t_jp.msn){t_jp.binglang=t_jp.lang;if(t_jp.binglang==="zh")t_jp.binglang="zh-chs";else if(t_jp.binglang==="zh-tw")t_jp.binglang="zh-cht"}a("#"+h+"setdeflang").click(function(){a.get(t_jp.post_url+"?tr_cookie="+Math.random());a(this).hide("slow");return false});j=a("."+h+'[data-source=""]').size();a.ajaxSetup({cache:true});if(j&&!t_jp.noauto&&(t_jp.google||t_jp.msn||t_jp.tgp))if(t_jp.progress){var b=function(){a.xLazyLoader({js:"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js",
17
+ css:"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/ui-lightness/jquery-ui.css",success:function(){a("#"+h+"credit").css({overflow:"auto"}).append('<div style="float: left;width: 90%;height: 10px" id="'+m+'"/><div style="margin-bottom:10px;float:left;width: 90%;height: 10px" id="'+k+'"/>');a("#"+m).progressbar({value:0});a("#"+k).progressbar({value:0});a("#"+k+" > div").css({background:"#28F828",border:"#08A908 1px solid"});t()}})};typeof a.xLazyLoader==="function"?b():a.getScript(t_jp.plugin_url+
18
+ "/js/lazy.js",b)}else t();t_jp.edit&&a.getScript(t_jp.plugin_url+"/js/transposhedit.js")})})(jQuery);
js/transposhadmin.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.6.6
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
10
  */
11
  var timer,items=0,translations=[],tokens=[],langs=[],sources=[],BATCH_SIZE=128,pair_count=0,curr_pair=0;t_jp.MSN_APPID="FACA8E2DF8DCCECE0DC311C6E57DA98EFEFA9BC6";function make_progress(e,b){curr_pair+=1;jQuery("#progress_bar").progressbar("value",curr_pair/pair_count*100);jQuery("#p").text("("+b+") "+e);curr_pair===pair_count&&jQuery("#tr_loading").data("done",true)}
12
  function ajax_translate_me(e,b,c,d){b=jQuery("<div>"+jQuery.trim(b)+"</div>").text();make_progress(b,c);clearTimeout(timer);items+=1;tokens.push(e);translations.push(b);langs.push(c);sources.push(d);timer=setTimeout(function(){var f={translation_posted:"2",items:items},a;for(a=0;a<items;a+=1){if(tokens[a]!==tokens[a-1])f["tk"+a]=tokens[a];if(langs[a]!==langs[a-1])f["ln"+a]=langs[a];if(translations[a]!==translations[a-1])f["tr"+a]=translations[a];if(sources[a]!==sources[a-1])f["sr"+a]=sources[a]}jQuery.ajax({type:"POST",
1
  /*
2
+ * Transposh v0.6.7
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
10
  */
11
  var timer,items=0,translations=[],tokens=[],langs=[],sources=[],BATCH_SIZE=128,pair_count=0,curr_pair=0;t_jp.MSN_APPID="FACA8E2DF8DCCECE0DC311C6E57DA98EFEFA9BC6";function make_progress(e,b){curr_pair+=1;jQuery("#progress_bar").progressbar("value",curr_pair/pair_count*100);jQuery("#p").text("("+b+") "+e);curr_pair===pair_count&&jQuery("#tr_loading").data("done",true)}
12
  function ajax_translate_me(e,b,c,d){b=jQuery("<div>"+jQuery.trim(b)+"</div>").text();make_progress(b,c);clearTimeout(timer);items+=1;tokens.push(e);translations.push(b);langs.push(c);sources.push(d);timer=setTimeout(function(){var f={translation_posted:"2",items:items},a;for(a=0;a<items;a+=1){if(tokens[a]!==tokens[a-1])f["tk"+a]=tokens[a];if(langs[a]!==langs[a-1])f["ln"+a]=langs[a];if(translations[a]!==translations[a-1])f["tr"+a]=translations[a];if(sources[a]!==sources[a-1])f["sr"+a]=sources[a]}jQuery.ajax({type:"POST",
js/transposhcontrol.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.6.6
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
10
  */
11
  jQuery(function(){jQuery("#tr_anon").click(function(){if(jQuery("#tr_anon").attr("checked")){jQuery(".translateable").addClass("active").removeClass("translateable");jQuery("#sortable .active").each(function(){jQuery("input",this).val(jQuery(this).attr("id")+",v,t")})}jQuery("#yellowcolor").toggleClass("hidden")});jQuery("#sortable").sortable({placeholder:"highlight",update:function(b,a){a.item.unbind("click");a.item.one("click",function(c){c.stopImmediatePropagation();jQuery(this).click(clickfunction)})}});
12
  jQuery("#sortable").disableSelection();jQuery("#changename").click(function(){jQuery(".langname").toggleClass("hidden");return false});jQuery("#selectall").click(function(){jQuery("#sortable .languages").addClass("active").removeClass("translateable");jQuery("#sortable .active").each(function(){jQuery("input",this).val(jQuery(this).attr("id")+",v,t")});return false});clickfunction=function(){if(jQuery(this).attr("id")!=jQuery("#default_list li").attr("id")){if(jQuery("#tr_anon").attr("checked"))jQuery(this).toggleClass("active");
1
  /*
2
+ * Transposh v0.6.7
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
10
  */
11
  jQuery(function(){jQuery("#tr_anon").click(function(){if(jQuery("#tr_anon").attr("checked")){jQuery(".translateable").addClass("active").removeClass("translateable");jQuery("#sortable .active").each(function(){jQuery("input",this).val(jQuery(this).attr("id")+",v,t")})}jQuery("#yellowcolor").toggleClass("hidden")});jQuery("#sortable").sortable({placeholder:"highlight",update:function(b,a){a.item.unbind("click");a.item.one("click",function(c){c.stopImmediatePropagation();jQuery(this).click(clickfunction)})}});
12
  jQuery("#sortable").disableSelection();jQuery("#changename").click(function(){jQuery(".langname").toggleClass("hidden");return false});jQuery("#selectall").click(function(){jQuery("#sortable .languages").addClass("active").removeClass("translateable");jQuery("#sortable .active").each(function(){jQuery("input",this).val(jQuery(this).attr("id")+",v,t")});return false});clickfunction=function(){if(jQuery(this).attr("id")!=jQuery("#default_list li").attr("id")){if(jQuery("#tr_anon").attr("checked"))jQuery(this).toggleClass("active");
js/transposhedit.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.6.6
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
10
  */
11
  (function(a){function h(b,c){if(a.trim(c).length===0)c=a("[data-token='"+b+"']").attr("data-orig");var e=function(){var f=a(this).attr("id").substr(a(this).attr("id").lastIndexOf("_")+1),d=a("#"+t_jp.prefix+"img_"+f);a("#"+t_jp.prefix+f).attr("data-source",0);d.removeClass("tr-icon-yellow").removeClass("tr-icon-green").addClass("tr-icon-green")};a("*[data-token='"+b+"'][data-hidden!='y']").html(c).each(e);a("*[data-token='"+b+"'][data-hidden='y']").attr("data-trans",c).each(e)}function i(b,c){h(b,
12
  c);a.ajax({type:"POST",url:t_jp.post_url,data:{ln0:t_jp.lang,sr0:0,translation_posted:"2",items:1,tk0:b,tr0:c},success:function(){},error:function(e){alert("Error !!! failed to translate.\n\nServer's message: "+e.statusText)}})}function j(b,c){a.ajax({url:"http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q="+encodeURIComponent(b)+"&langpair=%7C"+t_jp.lang,dataType:"jsonp",success:c})}function k(){a(":button:contains('Suggest - Google')").attr("disabled","disabled").addClass("ui-state-disabled");
1
  /*
2
+ * Transposh v0.6.7
3
  * http://transposh.org/
4
  *
5
  * Copyright 2010, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
10
  */
11
  (function(a){function h(b,c){if(a.trim(c).length===0)c=a("[data-token='"+b+"']").attr("data-orig");var e=function(){var f=a(this).attr("id").substr(a(this).attr("id").lastIndexOf("_")+1),d=a("#"+t_jp.prefix+"img_"+f);a("#"+t_jp.prefix+f).attr("data-source",0);d.removeClass("tr-icon-yellow").removeClass("tr-icon-green").addClass("tr-icon-green")};a("*[data-token='"+b+"'][data-hidden!='y']").html(c).each(e);a("*[data-token='"+b+"'][data-hidden='y']").attr("data-trans",c).each(e)}function i(b,c){h(b,
12
  c);a.ajax({type:"POST",url:t_jp.post_url,data:{ln0:t_jp.lang,sr0:0,translation_posted:"2",items:1,tk0:b,tr0:c},success:function(){},error:function(e){alert("Error !!! failed to translate.\n\nServer's message: "+e.statusText)}})}function j(b,c){a.ajax({url:"http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q="+encodeURIComponent(b)+"&langpair=%7C"+t_jp.lang,dataType:"jsonp",success:c})}function k(){a(":button:contains('Suggest - Google')").attr("disabled","disabled").addClass("ui-state-disabled");
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: oferwald
3
  Donate link: http://transposh.org/donate/
4
  Tags: translation, widget, filter, buddypress, bilingual, multilingual, transposh, translate, language, crowdsourcing, context, wiki, RTL, Hebrew, Spanish, French, Russian, English, Arabic, Portuguese
5
  Requires at least: 2.8
6
- Tested up to: 3.0.1
7
- Stable tag: 0.6.6
8
 
9
  Transposh filter allows in context quick translation of websites, it allows you to crowd-source the translation to your users
10
 
@@ -18,7 +18,7 @@ Transposh translation filter for WordPress offers a unique approach to blog tran
18
  * Multiple selection for widget appearances - with pluggable widgets
19
  * Translation of external plugins without a need for .po/.mo files
20
  * Automatic translation mode for all content (including comments!)
21
- * Use either Google Translate or MS Translate backends - 57 languages supported!
22
  * Automatic translation can be triggered on demand by the readers or on the server side
23
  * RSS feeds are translated too
24
  * Takes care of hidden elements, link tags and titles
@@ -195,9 +195,14 @@ This version provides integration with google-sitemaps-xml and wp-super-cache
195
  This version allows sorting of languages within the widget
196
 
197
  == Changelog ==
 
 
 
 
 
198
  = 2010/11/11 - 0.6.6 =
199
  * Added support for some more breaker html entities such as &rsquo; (thanks archon810)
200
- * fix XSS vulnerability on IE<8 (Thanks [Joshua Hansen and Scott Caveza](http://www.godaddy.com/security/website-security.aspx))
201
  * Integration with Google Sitemaps XML v4 beta
202
  = 2010/10/25 - 0.6.5 =
203
  * Fixed Slovenian flag bug reported by anphicle
3
  Donate link: http://transposh.org/donate/
4
  Tags: translation, widget, filter, buddypress, bilingual, multilingual, transposh, translate, language, crowdsourcing, context, wiki, RTL, Hebrew, Spanish, French, Russian, English, Arabic, Portuguese
5
  Requires at least: 2.8
6
+ Tested up to: 3.0.3
7
+ Stable tag: 0.6.7
8
 
9
  Transposh filter allows in context quick translation of websites, it allows you to crowd-source the translation to your users
10
 
18
  * Multiple selection for widget appearances - with pluggable widgets
19
  * Translation of external plugins without a need for .po/.mo files
20
  * Automatic translation mode for all content (including comments!)
21
+ * Use either Google Translate or MS Translate backends - 59 languages supported!
22
  * Automatic translation can be triggered on demand by the readers or on the server side
23
  * RSS feeds are translated too
24
  * Takes care of hidden elements, link tags and titles
195
  This version allows sorting of languages within the widget
196
 
197
  == Changelog ==
198
+ = 2010/12/17 - 0.6.7 =
199
+ * Allow Google to attempt a retranslation if it is unable to detect source language at first attempt
200
+ * Direct links to static files have a good chance of being answered now (thanks krizzz)
201
+ * Ignore not viewable languages entered directly into urls
202
+ * Fixed typo in readme.txt, we did support 59 languages already
203
  = 2010/11/11 - 0.6.6 =
204
  * Added support for some more breaker html entities such as &rsquo; (thanks archon810)
205
+ * Fixed XSS vulnerability on IE<8 (Thanks [Joshua Hansen and Scott Caveza](http://www.godaddy.com/security/website-security.aspx))
206
  * Integration with Google Sitemaps XML v4 beta
207
  = 2010/10/25 - 0.6.5 =
208
  * Fixed Slovenian flag bug reported by anphicle
transposh.php CHANGED
@@ -5,7 +5,7 @@
5
  Plugin URI: http://transposh.org/
6
  Description: Translation filter for WordPress, After enabling please set languages at the <a href="options-general.php?page=transposh">the options page</a> Want to help? visit our development site at <a href="http://trac.transposh.org/">trac.transposh.org</a>.
7
  Author: Team Transposh
8
- Version: 0.6.6
9
  Author URI: http://transposh.org/
10
  License: GPL (http://www.gnu.org/licenses/gpl.txt)
11
  Text Domain: transposh
@@ -13,14 +13,14 @@
13
  */
14
 
15
  /*
16
- * Transposh v0.6.6
17
  * http://transposh.org/
18
  *
19
  * Copyright 2010, Team Transposh
20
  * Licensed under the GPL Version 2 or higher.
21
  * http://transposh.org/license
22
  *
23
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
24
  */
25
 
26
  //avoid direct calls to this file where wp core files not present
@@ -166,6 +166,9 @@ class transposh_plugin {
166
  // FUTURE add_action('update-custom_transposh', array(&$this, 'update'));
167
  // CHECK TODO!!!!!!!!!!!!
168
  $this->tgl = transposh_utils::get_language_from_url($_SERVER['REQUEST_URI'], $this->home_url);
 
 
 
169
 
170
  register_activation_hook(__FILE__, array(&$this, 'plugin_activate'));
171
  register_deactivation_hook(__FILE__, array(&$this, 'plugin_deactivate'));
@@ -246,7 +249,6 @@ class transposh_plugin {
246
  if ($this->is_special_page($_SERVER['REQUEST_URI'])) {
247
 
248
  }
249
-
250
  // This one fixed a bug transposh created with other pages (xml generator for other plugins - such as the nextgen gallery)
251
  // TODO: need to further investigate (will it be needed?)
252
  elseif ($this->target_language == '') {
@@ -256,6 +258,16 @@ class transposh_plugin {
256
  elseif ($this->options->is_default_language($this->target_language) && !$this->options->get_enable_default_translate()) {
257
 
258
  } else {
 
 
 
 
 
 
 
 
 
 
259
 
260
 
261
  //translate the entire page
@@ -629,6 +641,7 @@ class transposh_plugin {
629
  'plugin_url' => $this->transposh_plugin_url,
630
  'lang' => $this->target_language,
631
  //TODO - orig language?
 
632
  // those two options show if the script can support said engines
633
  'prefix' => SPAN_PREFIX,
634
  'preferred' => $this->options->get_preferred_translator()
@@ -981,6 +994,9 @@ class transposh_plugin {
981
  function transposh_locale_filter($locale) {
982
  //
983
  $lang = transposh_utils::get_language_from_url($_SERVER['REQUEST_URI'], $this->home_url);
 
 
 
984
  if (!$lang) return $locale;
985
  list ($l, $n, $f, $locale) = explode(',', transposh_consts::$languages[$lang]);
986
  if ($locale) {
5
  Plugin URI: http://transposh.org/
6
  Description: Translation filter for WordPress, After enabling please set languages at the <a href="options-general.php?page=transposh">the options page</a> Want to help? visit our development site at <a href="http://trac.transposh.org/">trac.transposh.org</a>.
7
  Author: Team Transposh
8
+ Version: 0.6.7
9
  Author URI: http://transposh.org/
10
  License: GPL (http://www.gnu.org/licenses/gpl.txt)
11
  Text Domain: transposh
13
  */
14
 
15
  /*
16
+ * Transposh v0.6.7
17
  * http://transposh.org/
18
  *
19
  * Copyright 2010, Team Transposh
20
  * Licensed under the GPL Version 2 or higher.
21
  * http://transposh.org/license
22
  *
23
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
24
  */
25
 
26
  //avoid direct calls to this file where wp core files not present
166
  // FUTURE add_action('update-custom_transposh', array(&$this, 'update'));
167
  // CHECK TODO!!!!!!!!!!!!
168
  $this->tgl = transposh_utils::get_language_from_url($_SERVER['REQUEST_URI'], $this->home_url);
169
+ if (!$this->options->is_viewable_language($this->tgl)) {
170
+ $this->tgl = '';
171
+ }
172
 
173
  register_activation_hook(__FILE__, array(&$this, 'plugin_activate'));
174
  register_deactivation_hook(__FILE__, array(&$this, 'plugin_deactivate'));
249
  if ($this->is_special_page($_SERVER['REQUEST_URI'])) {
250
 
251
  }
 
252
  // This one fixed a bug transposh created with other pages (xml generator for other plugins - such as the nextgen gallery)
253
  // TODO: need to further investigate (will it be needed?)
254
  elseif ($this->target_language == '') {
258
  elseif ($this->options->is_default_language($this->target_language) && !$this->options->get_enable_default_translate()) {
259
 
260
  } else {
261
+ // This one allows to redirect to a static element which we can find, since the redirection will remove
262
+ // the target language, we are able to avoid nasty redirection loops
263
+ if (is_404 ()) {
264
+ global $wp;
265
+ if (file_exists(ABSPATH . $wp->query_vars['pagename'])) {
266
+
267
+ wp_redirect('/' . $wp->query_vars['pagename'], 301);
268
+ }
269
+ }
270
+
271
 
272
 
273
  //translate the entire page
641
  'plugin_url' => $this->transposh_plugin_url,
642
  'lang' => $this->target_language,
643
  //TODO - orig language?
644
+ 'olang' => $this->options->get_default_language(),
645
  // those two options show if the script can support said engines
646
  'prefix' => SPAN_PREFIX,
647
  'preferred' => $this->options->get_preferred_translator()
994
  function transposh_locale_filter($locale) {
995
  //
996
  $lang = transposh_utils::get_language_from_url($_SERVER['REQUEST_URI'], $this->home_url);
997
+ if (!$this->options->is_viewable_language($lang)) {
998
+ $lang = '';
999
+ }
1000
  if (!$lang) return $locale;
1001
  list ($l, $n, $f, $locale) = explode(',', transposh_consts::$languages[$lang]);
1002
  if ($locale) {
widgets/default/tpw_default.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.6.6
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
22
  */
23
 
24
  /*
11
  */
12
 
13
  /*
14
+ * Transposh v0.6.7
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
22
  */
23
 
24
  /*
widgets/dropdown/tpw_image_dropdown.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.6.6
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
22
  */
23
 
24
  /**
11
  */
12
 
13
  /*
14
+ * Transposh v0.6.7
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
22
  */
23
 
24
  /**
widgets/flags/tpw_flags.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.6.6
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
22
  */
23
 
24
  /**
11
  */
12
 
13
  /*
14
+ * Transposh v0.6.7
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
22
  */
23
 
24
  /**
widgets/flags/tpw_flags_css.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.6.6
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
22
  */
23
 
24
  /**
11
  */
12
 
13
  /*
14
+ * Transposh v0.6.7
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
22
  */
23
 
24
  /**
widgets/flagslist/tpw_list_with_flags.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.6.6
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
22
  */
23
 
24
  /**
11
  */
12
 
13
  /*
14
+ * Transposh v0.6.7
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
22
  */
23
 
24
  /**
widgets/flagslist/tpw_list_with_flags_css.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.6.6
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
22
  */
23
 
24
  /**
11
  */
12
 
13
  /*
14
+ * Transposh v0.6.7
15
  * http://transposh.org/
16
  *
17
  * Copyright 2010, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
22
  */
23
 
24
  /**
wp/transposh_3rdparty.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  /*
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  /*
wp/transposh_admin.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  /*
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  /*
wp/transposh_ajax.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  /*
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  /*
wp/transposh_backup.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  /*
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  /*
wp/transposh_db.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  /**
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  /**
wp/transposh_options.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  // OLD Options - To be removed
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  // OLD Options - To be removed
wp/transposh_postpublish.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  /*
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  /*
wp/transposh_widget.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.6.6
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Thu, 11 Nov 2010 23:52:38 +0200
12
  */
13
 
14
  /*
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.6.7
5
  * http://transposh.org/
6
  *
7
  * Copyright 2010, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Fri, 17 Dec 2010 12:19:12 +0200
12
  */
13
 
14
  /*