MediaWiki:Common.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição |
Sem resumo de edição |
||
| Linha 1: | Linha 1: | ||
// --- SISTEMA DE BANDEIRAS, CACHE E REDIRECIONAMENTO --- | |||
mw.loader.using(['mediawiki.util']).then(function() { | |||
var pageName = mw.config.get('wgPageName'); | |||
function | |||
mw. | |||
// 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)$/, ''); | |||
// 2. Lógica de Redirecionamento Automático | |||
var | 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 | |||
} | |||
var | |||
} | |||
} | } | ||
// 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 34: | ||
var urlPL = mw.util.getUrl(basePageName + '/pl') + '?uselang=pl'; | var urlPL = mw.util.getUrl(basePageName + '/pl') + '?uselang=pl'; | ||
// Cria o HTML | // 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: | '<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: | '<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: | '<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: | '<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 | // Injeta as bandeiras na barra lateral | ||
$('# | $('#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); | |||
}); | |||
}); | }); | ||
Edição das 16h16min de 5 de março de 2026
// --- SISTEMA DE BANDEIRAS, CACHE E REDIRECIONAMENTO ---
mw.loader.using(['mediawiki.util']).then(function() {
var pageName = mw.config.get('wgPageName');
// 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)$/, '');
// 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 urlEN = mw.util.getUrl(basePageName + '/en') + '?uselang=en';
var urlES = mw.util.getUrl(basePageName + '/es') + '?uselang=es';
var urlPL = mw.util.getUrl(basePageName + '/pl') + '?uselang=pl';
// 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;">' +
'<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 + '" id="flag-en" style="font-size:26px; margin:0 4px; text-decoration:none; display:inline-block; padding:3px;" title="English">🇺🇸</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 + '" id="flag-pl" style="font-size:26px; margin:0 4px; text-decoration:none; display:inline-block; padding:3px;" title="Polski">🇵🇱</a>' +
'</div>';
// Injeta as bandeiras na barra lateral
$('#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);
});
});