1 896
edições
Sem resumo de edição |
Sem resumo de edição |
||
| Linha 111: | Linha 111: | ||
}); | }); | ||
/* --- Tradutor | /* --- Tradutor Integrado com a API Oficial do MediaWiki --- */ | ||
mw.loader.using(['mediawiki.util']).then(function() { | |||
var defaultLang = 'pt'; | var defaultLang = 'pt'; | ||
// 1. | // 1. Carrega o Google Translate invisível | ||
$('body').append('<div id="google_translate_element" style="display:none;"></div>'); | $('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: defaultLang, | pageLanguage: defaultLang, | ||
includedLanguages: 'pt,en,es,pl', | includedLanguages: 'pt,en,es,pl', | ||
autoDisplay: false | autoDisplay: false | ||
}, 'google_translate_element'); | }, 'google_translate_element'); | ||
| Linha 200: | Linha 127: | ||
$.getScript("https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"); | $.getScript("https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"); | ||
// 2. | // 2. Adiciona os links no menu "Navegação" (p-navigation) usando a API nativa | ||
// Se preferir no menu "Ferramentas", troque 'p-navigation' por 'p-tb' | |||
var ptLink = mw.util.addPortletLink('p-navigation', '#', 'Português (Brasil)', 'n-lang-pt', 'Mudar para Português'); | |||
var enLink = mw.util.addPortletLink('p-navigation', '#', 'English', 'n-lang-en', 'Change to English'); | |||
var esLink = mw.util.addPortletLink('p-navigation', '#', 'Español', 'n-lang-es', 'Cambiar a Español'); | |||
var plLink = mw.util.addPortletLink('p-navigation', '#', 'Polski', 'n-lang-pl', 'Zmień na Polski'); | |||
// 3. | // 3. Prepara os links para o script de tradução | ||
$(ptLink).find('a').addClass('lang-btn').attr('data-lang', 'pt'); | |||
$(enLink).find('a').addClass('lang-btn').attr('data-lang', 'en'); | |||
$(' | $(esLink).find('a').addClass('lang-btn').attr('data-lang', 'es'); | ||
$(plLink).find('a').addClass('lang-btn').attr('data-lang', 'pl'); | |||
// 4. Lógica para | // 4. Lógica de clique para traduzir | ||
$(document).on('click', '.lang-btn', function(e) { | $(document).on('click', '.lang-btn', function(e) { | ||
e.preventDefault(); | e.preventDefault(); | ||
var targetLang = $(this). | var targetLang = $(this).attr('data-lang'); | ||
var select = document.querySelector('.goog-te-combo'); | var select = document.querySelector('.goog-te-combo'); | ||
// | // Retorna ao original (PT) | ||
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 233: | Linha 154: | ||
} | } | ||
// Aciona | // Aciona o Google Translate | ||
if (select) { | if (select) { | ||
select.value = targetLang; | select.value = targetLang; | ||
select.dispatchEvent(new Event('change')); | select.dispatchEvent(new Event('change')); | ||
} else { | } else { | ||
alert('O | alert('O tradutor está carregando. Aguarde um segundo e tente novamente.'); | ||
} | } | ||
}); | }); | ||
}); | }); | ||