Skip to content

Commit e1d3979

Browse files
authored
Update GTranslator.php
1 parent b92d3d7 commit e1d3979

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/GTranslator.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)