Skip to content

Commit dfa0976

Browse files
authored
Update GTranslator.php
1 parent 6a0090f commit dfa0976

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

src/GTranslator.php

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ private function selectorBootstrap(){
226226
$html = '<div class="language-selector">';
227227
$html .= '<div class="dropdown notranslate">';
228228
$html .= '<button class="btn btn-outline-gold dropdown-toggle" type="button" id="php-g-translator" data-bs-toggle="dropdown" aria-expanded="false">';
229-
$html .= '<img alt="' . $this->siteLang . '" src="' . $this->iconPath . $this->siteLang . $this->iconType . '" ' . $this->languages[$this->siteLang];
229+
$html .= '<img alt="' . $this->siteLang . '" src="' . $this->iconPath . $this->siteLang . $this->iconType . '"> ' . $this->languages[$this->siteLang];
230230
$html .= '</button>';
231231
$html .= ' <ul id="php-gt-languages" class="dropdown-menu" aria-labelledby="php-g-translator">';
232232
$html .= $this->buildLinks(true);
@@ -266,30 +266,30 @@ public function load(){
266266
* @return string|html|javascript $JSScript
267267
*/
268268
public function addScript(){
269-
$JSScript = "<script> var GTranslator = {OPTION_ACTIVE: false, Current: function() {var keyValue = document['cookie'].match('(^|;) ?googtrans=([^;]*)(;|$)'); return keyValue ? keyValue[2].split('/')[2] : '".$this->siteLang."';},Event: function(element,event){try{if(document.createEventObject){var evt=document.createEventObject();element.fireEvent('on'+event,evt);}else{var evt=document.createEvent('HTMLEvents'); evt.initEvent(event,true,true); element.dispatchEvent(evt);}}catch(e){console.log('GTranslator: ' + e);}},Translate: function(self, lang_pair) { if (typeof lang_pair != 'undefined'){ if(lang_pair.value){lang_pair = lang_pair.value;} } if (lang_pair == '' || lang_pair.length < 1){return;} var langs = lang_pair.split('|'); var from = langs[0]; var lang = langs[1]; GTranslator.runTranslate(from, lang);";
270-
if($this->provider == self::DEFAULT){
271-
$JSScript .= "document.getElementById('php-g-translator').innerHTML = '<img alt=\"' + lang + '\" src=\"{$this->iconPath}' + lang + '{$this->iconType}\"> ' + self.getAttribute('title') + '<span class=\"toggle-cert\"></span>';";
272-
}else if($this->provider == self::BOOTSTRAP){
273-
$JSScript .= "document.getElementById('php-g-translator').innerHTML = '<img alt=\"' + lang + '\" src=\"{$this->iconPath}' + lang + '{$this->iconType}\"> ' + self.getAttribute('title');";
274-
}
275-
$JSScript .= " },runTranslate: function(from, to) {if (GTranslator.Current() == null && lang == from){return;} var teCombo; var sel = document.getElementsByTagName('select');for (var i = 0; i < sel.length; i++){ if (/goog-te-combo/.test(sel[i].className)) { teCombo = sel[i]; break;} } if (document.getElementById('{$this->element}') == null || document.getElementById('{$this->element}').innerHTML.length == 0 || teCombo.length == 0 || teCombo.innerHTML.length == 0) {setTimeout(function() { GTranslator.runTranslate(from, to); }, 500);} else { teCombo.value = to;GTranslator.Event(teCombo, 'change');} },toggle: function() {var x = document.getElementById('php-gt-languages');if (x.style.display === 'none') {x.style.display = 'block'; setTimeout(function(){GTranslator.OPTION_ACTIVE = true;}, 500);} else { x.style.display = 'none';GTranslator.OPTION_ACTIVE = false;}},toggleClass: function() {var element = document.getElementById('php-g-translator');element.classList.toggle('open');},GoogleInit: function() {new google.translate.TranslateElement({pageLanguage: 'en', autoDisplay: false}, '{$this->element}');},GoogleScript: function(){var s1=document.createElement('script');s1.async=true;s1.type = 'text/javascript';s1.src='https://translate.google.com/translate_a/element.js?cb=GTranslator.GoogleInit';var s0 = document.getElementsByTagName('script')[0];s0.parentNode.insertBefore(s1, s0);},Init: function(){GTranslator.GoogleScript();var wheel = document.getElementById('php-gt-languages');document.getElementsByClassName('toggle-languages')[0].onclick = function(event) {event.preventDefault();GTranslator.toggle();GTranslator.toggleClass();}; wheel.addEventListener('wheel', function(event){if (window.getComputedStyle(wheel).display === 'block') { wheel.scrollTo({ top: wheel.scrollTop - (event.wheelDelta || -event.detail)}); } return false; }); document.querySelectorAll('body').forEach(function(ele, i){ele.addEventListener('click', function(event){ if(window.getComputedStyle(wheel).display === 'block' && GTranslator.OPTION_ACTIVE){ GTranslator.toggle(); GTranslator.toggleClass(); } }); });if(GTranslator.Current() != null){document.querySelectorAll('.drop-li').forEach(function(ele, i){if(GTranslator.Current() == ele.firstChild.getAttribute('lang')){";
276-
if($this->provider == self::DEFAULT){
277-
$JSScript .= "document.getElementById('php-g-translator').innerHTML = '<img alt=\"' + GTranslator.Current() + '\" src=\"{$this->iconPath}' + GTranslator.Current() + '{$this->iconType}\"> ' + ele.firstChild.textContent + '<span class=\"toggle-cert\"></span>';";
269+
$JSScript = "<script>var GTranslator = {siteLang: \"{$this->siteLang}\",googleElement: \"{$this->element}\",OPTION_ACTIVE: !1,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||
270+
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)},";
271+
if($this->provider == self::DEFAULT){
272+
$JSScript .= "Translate:function(b,a){\"undefined\"!=typeof a&&
273+
a.value&&(a=a.value);if(!(\"\"==a||1>a.length)){var c=a.split(\"|\"),d=c[1];GTranslator.runTranslate(c[0],d);document.getElementById(\"php-g-translator\").innerHTML='<img alt=\"'+d+'\" src=\"{$this->iconPath}'+d+'{$this->iconType}\"> '+b.getAttribute(\"title\")+'<span class=\"toggle-cert\"></span>'}},toggle:function(){var b=document.getElementById(\"php-gt-languages\");\"none\"===b.style.display?(b.style.display=\"block\",setTimeout(function(){GTranslator.OPTION_ACTIVE=!0},500)):(b.style.display=\"none\",GTranslator.OPTION_ACTIVE=!1)},toggleClass:function(){document.getElementById(\"php-g-translator\").classList.toggle(\"open\")},
274+
Init:function(){GTranslator.GoogleScript();var b=document.getElementById(\"php-gt-languages\");document.getElementsByClassName(\"toggle-languages\")[0].onclick=
275+
function(a){a.preventDefault();GTranslator.toggle();GTranslator.toggleClass()};b.addEventListener(\"wheel\",function(a){\"block\"===window.getComputedStyle(b).display&&b.scrollTo({top:b.scrollTop-(a.wheelDelta||-a.detail)});return!1});document.querySelectorAll(\"body\").forEach(function(a,c){a.addEventListener(\"click\",function(d){\"block\"===window.getComputedStyle(b).display&&GTranslator.OPTION_ACTIVE&&(GTranslator.toggle(),GTranslator.toggleClass())})});null!=GTranslator.Current()&&
276+
document.querySelectorAll(\".drop-li\").forEach(function(a,c){GTranslator.Current()==a.firstChild.getAttribute(\"lang\")&&(document.getElementById(\"php-g-translator\").innerHTML='<img alt=\"'+GTranslator.Current()+'\" src=\"{$this->iconPath}' + GTranslator.Current() + '{$this->iconType}\"> '+a.firstChild.textContent+'<span class=\"toggle-cert\"></span>')})}};";
278277
}else if($this->provider == self::BOOTSTRAP){
279-
$JSScript .= "document.getElementById('php-g-translator').innerHTML = '<img alt=\"' + GTranslator.Current() + '\" src=\"{$this->iconPath}' + GTranslator.Current() + '{$this->iconType}\"> ' + ele.firstChild.textContent;";
278+
$JSScript .= "Translate:function(a,b){\"undefined\"!=typeof b&&
279+
b.value&&(b=b.value);if(!(\"\"==b||1>b.length)){var c=b.split(\"|\"),d=c[1];GTranslator.runTranslate(c[0],d);document.getElementById(\"php-g-translator\").innerHTML='<img alt=\"'+d+'\" src=\"{$this->iconPath}'+d+'{$this->iconType}\"> '+a.getAttribute(\"title\")}},Init:function(){GTranslator.GoogleScript();null!=GTranslator.Current()&&document.querySelectorAll(\".drop-li\").forEach(function(a,b){GTranslator.Current()==a.firstChild.getAttribute(\"lang\")&&(document.getElementById(\"php-g-translator\").innerHTML='<img alt=\"'+GTranslator.Current()+'\" src=\"{$this->iconPath}' + GTranslator.Current() + '{$this->iconType}\"> '+a.firstChild.textContent)})}};";
280280
}
281-
$JSScript .= "}}); }}};(function(){GTranslator.Init(); })(); </script>";
282-
return $JSScript;
281+
$JSScript .= "(function(){GTranslator.Init()})();</script>";
282+
return $JSScript;
283283
}
284284

285285
/**
286286
* Returns css style-sheet for design
287287
* @return string|html|css $styleSheet
288288
*/
289289
private function addCss(){
290-
$styleSheet = " <style>body {top:0 !important;}#{$this->element} {display:none!important;}#goog-gt-tt {display:none !important;}.goog-te-banner-frame {display:none !important;} .goog-te-menu-value:hover {text-decoration:none !important;} .goog-text-highlight {background-color:transparent !important;box-shadow:none !important;} #php-g-translator img{height:16px;width:16px;}";
290+
$styleSheet = " <style> body{top:0 !important} #{$this->element}{display:none!important} #goog-gt-tt{display:none !important} .goog-te-banner-frame{display:none !important} .goog-te-menu-value:hover{text-decoration:none !important} .goog-text-highlight{background-color:transparent !important;box-shadow:none !important} #php-g-translator img{height:16px;width:16px}";
291291
if($this->provider == self::DEFAULT){
292-
$styleSheet .= ".g-translator-custom {position: relative;}.g-translator-custom .toggle-translator{font-family:Arial;font-size:10pt;text-align:left;cursor:pointer;overflow:hidden;width:170px;line-height:17px;position: absolute;right: 0;list-style-type: none;padding-left: 0px;}.g-translator-custom a {text-decoration:none;display:block;font-size:10pt;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}.g-translator-custom a img {vertical-align:middle;display:inline;border:0;padding:0;margin:0;opacity:0.8;}.g-translator-custom a:hover img{opacity:1;}.g-translator-custom .toggle-languages{background-color:#FFFFFF; position:relative; z-index:9999; cursor: pointer} .g-translator-custom .toggle-languages a{border:1px solid #CCCCCC;color:#666666;padding:3px 5px;}.g-translator-custom .toggle-cert{background-image: url(\"data:image/svg+xml,%3Csvg class='caret-down' width='12' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 1.5l-5 5-5-5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' stroke='%23000'%3E%3C/path%3E%3C/svg%3E\");background-repeat: no-repeat;background-position: center;padding:3px 5px;width: 12px;position: absolute;right: 0px;top: 0px;bottom: 0px;height: 22px;}.g-translator-custom .toggle-languages .open .toggle-cert{-moz-transform: scaleY(-1);-o-transform: scaleY(-1);-webkit-transform: scaleY(-1);transform: scaleY(-1);}.g-translator-custom .language-options{position:relative;border:1px solid #CCCCCC;background-color:#EEEEEE;display:none;width:auto;max-height:300px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;overflow-y:auto;overflow-x:hidden;z-index: 100;list-style-type: none;padding-left: 0px;}.g-translator-custom .language-options li{list-style-type: none;}.g-translator-custom .language-options a{background:#eee;color:#000;padding:5px 8px;} .g-translator-custom .language-options a:hover {background:#FFC;} .g-translator-custom .language-options::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,0.3);border-radius:5px;background-color:#F5F5F5;}.g-translator-custom .language-options::-webkit-scrollbar {width:5px;}.g-translator-custom .language-options::-webkit-scrollbar-thumb {border-radius:5px;-webkit-box-shadow: inset 0 0 3px rgba(0,0,0,.3);background-color:#888;}.g-translator-custom #php-g-translator img{margin-right:2px;}";
292+
$styleSheet .= ".g-translator-custom{position: relative} .g-translator-custom .toggle-translator{font-family:Arial;font-size:10pt;text-align:left;cursor:pointer;overflow:hidden;width:170px;line-height:17px;position: absolute;right: 0;list-style-type: none;padding-left: 0px} .g-translator-custom a{text-decoration:none;display:block;font-size:10pt;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box} .g-translator-custom a img{vertical-align:middle;display:inline;border:0;padding:0;margin:0;opacity:0.8} .g-translator-custom a:hover img{opacity:1} .g-translator-custom .toggle-languages{background-color:#FFFFFF; position:relative; z-index:9999; cursor: pointer} .g-translator-custom .toggle-languages a{border:1px solid #CCCCCC;color:#666666;padding:3px 5px} .g-translator-custom .toggle-cert{background-image: url(\"data:image/svg+xml,%3Csvg class='caret-down' width='12' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 1.5l-5 5-5-5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' stroke='%23000'%3E%3C/path%3E%3C/svg%3E\");background-repeat: no-repeat;background-position: center;padding:3px 5px;width: 12px;position: absolute;right: 0px;top: 0px;bottom: 0px;height: 22px} .g-translator-custom .toggle-languages .open .toggle-cert{-moz-transform: scaleY(-1);-o-transform: scaleY(-1);-webkit-transform: scaleY(-1);transform: scaleY(-1)} .g-translator-custom .language-options{position:relative;border:1px solid #CCCCCC;background-color:#EEEEEE;display:none;width:auto;max-height:300px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;overflow-y:auto;overflow-x:hidden;z-index: 100;list-style-type: none;padding-left: 0px} .g-translator-custom .language-options li{list-style-type: none} .g-translator-custom .language-options a{background:#eee;color:#000;padding:5px 8px} .g-translator-custom .language-options a:hover{background:#FFC} .g-translator-custom .language-options::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,0.3);border-radius:5px;background-color:#F5F5F5} .g-translator-custom .language-options::-webkit-scrollbar{width:5px} .g-translator-custom .language-options::-webkit-scrollbar-thumb{border-radius:5px;-webkit-box-shadow: inset 0 0 3px rgba(0,0,0,.3);background-color:#888} .g-translator-custom #php-g-translator img{margin-right:2px} ";
293293
}
294294
$styleSheet .= "</style>";
295295
return $styleSheet;

0 commit comments

Comments
 (0)