1 896
edições
Sem resumo de edição |
Sem resumo de edição |
||
| Linha 112: | Linha 112: | ||
/* --- Tradutor na Barra Lateral (Compatível com | |||
/* --- Tradutor na Barra Lateral (Compatível com ECMAScript 5) --- */ | |||
$(document).ready(function() { | $(document).ready(function() { | ||
var defaultLang = 'pt'; | var defaultLang = 'pt'; | ||
// 1. Carrega o Google Translate invisível | // 1. Carrega o Google Translate invisível | ||
if ($('#google_translate_element').length === 0) { | if ($('#google_translate_element').length === 0) { | ||
$('body').append('<div id="google_translate_element" style="display:none;"></div>'); | $('body').append('<div id="google_translate_element" style="display:none;"></div>'); | ||
| Linha 130: | Linha 135: | ||
} | } | ||
// 2. | // 2. Procura a barra lateral | ||
var sidebar = $('#mw-panel'); | var sidebar = $('#mw-panel'); | ||
if (sidebar.length === 0) sidebar = $('#vector-main-menu'); | if (sidebar.length === 0) sidebar = $('#vector-main-menu'); | ||
if (sidebar.length === 0) sidebar = $('#mw-site-navigation'); | if (sidebar.length === 0) sidebar = $('#mw-site-navigation'); | ||
if (sidebar.length === 0) sidebar = $('#column-one'); | if (sidebar.length === 0) sidebar = $('#column-one'); | ||
// 3. Injeta o menu | // 3. Injeta o menu usando concatenação de strings clássica (ES5) | ||
if (sidebar.length > 0 && $('#p-lang-custom').length === 0) { | if (sidebar.length > 0 && $('#p-lang-custom').length === 0) { | ||
var menuHTML = | var menuHTML = '<div class="portal vector-menu vector-menu-portal" id="p-lang-custom">' + | ||
'<h3 class="vector-menu-heading" style="padding-left:14px; font-size:1em; color:#54595d; margin-top:10px;">' + | |||
<h3 class="vector-menu-heading" style="padding-left:14px; font-size:1em; color:#54595d; margin-top:10px;"> | '<span>Idiomas</span>' + | ||
<span>Idiomas</span> | '</h3>' + | ||
</h3> | '<div class="body vector-menu-content">' + | ||
<div class="body vector-menu-content"> | '<ul class="vector-menu-content-list" style="list-style:none; padding-left:14px; margin:0;">' + | ||
<ul class="vector-menu-content-list" style="list-style:none; padding-left:14px; margin:0;"> | '<li id="n-lang-pt" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="pt">Português (Brasil)</a></li>' + | ||
<li id="n-lang-pt" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="pt">Português (Brasil)</a></li> | '<li id="n-lang-en" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="en">English</a></li>' + | ||
<li id="n-lang-en" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="en">English</a></li> | '<li id="n-lang-es" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="es">Español</a></li>' + | ||
<li id="n-lang-es" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="es">Español</a></li> | '<li id="n-lang-pl" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="pl">Polski</a></li>' + | ||
<li id="n-lang-pl" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="pl">Polski</a></li> | '</ul>' + | ||
</ul> | '</div>' + | ||
</div> | '</div>'; | ||
</div> | |||
sidebar.append(menuHTML); | sidebar.append(menuHTML); | ||
} | } | ||
// 4. Lógica de tradução | // 4. Lógica de tradução adaptada para navegadores/sistemas mais restritos | ||
$(document).on('click', '.lang-btn', function(e) { | $(document).on('click', '.lang-btn', function(e) { | ||
e.preventDefault(); | e.preventDefault(); | ||
| Linha 172: | Linha 175: | ||
if (select) { | if (select) { | ||
select.value = targetLang; | select.value = targetLang; | ||
// Dispara o evento de forma compatível com ES5 | |||
var event; | |||
if (typeof Event === 'function') { | |||
event = new Event('change'); | |||
} else { | |||
event = document.createEvent('HTMLEvents'); | |||
event.initEvent('change', true, false); | |||
} | |||
select.dispatchEvent(event); | |||
} else { | } else { | ||
alert('O tradutor está carregando. Aguarde um segundo e tente novamente.'); | alert('O tradutor está carregando. Aguarde um segundo e tente novamente.'); | ||