MediaWiki:Common.js: mudanças entre as edições

sem sumário de edição
Sem resumo de edição
Sem resumo de edição
Linha 184: Linha 184:
});
});


/* Adiciona o Google Translate ao menu pessoal no topo (Skin Vector) */
/* --- Tradutor na Barra Lateral (mw-panel) --- */
$(document).ready(function() {
$(document).ready(function() {
    // Cria o container para o Google Translate
     var defaultLang = 'pt'; // Idioma base
     var translateDiv = $('<div id="google_translate_element"></div>');


     // Insere o container no menu de ferramentas de usuário (canto superior direito)
     // 1. Cria o container do Google Translate oculto no corpo da página
    // Se quiser na barra lateral, mude '#p-personal ul' para '#p-navigation ul'
     $('body').append('<div id="google_translate_element" style="display:none;"></div>');
     $('#p-personal ul').prepend($('<li id="pt-translate"></li>').append(translateDiv));


    // Define a função de inicialização do Google
     window.googleTranslateElementInit = function() {
     window.googleTranslateElementInit = function() {
         new google.translate.TranslateElement({
         new google.translate.TranslateElement({
             pageLanguage: 'pt', // Mude para o idioma base do seu wiki (ex: 'en' para inglês)
             pageLanguage: defaultLang,
            layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
            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");


     // Carrega o script oficial do Google Translate
     // 2. Cria o menu lateral usando as classes nativas do MediaWiki para ficar idêntico aos outros menus
     $.getScript("//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit");
    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.');
        }
    });
});
});