Mudanças entre as edições de "Widget:Droflax"

De Wiki Gla
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
<script>
<script>
(function () {
mw.loader.using(['jquery'], function () {
   const langs = ['pt', 'en', 'es', 'pl'];
   $(function () {
  const langFlags = {
    const langs = ['pt', 'en', 'es', 'pl'];
    pt: 'https://upload.wikimedia.org/wikipedia/en/0/05/Flag_of_Brazil.svg',
    const langFlags = {
    en: 'https://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg',
      pt: 'https://upload.wikimedia.org/wikipedia/en/0/05/Flag_of_Brazil.svg',
    es: 'https://upload.wikimedia.org/wikipedia/en/9/9a/Flag_of_Spain.svg',
      en: 'https://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg',
    pl: 'https://upload.wikimedia.org/wikipedia/en/1/12/Flag_of_Poland.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'); // Ej: Chefões, Chefões/en
    const currentTitle = mw.config.get('wgPageName');
  const baseTitle = currentTitle.replace(/\/(pt|en|es|pl)$/, ''); // sin sufijo
    const baseTitle = currentTitle.replace(/\/(pt|en|es|pl)$/, '');
  const currentLang = currentTitle.match(/\/(pt|en|es|pl)$/)?.[1] || 'pt';
    const currentLang = currentTitle.match(/\/(pt|en|es|pl)$/)?.[1] || 'pt';


  // Redirección automática si se eligió un idioma anteriormente
    const preferedLang = localStorage.getItem('preferedLang');
  const preferedLang = localStorage.getItem('preferedLang');
    const alreadyInLang = currentLang === preferedLang;
  const alreadyInLang = currentLang === preferedLang;
    const redirected = sessionStorage.getItem('langRedirectDone');
  const redirected = sessionStorage.getItem('langRedirectDone');


  if (preferedLang && !alreadyInLang && !redirected) {
    if (preferedLang && !alreadyInLang && !redirected) {
    const targetTitle = baseTitle + (preferedLang === 'pt' ? '' : '/' + preferedLang);
      const targetTitle = baseTitle + (preferedLang === 'pt' ? '' : '/' + preferedLang);
    sessionStorage.setItem('langRedirectDone', '1');
      sessionStorage.setItem('langRedirectDone', '1');
    window.location.href = mw.util.getUrl(targetTitle);
      window.location.href = mw.util.getUrl(targetTitle);
    return;
      return;
  }
    }


  // Crear contenedor de botones
    const $container = $('<div>').addClass('language-buttons').css({
  const $container = $('<div>').addClass('language-buttons').css({
      position: 'fixed',
    position: 'fixed',
      top: '20px',
    top: '20px',
      right: '20px',
    right: '20px',
      display: 'flex',
    display: 'flex',
      gap: '8px',
    gap: '8px',
      background: '#ffffffcc',
    background: '#ffffffcc',
      padding: '6px 10px',
    padding: '6px 10px',
      borderRadius: '8px',
    borderRadius: '8px',
      boxShadow: '0 0 6px rgba(0,0,0,0.2)',
    boxShadow: '0 0 6px rgba(0,0,0,0.2)',
      zIndex: 999
    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');
        });


  langs.forEach(lang => {
      const $img = $('<img>')
    const pageTitle = baseTitle + (lang === 'pt' ? '' : '/' + lang);
        .attr('src', langFlags[lang])
    const $link = $('<a>')
        .css({
      .attr('href', mw.util.getUrl(pageTitle))
          width: '32px',
      .attr('title', lang.toUpperCase())
          height: '24px',
      .on('click', function () {
          borderRadius: '6px',
        localStorage.setItem('preferedLang', lang);
          border: lang === currentLang ? '2px solid #333' : '1px solid #ccc',
        sessionStorage.removeItem('langRedirectDone');
          transition: 'transform 0.2s',
      });
          objectFit: 'cover'
        })
        .hover(
          function () { $(this).css('transform', 'scale(1.1)'); },
          function () { $(this).css('transform', 'scale(1)'); }
        );


    const $img = $('<img>')
      $link.append($img);
       .attr('src', langFlags[lang])
       $container.append($link);
      .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);
     $('body').append($container);
    $container.append($link);
   });
   });
  $('body').append($container);
});
});
</script>
</script>

Edição das 00h11min de 1 de julho de 2025

<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>