MediaWiki:Gadget-tradLink.js
Vai alla navigazione
Vai alla ricerca
Nota: Dopo aver salvato le preferenze, perché i cambi abbiano effetto, devi bypassare la cache del tuo browser. Mozilla / Firefox / Safari: tieni premuto Shift mentre clicchi Reload, o premi Ctrl-Shift-R (Cmd-Shift-R per Apple Mac); Google Chrome: premi Ctrl o Shift mentre clicchi F5; IE: premi Ctrl mentre clicchi Refresh, o premi Ctrl-F5; Konqueror:: clicca semplicemente il pulsante di Reload, o premi F5; se usi Opera devi cancellare completamente la chache nel menu Tools→Preferences.
/* Considera il testo selezionato come il titolo di una voce straniera, e lo trasforma nel titolo dell'equivalente voce italiana * Autore : [[:it:User:Jalo]] * * Lo scriptcontiene funzioni (tradLink_showDialog e keypress) derivate da: * http://it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-tb-base.js&oldid=66478020 * scritto da [[:it:User:Rotpunkt]] */ // Show the dialog in order to ask for the template parameters. function tradLink_showDialog(data, page) { lingue = tradLink_getLingue(); var $dialog, $fieldset; // create the dialog html $dialog = $('#gtb-dialog').html("Inserire l'elenco delle lingue da utilizzare per il tool TradLink"); $fieldset = $('<fieldset>').css('border-color', 'gray').appendTo($dialog); $('<legend>').text("Elenco").appendTo($fieldset); count = 1; $.each(lingue, function (id, val) { $('<label>') .attr('for', id) .text("Alt+"+count + ': ') .appendTo($fieldset); $fieldset .append($('<input/>') .attr('id', id) .attr('type', 'text') .attr('size', 3) .attr('value', (val || ''))) .append('<br/>'); count++; }); // show the dialog var Buttons = new Object(); var OKText = 'OK'; var CancelText = 'Cancel'; Buttons[OKText] = function () { var params = []; count = 0; $dialog.find('input:text').each(function () { params[count++] = $.trim($(this).val()); }); lingue = params.join(); var d = new Date(); d.setTime(d.getTime() + (20*365*24*60*60*1000)); // 20 years var expires = "expires="+d.toUTCString(); document.cookie = "tradLinkLangs=" + lingue + "; " + expires; $(this).dialog('close'); }; Buttons[CancelText] = function () { $(this).dialog('close'); }; $dialog.dialog({ title: "Configurazione del tool TradLink", width: 300, resizable: false, modal: true, zIndex: 10000, buttons: Buttons }); } function tradLink_getLingue() { value = ""; var name = "tradLinkLangs="; var ca = document.cookie.split(';'); for(var i=0; i<ca.length; i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1); if (c.indexOf(name) == 0) value = c.substring(name.length,c.length); } if (value != "") { splitted = value.split(','); return [splitted[0], splitted[1], splitted[2], splitted[3], splitted[4], splitted[5], splitted[6], splitted[7], splitted[8]]; } else return ['en', 'nl', 'de', 'sv', 'fr', 'ru', 'es', 'war', 'vi']; } function tradLink_tradLink(cod) { lingue = tradLink_getLingue(); var toTrad = mw.html.escape($('#wpTextbox1').textSelection('getSelection')); var trad =""; $.getJSON("https://"+lingue[cod]+".wikipedia.org/w/api.php?callback=?", { action: "query", prop: "langlinks", lllang: "it", titles: toTrad, format: "json", redirects: "" }, function(data) { selStart = document.getElementById('wpTextbox1').selectionStart; selEnd = document.getElementById('wpTextbox1').selectionEnd; if (typeof(data)!="undefined" && typeof(data.query)!="undefined" && typeof(data.query.pages)!="undefined") { for (var key in data.query.pages) { if (typeof(data.query.pages[key])!="undefined" && typeof(data.query.pages[key].langlinks)!="undefined" && typeof(data.query.pages[key].langlinks[0])!="undefined" && typeof(data.query.pages[key].langlinks[0]["*"])!="undefined") { trad = data.query.pages[key].langlinks[0]["*"]; try { mw.html.escape($('#wpTextbox1').textSelection('encapsulateSelection', { pre: trad + "[", post: "]" })); } catch (err) {} document.getElementById('wpTextbox1').selectionStart = selStart + trad.length; document.getElementById('wpTextbox1').selectionEnd = selEnd + trad.length + 2; return; } } } try { mw.html.escape($('#wpTextbox1').textSelection('encapsulateSelection', { pre: "", post: "[NO LINK]" })); } catch (err) {} document.getElementById('wpTextbox1').selectionStart = selEnd; document.getElementById('wpTextbox1').selectionEnd = selEnd + 9; }); } // setup hotkeys $('#wpTextbox1').keydown(function (event) { var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0; var button, help = ''; if (event.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey) { if (event.which === 48) // configure { tradLink_showDialog(); event.preventDefault(); } else if (event.which >= 49 && event.which < 57) // execute { tradLink_tradLink(event.which - 49); event.preventDefault(); } } });