1 896
edições
Sem resumo de edição |
Sem resumo de edição |
||
| Linha 184: | Linha 184: | ||
}); | }); | ||
/* | /* --- Tradutor na Barra Lateral (mw-panel) --- */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
var defaultLang = 'pt'; // Idioma base | |||
var | |||
// | // 1. Cria o container do Google Translate oculto no corpo da página | ||
$('body').append('<div id="google_translate_element" style="display:none;"></div>'); | |||
$(' | |||
window.googleTranslateElementInit = function() { | window.googleTranslateElementInit = function() { | ||
new google.translate.TranslateElement({ | new google.translate.TranslateElement({ | ||
pageLanguage: 'pt', // | pageLanguage: defaultLang, | ||
includedLanguages: 'pt,en,es,pl', // Carrega APENAS os idiomas que você pediu | |||
autoDisplay: false | autoDisplay: false | ||
}, 'google_translate_element'); | }, 'google_translate_element'); | ||
}; | }; | ||
$.getScript("https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"); | |||
// | // 2. Cria o menu lateral usando as classes nativas do MediaWiki para ficar idêntico aos outros menus | ||
$. | var sidebarMenu = ` | ||
<div class="portal" role="navigation" id="p-lang-custom" aria-labelledby="p-lang-custom-label"> | |||
<h3 id="p-lang-custom-label">Idiomas</h3> | |||
<div class="body"> | |||
<ul> | |||
<li id="n-lang-pt"><a href="#" class="lang-btn" data-lang="pt">Português (Brasil)</a></li> | |||
<li id="n-lang-en"><a href="#" class="lang-btn" data-lang="en">English</a></li> | |||
<li id="n-lang-es"><a href="#" class="lang-btn" data-lang="es">Español</a></li> | |||
<li id="n-lang-pl"><a href="#" class="lang-btn" data-lang="pl">Polski</a></li> | |||
</ul> | |||
</div> | |||
</div>`; | |||
// 3. Insere o menu na barra lateral esquerda (#mw-panel). | |||
// Usamos 'append' para colocar no final da barra. | |||
// Se quiser logo abaixo do menu principal, troque $('#mw-panel').append por $('#p-navigation').after | |||
$('#mw-panel').append(sidebarMenu); | |||
// 4. Lógica para acionar a tradução ao clicar nos links | |||
$(document).on('click', '.lang-btn', function(e) { | |||
e.preventDefault(); | |||
var targetLang = $(this).data('lang'); | |||
var select = document.querySelector('.goog-te-combo'); | |||
// Se clicar em Português, limpa o tradutor e volta ao original | |||
if (targetLang === defaultLang) { | |||
document.cookie = "googtrans=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; | |||
document.cookie = "googtrans=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=" + location.hostname + ";"; | |||
location.reload(); | |||
return; | |||
} | |||
// Aciona a tradução para os outros idiomas | |||
if (select) { | |||
select.value = targetLang; | |||
select.dispatchEvent(new Event('change')); | |||
} else { | |||
alert('O sistema de tradução está carregando. Por favor, aguarde um instante e tente novamente.'); | |||
} | |||
}); | |||
}); | }); | ||