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

Ir para navegação Ir para pesquisar
sem sumário de edição
(Desfeita a edição 33697 de Felipeaugusto (Discussão))
Etiqueta: Desfazer
Sem resumo de edição
Linha 184: Linha 184:
});
});


// --- SISTEMA DE BANDEIRAS DE IDIOMA ---
// --- SISTEMA DE BANDEIRAS, CACHE E REDIRECIONAMENTO ---
mw.loader.using(['mediawiki.util']).then(function() {
mw.loader.using(['mediawiki.util']).then(function() {
     var pageName = mw.config.get('wgPageName');
     var pageName = mw.config.get('wgPageName');
      
      
     // Remove o /en, /es ou /pl do nome da página atual para saber qual é a página "base"
     // 1. Identifica em qual idioma o jogador está agora (pela URL)
    var match = pageName.match(/\/(en|es|pl)$/);
    var urlLang = match ? match[1] : 'pt'; // Se não tem sufixo, assumimos PT
     var basePageName = pageName.replace(/\/(en|es|pl)$/, '');  
     var basePageName = pageName.replace(/\/(en|es|pl)$/, '');  


     // Monta os links usando a URL correta da sua wiki e força a tradução da interface (?uselang=)
     // 2. Lógica de Redirecionamento Automático
    if (urlLang === 'pt') { // Só redireciona se ele tentar acessar a página raiz (em português)
       
        // Tenta pegar o idioma salvo. Se não tiver, pega o idioma nativo do Google Chrome/PC dele
        var prefLang = localStorage.getItem('otp_lang');
        if (!prefLang) {
            var browserLang = navigator.language || navigator.userLanguage;
            if (browserLang.startsWith('en')) prefLang = 'en';
            else if (browserLang.startsWith('es')) prefLang = 'es';
            else if (browserLang.startsWith('pl')) prefLang = 'pl';
        }
 
        // Se a preferência dele for estrangeira, manda ele pra página traduzida instantaneamente!
        if (prefLang && ['en', 'es', 'pl'].includes(prefLang)) {
            var redirectUrl = mw.util.getUrl(basePageName + '/' + prefLang) + '?uselang=' + prefLang;
            window.location.replace(redirectUrl);
            return; // Para o script aqui para não carregar mais nada
        }
    }
 
    // 3. Monta as URLs para as bandeiras
     var urlPT = mw.util.getUrl(basePageName) + '?uselang=pt-br';
     var urlPT = mw.util.getUrl(basePageName) + '?uselang=pt-br';
     var urlEN = mw.util.getUrl(basePageName + '/en') + '?uselang=en';
     var urlEN = mw.util.getUrl(basePageName + '/en') + '?uselang=en';
Linha 197: Linha 219:
     var urlPL = mw.util.getUrl(basePageName + '/pl') + '?uselang=pl';
     var urlPL = mw.util.getUrl(basePageName + '/pl') + '?uselang=pl';


     // Cria o HTML das bandeiras (agora com a Polónia)
     // Cria o HTML adicionando um "ID" para cada bandeira
     var flags = '<div id="wiki-flags" style="text-align:center; padding:15px 0 5px 0; margin-bottom:10px;">' +
     var flags = '<div id="wiki-flags" style="text-align:center; padding:15px 0 5px 0; margin-bottom:10px;">' +
         '<a href="' + urlPT + '" style="font-size:28px; margin:0 5px; text-decoration:none;" title="Português">🇧🇷</a>' +
         '<a href="' + urlPT + '" id="flag-pt" style="font-size:26px; margin:0 4px; text-decoration:none; display:inline-block; padding:3px;" title="Português">🇧🇷</a>' +
         '<a href="' + urlEN + '" style="font-size:28px; margin:0 5px; text-decoration:none;" title="English">🇺🇸</a>' +
         '<a href="' + urlEN + '" id="flag-en" style="font-size:26px; margin:0 4px; text-decoration:none; display:inline-block; padding:3px;" title="English">🇺🇸</a>' +
         '<a href="' + urlES + '" style="font-size:28px; margin:0 5px; text-decoration:none;" title="Español">🇪🇸</a>' +
         '<a href="' + urlES + '" id="flag-es" style="font-size:26px; margin:0 4px; text-decoration:none; display:inline-block; padding:3px;" title="Español">🇪🇸</a>' +
         '<a href="' + urlPL + '" style="font-size:28px; margin:0 5px; text-decoration:none;" title="Polski">🇵🇱</a>' +
         '<a href="' + urlPL + '" id="flag-pl" style="font-size:26px; margin:0 4px; text-decoration:none; display:inline-block; padding:3px;" title="Polski">🇵🇱</a>' +
         '</div>';
         '</div>';


     // Injeta as bandeiras bem no topo da barra lateral
     // Injeta as bandeiras na barra lateral
     $('#mw-panel').prepend(flags);
     $('#p-navigation').before(flags);
 
    // 4. Aplica a classe CSS (borda/brilho) na bandeira do idioma atual
    $('#flag-' + urlLang).addClass('flag-ativa');
 
    // 5. Salva a escolha no PC do jogador quando ele clica em uma bandeira
    $('#wiki-flags a').on('click', function() {
        var clickedLang = $(this).attr('id').replace('flag-', '');
        localStorage.setItem('otp_lang', clickedLang);
    });
});
});

Menu de navegação