Widget:Droflax

De Wiki Gla
Revisão de 00h11min de 1 de julho de 2025 por Droflax (discussão | contribs)
Ir para navegação Ir para pesquisar

<script> mw.loader.using(['jquery'], function () {

 $(function () {
   const langs = ['pt', 'en', 'es', 'pl'];
   const langFlags = {
     pt: 'https://upload.wikimedia.org/wikipedia/en/0/05/Flag_of_Brazil.svg',
     en: 'https://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg',
     es: 'https://upload.wikimedia.org/wikipedia/en/9/9a/Flag_of_Spain.svg',
     pl: 'https://upload.wikimedia.org/wikipedia/en/1/12/Flag_of_Poland.svg'
   };
   const currentTitle = mw.config.get('wgPageName');
   const baseTitle = currentTitle.replace(/\/(pt|en|es|pl)$/, );
   const currentLang = currentTitle.match(/\/(pt|en|es|pl)$/)?.[1] || 'pt';
   const preferedLang = localStorage.getItem('preferedLang');
   const alreadyInLang = currentLang === preferedLang;
   const redirected = sessionStorage.getItem('langRedirectDone');
   if (preferedLang && !alreadyInLang && !redirected) {
     const targetTitle = baseTitle + (preferedLang === 'pt' ?  : '/' + preferedLang);
     sessionStorage.setItem('langRedirectDone', '1');
     window.location.href = mw.util.getUrl(targetTitle);
     return;
   }

const $container = $('

').addClass('language-buttons').css({
     position: 'fixed',
     top: '20px',
     right: '20px',
     display: 'flex',
     gap: '8px',
     background: '#ffffffcc',
     padding: '6px 10px',
     borderRadius: '8px',
     boxShadow: '0 0 6px rgba(0,0,0,0.2)',
     zIndex: 999
   });
   langs.forEach(lang => {
     const pageTitle = baseTitle + (lang === 'pt' ?  : '/' + lang);
     const $link = $('<a>')
       .attr('href', mw.util.getUrl(pageTitle))
       .attr('title', lang.toUpperCase())
       .on('click', function () {
         localStorage.setItem('preferedLang', lang);
         sessionStorage.removeItem('langRedirectDone');
       });
     const $img = $('<img>')
       .attr('src', langFlags[lang])
       .css({
         width: '32px',
         height: '24px',
         borderRadius: '6px',
         border: lang === currentLang ? '2px solid #333' : '1px solid #ccc',
         transition: 'transform 0.2s',
         objectFit: 'cover'
       })
       .hover(
         function () { $(this).css('transform', 'scale(1.1)'); },
         function () { $(this).css('transform', 'scale(1)'); }
       );
     $link.append($img);
     $container.append($link);
   });
   $('body').append($container);
 });

}); </script>