MediaWiki:Common.js: Difference between revisions

Created page with "Any JavaScript here will be loaded for all users on every page load.: mw.hook('wikipage.content').add(function () { console.log("[Language Menu] Script started"); var path = mw.config.get("wgPageName"); console.log("[Language Menu] Current path:", path); var currentLang = ''; var base = path; var langs = ['pt', 'en', 'es']; // Detecta idioma pelo sufixo langs.forEach(function (lang) { var suffix = '/' + lang; if (path.toLowerCase().endsWit..."
 
No edit summary
Line 23: Line 23:
   if (!currentLang) currentLang = 'en';
   if (!currentLang) currentLang = 'en';


   // Labels e links
   // Labels
   var labels = {
   var labels = {
     'pt': 'Português',
     'pt': 'Português',
Line 30: Line 30:
   };
   };


   var links = {};
  // Links por padrão (apenas adiciona /lang)
   var links = {
    'pt': base + '/pt',
    'en': base,          // inglês é sempre sem sufixo
    'es': base + '/es'
  };
 
  // Corrige nomes da página principal
   if (base === 'Main_Page' || base === 'Página_principal') {
   if (base === 'Main_Page' || base === 'Página_principal') {
     links = {
     links = {
       'pt': 'Página_principal/pt',
       'pt': 'Main_Page/pt',
       'en': 'Main_Page',     // inglês é base
       'en': 'Main_Page',
       'es': 'Main_Page/es'
       'es': 'Main_Page/es'
    };
  } else {
    links = {
      'pt': base + '/pt',
      'en': base,            // inglês é sem sufixo
      'es': base + '/es'
     };
     };
   }
   }
Line 53: Line 54:
       el.textContent = labels[lang];
       el.textContent = labels[lang];
     } else {
     } else {
       el.innerHTML = '<a class="lang-menu-link" href="' + mw.util.getUrl(links[lang]) + '">' + labels[lang] + '</a>';
       el.innerHTML = '<a class="lang-menu-link" href="' +
        mw.util.getUrl(links[lang]) + '">' + labels[lang] + '</a>';
     }
     }
   }
   }