MediaWiki:Common.js

Da Wikiliscio.

Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
  • Opera: premi Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

console.log('Common.js')

// CODICE PER IL TRANSLATE BUTTON
mw.loader.using('mediawiki.util', function() {
    console.log("Common.js loading custom functions");

    function addTranslateButton() {
        // Trova l'ul con la classe 'vector-menu-content-list' figlio di 'p-views'
        var pCactions = $('#p-cactions .vector-menu-content-list');
        if (pCactions.length) {
            console.log("p-views list found");

            // Ottieni la lingua del browser
            var userLang = navigator.language || navigator.userLanguage;
            var targetLanguage = userLang.split('-')[0]; // Prendi solo la parte principale della lingua (es. "it" da "it-IT")

            // Crea il collegamento per la traduzione
            var translateLink = $('<a>', {
                href: '#',
                text: 'Traduci Pagina',
                id: 'translate-page-link',
                click: function(event) {
                    event.preventDefault();
                    var currentUrl = window.location.href;
                    var translateUrl = "https://translate.google.com/translate?hl=&sl=auto&tl=" + targetLanguage + "&u=" + encodeURIComponent(currentUrl);
                    window.open(translateUrl, '_blank');
                    console.log("Link clicked, translating to: " + targetLanguage);
                }
            });

            // Crea l'elemento <li> con le classi specificate
            var translateListItem = $('<li>', {
                class: 'vector-tab-noicon mw-list-item'
            }).append(translateLink);

            // Aggiungi il nuovo <li> alla lista
            translateListItem.prependTo(pCactions);
            console.log("Translate link added to p-views list");

            // Pulisce l'intervallo una volta che il bottone è stato aggiunto
            clearInterval(intervalId);
        } else {
            console.log("p-views list not found, retrying...");
        }
    }

    // Controlla ogni 500ms fino a quando l'elemento non viene trovato
    var intervalId = setInterval(addTranslateButton, 500);
});