MediaWiki:Gadget-tradLink.js
Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.
Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.
/*
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 = {};
$dialog.find('input:text,select').each(function () {
params[$(this).attr('id')] = $.trim($(this).val());
});
text = InserisciTemplate_dumpTemplate(data, params);
$(this).dialog('close');
InserisciTemplate_postTemplate(data, text, page);
};
Buttons[CancelText] = function () {
$(this).dialog('close');
};
$dialog.dialog({
title: "Configurazione tool tradLink",
width: 250,
resizable: false,
modal: true,
zIndex: 10000,
buttons: Buttons
});
}
function tradLink_getLingue()
{
value = mw.config.values.Cookie.read( 'tradLinkLangs' );
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("http://"+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').keypress(function (event) {
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();
}
}
});