MediaWiki:Gadget-HyphenationCoverter.js
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.
/*HyphenationConverter per it.wikt version [2.0]
* di [[M:User:Wim b|Wim b]]
Note:
*È un modo veloce di convertire le sillabazioni dei dizionari on line che usano il trattino "-" per dividere le sillabazioni secondo lo standard di it.wikt, cioè le sillabe divise tramite un pipe " | ".
* Copiare negli appunti la sillabazione e incollarla nel propt che si apre cliccando sul link "Converti la sillabazione" e premere "OK"
* all'apertura del messaggio apparirà la sillabazione corretta, basterà copiarla e incollarla nel lemma.
Changelog:
- 1.0.1 : Aggiunto stile CSS per la finestra di dialogo (non in questa versione)
- 1.0.2 : Aggiunto ";" per agevolare il copia-incolla
- 1.1.0 : Aggiunta la compatibilità con The Free Dictionary e la possibilità di gestire 2 sillabazioni, reso compatibile con i lemmi che presentano uno spazio, aggiunta didascalia con link alla pagina di aiuto, divisa la regex dal testo per evitare sovraffollamento inutile
- 1.1.1 : Aggiunta la compatibilità con il De Mauro (distanzia le linee verticali, a differenza del De Mauro che tiene le barre attaccate alle sillabe; cancella automaticamente il segno " / " presente prima e dopo la sillabazione nel dizionario a cui si appoggia Google
- 2.0.1 : Ora riconosce anche quando qualcuno inserisce male il template e il commento di preload
*/
//Creo il link nel portlet
if (mw.config.get('wgNamespaceNumber') === 0 && mw.config.get('wgPageName')!='Pagina_principale' && (mw.config.get('wgAction')=='edit' || mw.config.get('wgAction')=='submit') ) {
var portletLinkConverter = mw.util.addPortletLink( 'p-navigation', '#', 'Converti sillabazione', 'p-sill', 'Converti la sillabazione copiata dai dizionari on line', 'g');
}
// Bind click handler
$( portletLinkConverter ).click( function ( e ) {
e.preventDefault();
HyphConverterVer = "2.0.1";
var prmtsill;
prmtsill=prompt("Inserisci la sillabazione","");
if (prmtsill == "ver") {
alert ('Convertitore di sillabazione Vers. [' + HyphConverterVer + ']');
} else {
if (prmtsill){ // Preparo lo spazio per creare la finestra
// Espressione regolare per la conversione
// La prima e l'ultima sostituzione, devono rimanere invariate per permettere allo script di correggere gli spazi bianchi
var convertita = prmtsill.replace(/[ ]/g,':;').replace(//g,'').replace(/ʒ/g,'z').replace(/(ṣ|ʃ)/g,'s').replace(/(-|•|·|\|)/g,' | ').replace(/\] o \[/g,'</br>\; ').replace(/(\[|\]|\/)/g,'').replace(/:;/g,' - ');
var conv = convertita.replace("<br>", '\n');
var findTemplateSill = $( "#wpTextbox1" ).val().indexOf('{{-sill-}}');
var findSill = $( "#wpTextbox1" ).val().indexOf('{{-sill-}}\n;');
if (findSill != -1) { var inserisci ='Sostituisci'} else {var inserisci ='Copia'}
// Finestra di dialogo di avvenuta conversione della sillabazione
mw.util.$content.prepend( ''
+'<div id="DoneBox" title="Conversione effettuata"> <p>'
+'<div style="text-align:center">'
+'Premi il bottone <code>'+inserisci+'</code> per copiare la sillabazione all\'interno del lemma</br>'
+'Assicurati di aver inserito "<code>{{-sill-}}</code>" altrimenti il testo verrà inserito in fondo alla pagina di modifica.'
+'</br><span id="LinkPosition"></span></br><div class="NavContent2">'
+'Se preferisci puoi copiare il testo sottostante (evidenzialo e premi \"<code><i>[CTRL+C]</i></code>\" o \"<code><i>click destro - copia</i></code>\")'
+' e, <b>dopo</b> averlo copiato premi "<code>Fatto</code>" e incollalo nel lemma</br></br><b>; '+ convertita +'</b></div></p></br></div>'
+'<b><div style="text-align:center">ATTENZIONE!</div></b>fino a quando non premi uno dei due bottoni la finestra risulta bloccata in modifica.'
+'<hr /><img src="http://upload.wikimedia.org/wikipedia/commons/5/55/Gtk-stop.svg" alt="operazione annullata" width="20" height="20" />'
+'ATTENZIONE: Questo strumento è pienamente compatibile con il dizionario "Hoeply", "De Mauro" e "quello di Google" '
+'mentre lo è parzialmente con gli altri. Per un elenco dei dizionari supportati fare riferimento a '
+'<u><a href="/wiki/Aiuto:Accessori/Converti_sillabazione#Dizionari_compatibili" target="_new" class="plainlinks">questa tabella</a></u>'
+'</div>' );
$("#LinkPosition").prepend('<a id="ToggleHideLink">Mostra alternativa</a>');
$("#ToggleHideLink").click(function() {
$(".NavContent2").slideToggle('slow');
var LinkText = $('#ToggleHideLink').text();
$('#ToggleHideLink').text(
LinkText == "Mostra alternativa" ? "Nascondi alternativa" : "Mostra alternativa");
});
$(".NavContent2").hide();
mw.loader.using( ['jquery.ui'], function() { // inizializzo la finestra di dialogo
$( "#DoneBox" ).dialog({
width: 500,
modal: true,
buttons: [
{
text: "Fatto",
click: function() { $(this).dialog("close"); }
},
{
text: inserisci ,
click: function() {
function TextBoxReplace(target, sostituito) {
$('#wpTextbox1').val($('#wpTextbox1').val().replace(target, ''+sostituito+''));
}
if (findSill != -1) {
TextBoxReplace(/{{-sill-}}(.*?)\n(;( |))*((.*?)\|(.*?))*\n/, '{{-sill-}}\n; '+conv+'\n');
} else {
if (findTemplateSill != -1) {
TextBoxReplace(/{{-sill-}}(.*?)\n(;( |))*(.*?)*\n/, '{{-sill-}}\n; '+conv+'\n');
} else {
}
}
$( this ).dialog( "close" );
}
}
]
});
});
}else{ //inizio messaggio di errore
mw.notify( $( '<div class="mw-notification-alert"><div class="mw-notification-alert-header"><h5><img src="http://upload.wikimedia.org/wikipedia/commons/5/55/Gtk-stop.svg" alt="operazione annullata" width="20" height="20" /> ATTENZIONE! </br>Conversione annullata</h5></div> Hai annullato il processo o hai lasciato il campo vuoto, quindi il testo che eventualmente hai inserito non verrà convertito.</div><div class="mw-notification-alert-footer"><a href="/wiki/User_talk:Wim_b" target="_new">Segnala un bug</a></div></div>' ) , { autoHide: false } );
}
}
});