Skip to content

Commit 5e4e8d3

Browse files
authored
Update GTranslator.php
1 parent 669186d commit 5e4e8d3

File tree

1 file changed

+15
-175
lines changed

1 file changed

+15
-175
lines changed

src/GTranslator.php

Lines changed: 15 additions & 175 deletions
Original file line numberDiff line numberDiff line change
@@ -266,152 +266,19 @@ public function load(){
266266
* @return string|html|javascript $JSScript
267267
*/
268268
public function addScript(){
269-
$JSScript = "<script>
270-
var GTranslator = {
271-
OPTION_ACTIVE: false,
272-
Current: function() {
273-
var keyValue = document['cookie'].match('(^|;) ?googtrans=([^;]*)(;|$)'); return keyValue ? keyValue[2].split('/')[2] : '".$this->siteLang."';
274-
},
275-
276-
Event: function(element,event){
277-
try{
278-
if(document.createEventObject){
279-
var evt=document.createEventObject();element.fireEvent('on'+event,evt)
280-
}else{
281-
var evt=document.createEvent('HTMLEvents');
282-
evt.initEvent(event,true,true);
283-
element.dispatchEvent(evt);
284-
}
285-
}catch(e){
286-
console.log('GTranslator: ' + e);
287-
}
288-
},
289-
290-
Translate: function(self, lang_pair) {
291-
if (typeof lang_pair != 'undefined'){
292-
if(lang_pair.value){
293-
lang_pair = lang_pair.value;
294-
}
295-
}
296-
297-
if (lang_pair == '' || lang_pair.length < 1){
298-
return;
299-
}
300-
301-
var langs = lang_pair.split('|');
302-
var from = langs[0];
303-
var lang = langs[1];
304-
GTranslator.runTranslate(from, lang);";
305-
306-
if($this->provider == self::DEFAULT){
307-
$JSScript .= "document.getElementById('php-g-translator').innerHTML = '<img alt=\"' + lang + '\" src=\"{$this->iconPath}' + lang + '{$this->iconType}\"> ' + self.getAttribute('title') + '<span class=\"toggle-cert\"></span>';";
308-
}else if($this->provider == self::BOOTSTRAP){
309-
$JSScript .= "document.getElementById('php-g-translator').innerHTML = '<img alt=\"' + lang + '\" src=\"{$this->iconPath}' + lang + '{$this->iconType}\"> ' + self.getAttribute('title');";
310-
}
311-
$JSScript .= " },
312-
313-
runTranslate: function(from, to) {
314-
315-
if (GTranslator.Current() == null && lang == from){
316-
return;
317-
}
318-
319-
var teCombo;
320-
var sel = document.getElementsByTagName('select');
321-
for (var i = 0; i < sel.length; i++){
322-
if (/goog-te-combo/.test(sel[i].className)) {
323-
teCombo = sel[i];
324-
break;
325-
}
326-
}
327-
328-
if (document.getElementById('{$this->element}') == null || document.getElementById('{$this->element}').innerHTML.length == 0 || teCombo.length == 0 || teCombo.innerHTML.length == 0) {
329-
setTimeout(function() {
330-
GTranslator.runTranslate(from, to)
331-
}, 500)
332-
} else {
333-
teCombo.value = to;
334-
GTranslator.Event(teCombo, 'change');
335-
}
336-
},
337-
338-
toggle: function() {
339-
var x = document.getElementById('php-gt-languages');
340-
if (x.style.display === 'none') {
341-
x.style.display = 'block';
342-
setTimeout(function(){
343-
GTranslator.OPTION_ACTIVE = true;
344-
}, 500);
345-
} else {
346-
x.style.display = 'none';
347-
GTranslator.OPTION_ACTIVE = false;
348-
}
349-
},
350-
351-
toggleClass: function() {
352-
var element = document.getElementById('php-g-translator');
353-
element.classList.toggle('open');
354-
},
355-
356-
GoogleInit: function() {
357-
new google.translate.TranslateElement({pageLanguage: 'en', autoDisplay: false}, '{$this->element}');
358-
},
359-
360-
GoogleScript: function(){
361-
var s1=document.createElement('script');
362-
s1.async=true;
363-
s1.type = 'text/javascript';
364-
s1.src='https://translate.google.com/translate_a/element.js?cb=GTranslator.GoogleInit';
365-
var s0 = document.getElementsByTagName('script')[0];
366-
s0.parentNode.insertBefore(s1, s0);
367-
},
368-
369-
Init: function(){
370-
GTranslator.GoogleScript();
371-
var wheel = document.getElementById('php-gt-languages');
372-
document.getElementsByClassName('toggle-languages')[0].onclick = function(event) {
373-
event.preventDefault();
374-
GTranslator.toggle();
375-
GTranslator.toggleClass();
376-
};
377-
378-
wheel.addEventListener('wheel', function(event){
379-
if (window.getComputedStyle(wheel).display === 'block') {
380-
wheel.scrollTo({
381-
top: wheel.scrollTop - (event.wheelDelta || -event.detail)
382-
});
383-
}
384-
return false;
385-
});
386-
387-
document.querySelectorAll('body').forEach(function(ele, i){
388-
ele.addEventListener('click', function(event){
389-
if(window.getComputedStyle(wheel).display === 'block' && GTranslator.OPTION_ACTIVE){
390-
console.log('Is Open');
391-
GTranslator.toggle();
392-
GTranslator.toggleClass();
393-
}
394-
});
395-
});
396-
397-
if(GTranslator.Current() != null){
398-
document.querySelectorAll('.drop-li').forEach(function(ele, i){
399-
if(GTranslator.Current() == ele.firstChild.getAttribute('lang')){";
400-
if($this->provider == self::DEFAULT){
401-
$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>';";
402-
}else if($this->provider == self::BOOTSTRAP){
403-
$JSScript .= "document.getElementById('php-g-translator').innerHTML = '<img alt=\"' + GTranslator.Current() + '\" src=\"{$this->iconPath}' + GTranslator.Current() + '{$this->iconType}\"> ' + ele.firstChild.textContent;";
404-
}
405-
$JSScript .= "}
406-
});
407-
}
408-
}
409-
};
410-
411-
(function(){
412-
GTranslator.Init();
413-
})();
414-
</script>";
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>';";
278+
}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;";
280+
}
281+
$JSScript .= "}}); }}};(function(){GTranslator.Init(); })(); </script>";
415282
return $JSScript;
416283
}
417284

@@ -420,36 +287,9 @@ public function addScript(){
420287
* @return string|html|css $styleSheet
421288
*/
422289
private function addCss(){
423-
$styleSheet = " <style>
424-
body {top:0 !important;}
425-
#{$this->element} {display:none!important;}
426-
#goog-gt-tt {display:none !important;}
427-
.goog-te-banner-frame {display:none !important;}
428-
.goog-te-menu-value:hover {text-decoration:none !important;}
429-
.goog-text-highlight {background-color:transparent !important;box-shadow:none !important;}
430-
#php-g-translator img{height:16px;width:16px;}
431-
";
432-
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;}";
433291
if($this->provider == self::DEFAULT){
434-
$styleSheet .= "
435-
.g-translator-custom {position: relative;}
436-
.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;}
437-
.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;}
438-
.g-translator-custom a img {vertical-align:middle;display:inline;border:0;padding:0;margin:0;opacity:0.8;}
439-
.g-translator-custom a:hover img{opacity:1;}
440-
.g-translator-custom .toggle-languages{background-color:#FFFFFF; position:relative; z-index:9999; cursor: pointer}
441-
.g-translator-custom .toggle-languages a{border:1px solid #CCCCCC;color:#666666;padding:3px 5px;}
442-
.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;}
443-
.g-translator-custom .toggle-languages .open .toggle-cert{-moz-transform: scaleY(-1);-o-transform: scaleY(-1);-webkit-transform: scaleY(-1);transform: scaleY(-1);}
444-
.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;}
445-
.g-translator-custom .language-options li{list-style-type: none;}
446-
.g-translator-custom .language-options a{background:#eee;color:#000;padding:5px 8px;}
447-
.g-translator-custom .language-options a:hover {background:#FFC;}
448-
.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;}
449-
.g-translator-custom .language-options::-webkit-scrollbar {width:5px;}
450-
.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;}
451-
.g-translator-custom #php-g-translator img{margin-right:2px;}
452-
";
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;}";
453293
}
454294
$styleSheet .= "</style>";
455295
return $styleSheet;

0 commit comments

Comments
 (0)