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 118: Linha 118:




/* --- Tradutor na Barra Lateral (Compatível com ECMAScript 5) --- */
/* --- Tradutor no TOPO da Barra Lateral com Bandeiras (ES5) --- */
$(document).ready(function() {
$(document).ready(function() {
     var defaultLang = 'pt';
     var defaultLang = 'pt';
Linha 135: Linha 135:
     }
     }


     // 2. Procura a barra lateral
     // 2. Injeta o menu com as bandeiras ANTES do menu principal de Navegação
    var sidebar = $('#mw-panel');
     if ($('#p-lang-custom').length === 0) {
    if (sidebar.length === 0) sidebar = $('#vector-main-menu');
         var menuHTML = '<nav class="portal vector-menu vector-menu-portal" id="p-lang-custom">' +
    if (sidebar.length === 0) sidebar = $('#mw-site-navigation');
    if (sidebar.length === 0) sidebar = $('#column-one');
 
    // 3. Injeta o menu usando concatenação de strings clássica (ES5)
     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;">' +
             '<h3 class="vector-menu-heading" style="padding-left:14px; font-size:1em; color:#54595d; margin-top:10px;">' +
                 '<span>Idiomas</span>' +
                 '<span>Idiomas</span>' +
Linha 149: Linha 143:
             '<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" style="text-decoration:none;">🇧🇷 Português</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" style="text-decoration:none;">🇺🇸 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" style="text-decoration:none;">🇪🇸 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" style="text-decoration:none;">🇵🇱 Polski</a></li>' +
                 '</ul>' +
                 '</ul>' +
             '</div>' +
             '</div>' +
         '</div>';
         '</nav>';
          
          
         sidebar.append(menuHTML);
         // Procura o menu "Navegação" e insere o de idiomas logo ACIMA dele
        if ($('#p-navigation').length > 0) {
            $('#p-navigation').before(menuHTML);
        } else {
            // Plano B de segurança, caso a página carregue diferente
            $('#mw-panel').prepend(menuHTML);
        }
     }
     }


     // 4. Lógica de tradução adaptada para navegadores/sistemas mais restritos
     // 3. Lógica de tradução
     $(document).on('click', '.lang-btn', function(e) {
     $(document).on('click', '.lang-btn', function(e) {
         e.preventDefault();
         e.preventDefault();
Linha 175: Linha 175:
         if (select) {
         if (select) {
             select.value = targetLang;
             select.value = targetLang;
            // Dispara o evento de forma compatível com ES5
             var event;
             var event;
             if (typeof Event === 'function') {
             if (typeof Event === 'function') {