@@ -163,8 +163,12 @@ public function setLanguages($list){
163163 */
164164 public function forceLanguage ($ key ){
165165 echo '<script>
166- if(GTranslator.Current() != " ' .$ key .'"){
167- GTranslator.Translate(null, \'' . $ this ->siteLang . '| ' . ($ key ??"en " ) . '\');
166+ GTranslator.StatusSiteLang = (localStorage.getItem("siteLang")||" ' .$ this ->siteLang .'");
167+ GTranslator.StatusChangeLang = parseInt(localStorage.getItem("changeLang")||0);
168+ if(GTranslator.StatusChangeLang == 0){
169+ if(GTranslator.Current() != " ' .$ key .'" && GTranslator.StatusSiteLang != " ' .$ key .'"){
170+ GTranslator.Translate(null, \'' . $ this ->siteLang . '| ' . ($ key ??"en " ) . '\');
171+ }
168172 }
169173 </script> ' ;
170174 return $ this ;
@@ -350,7 +354,7 @@ public function load(){
350354 * @return string|html|javascript $JSScript
351355 */
352356 public function addScript (){
353- $ JSScript = "<script>var GTranslator = {siteLang: \"{$ this ->siteLang }\",googleElement: \"{$ this ->element }\",OPTION_ACTIVE: !1,Languages: " . json_encode ($ this ->languages ) . ",GButton: function(){return document.getElementById('php-g-translator');},Current:function(){var b=document.cookie.match( \"(^|;) ?googtrans=([^;]*)(;|$) \");return b?b[2].split( \"/ \")[2]:GTranslator.siteLang},Event:function(b,a){try{if(document.createEventObject){var c=document.createEventObject();b.fireEvent( \"on \"+a,c)}else c=document.createEvent( \"HTMLEvents \"),c.initEvent(a,!0,!0),b.dispatchEvent(c)}catch(d){console.log( \"GTranslator: \"+d)}},runTranslate:function(a,b){if(null!=GTranslator.Current()||lang!=a){for(var c,d=document.getElementsByTagName( \"select \"),e=0;e<d.length;e++)if(/goog-te-combo/.test(d[e].className)){c=d[e];break}null==document.getElementById(GTranslator.googleElement)||0==document.getElementById(GTranslator.googleElement).innerHTML.length||
357+ $ JSScript = "<script>var GTranslator = {siteLang: \"{$ this ->siteLang }\",googleElement: \"{$ this ->element }\",OPTION_ACTIVE: !1,Languages: " . json_encode ($ this ->languages ) . ",GButton: function(){return document.getElementById('php-g-translator');},Current:function(){var b=document.cookie.match( \"(^|;) ?googtrans=([^;]*)(;|$) \");return b?b[2].split( \"/ \")[2]:GTranslator.siteLang},Event:function(b,a){try{if(document.createEventObject){var c=document.createEventObject();b.fireEvent( \"on \"+a,c)}else c=document.createEvent( \"HTMLEvents \"),c.initEvent(a,!0,!0),b.dispatchEvent(c)}catch(d){console.log( \"GTranslator: \"+d)}},runTranslate:function(a,b){if(null!=GTranslator.Current()||lang!=a){localStorage.setItem('siteLang', d);localStorage.setItem('changeLang', 1);for(var c,d=document.getElementsByTagName( \"select \"),e=0;e<d.length;e++)if(/goog-te-combo/.test(d[e].className)){c=d[e];break}null==document.getElementById(GTranslator.googleElement)||0==document.getElementById(GTranslator.googleElement).innerHTML.length||
354358 0==c.length||0==c.innerHTML.length?setTimeout(function(){GTranslator.runTranslate(a,b)},500):(c.value=b,GTranslator.Event(c, \"change \"))}},GoogleInit:function(){new google.translate.TranslateElement({pageLanguage: \"{$ this ->siteLang }\",autoDisplay:!1},GTranslator.googleElement)},GoogleScript:function(){var b=document.createElement( \"script \");b.async=!0;b.type= \"text/javascript \";b.src= \"https://translate.google.com/translate_a/element.js?cb=GTranslator.GoogleInit \";var a=document.getElementsByTagName( \"script \")[0];a.parentNode.insertBefore(b,a)},Translate:function(a,b){ \"undefined \"!=typeof b&&
355359 b.value&&(b=b.value);if(!( \"\"==b||1>b.length)){var c=b.split( \"| \"),d=c[1];GTranslator.runTranslate(c[0],d); " ;
356360 if ($ this ->provider == self ::DEFAULT ){
@@ -366,7 +370,7 @@ function(a){a.preventDefault();GTranslator.toggle();GTranslator.toggleClass()};b
366370 }else if ($ this ->provider == self ::BOOTSTRAP ){
367371 $ JSScript .= "Init:function(){GTranslator.GoogleScript();null!=GTranslator.Current()&&document.querySelectorAll( \".drop-li \").forEach(function(a,b){GTranslator.Current()==a.firstChild.getAttribute( \"lang \")&&(GTranslator.GButton().innerHTML='<img alt= \"'+GTranslator.Current()+' \" src= \"{$ this ->iconPath }' + GTranslator.Current() + ' {$ this ->iconType }\"> '+a.firstChild.textContent)})}}; " ;
368372 }else if ($ this ->provider == self ::SELECT ){
369- $ JSScript .= "}},trigger: function(self){GTranslator.Translate(null, ' {$ this ->siteLang }|' + self.value);return false;},Init:function(){GTranslator.GoogleScript();}}; " ;
373+ $ JSScript .= "}},trigger: function(self){GTranslator.Translate(null, ' {$ this ->siteLang }|' + self.value);localStorage.setItem('siteLang', self.value);localStorage.setItem('changeLang', 1); return false;},Init:function(){GTranslator.GoogleScript();}}; " ;
370374 }
371375 $ JSScript .= "(function(){GTranslator.Init();document.body.classList.add('php-google-translator');})();</script> " ;
372376 return $ JSScript ;
0 commit comments