1 896
edições
Sem resumo de edição |
Sem resumo de edição |
||
| Linha 113: | Linha 113: | ||
/* --- Tradutor Integrado com a API Oficial do MediaWiki --- */ | /* --- Tradutor Integrado com a API Oficial do MediaWiki --- */ | ||
/* --- Tradutor na Barra Lateral (Compatível com Múltiplos Temas) --- */ | |||
$(document).ready(function() { | |||
var defaultLang = 'pt'; | var defaultLang = 'pt'; | ||
// 1. Carrega o Google Translate invisível | // 1. Carrega o Google Translate invisível (apenas se ainda não existir) | ||
$('body').append('<div id="google_translate_element" style="display:none;"></div>'); | if ($('#google_translate_element').length === 0) { | ||
$('body').append('<div id="google_translate_element" style="display:none;"></div>'); | |||
window.googleTranslateElementInit = function() { | |||
new google.translate.TranslateElement({ | |||
pageLanguage: defaultLang, | |||
includedLanguages: 'pt,en,es,pl', | |||
autoDisplay: false | |||
}, 'google_translate_element'); | |||
}; | |||
$.getScript("https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"); | |||
} | |||
// 2. | // 2. Rastreador de Barra Lateral: Procura onde colocar o menu dependendo do seu tema | ||
var sidebar = $('#mw-panel'); // Tema Vector Clássico | |||
var | if (sidebar.length === 0) sidebar = $('#vector-main-menu'); // Tema Vector 2022 | ||
if (sidebar.length === 0) sidebar = $('#mw-site-navigation'); // Tema Timeless | |||
if (sidebar.length === 0) sidebar = $('#column-one'); // Tema Monobook | |||
// 3. | // 3. Injeta o menu "Idiomas" se a barra for encontrada | ||
if (sidebar.length > 0 && $('#p-lang-custom').length === 0) { | |||
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;"> | |||
<span>Idiomas</span> | |||
</h3> | |||
<div class="body vector-menu-content"> | |||
<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-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-pl" style="margin-bottom:4px;"><a href="#" class="lang-btn" data-lang="pl">Polski</a></li> | |||
</ul> | |||
</div> | |||
</div>`; | |||
sidebar.append(menuHTML); | |||
} else { | |||
console.error("ERRO: Barra lateral não encontrada. O script do tradutor não conseguiu achar onde se ancorar."); | |||
} | |||
// 4. Lógica de | // 4. Lógica de tradução | ||
$(document).on('click', '.lang-btn', function(e) { | $(document).on('click', '.lang-btn', function(e) { | ||
e.preventDefault(); | e.preventDefault(); | ||
| Linha 146: | Linha 163: | ||
var select = document.querySelector('.goog-te-combo'); | var select = document.querySelector('.goog-te-combo'); | ||
if (targetLang === defaultLang) { | 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=/;"; | ||
| Linha 154: | Linha 170: | ||
} | } | ||
if (select) { | if (select) { | ||
select.value = targetLang; | select.value = targetLang; | ||