Utilisateur:Alex brollo/Gadget-Diacritici.js

La bibliothèque libre.

Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
$.diacritici={"´":{"a":"á","c":"ć","e":"é","i":"í","l":"ĺ","n":"ń",
"o":"ó","r":"ŕ","s":"ś","u":"ú","y":"ý","z":"ź"},
"ˆ":{"a":"â","c":"ĉ","e":"ê","g":"ĝ","h":"ĥ","i":"î","j":"ĵ","o":"ô","s":"ŝ","u":"û","w":"ŵ","y":"ŷ"},
"¨":{"a":"ä","e":"ë","i":"ï","o":"ö","u":"ü","w":"ẅ","y":"ÿ"},
"~":{"a":"ã","e":"ẽ","i":"ĩ","n":"ñ","o":"õ","u":"ũ","y":"ỹ"},
"ˇ":{"a":"ǎ","c":"č","e":"ě","i":"ǐ","n":"ň","o":"ǒ","r":"ř","s":"š","u":"ǔ","z":"ž"},
"¯":{"a":"ā","e":"ē","h":"ħ","i":"ī","o":"ō","u":"ū","y":"ȳ"},
"˘":{"a":"ă","e":"ĕ","g":"ğ","i":"ĭ","o":"ŏ","u":"ŭ","y":"y̆"},
"˛":{"a":"ą","e":"ę","i":"į","u":"ų"},
"˚":{"a":"å","u":"ů",},
"˙":{"c":"ċ","e":"ė","g":"ġ","z":"ż"},
"˝":{"o":"ő","u":"ű"},
"¸":{"c":"ç","l":"ļ","k":"ķ","n":"ņ","r":"ŗ","s":"ş"},
"`":{"a":"à","e":"è","i":"ì","u":"ù","o":"ò"},
}

$.normali={"áàâäãǎāăąå":"a","ćĉčċ":"c","éèêëěēĕėę":"e","ĝģğġ":"g","ĥħ":"h","íìîïĩǐīĭıį":"i","ĵ":"j","ķ":"k", "ĺļľł":"l","ńñņň":"n","óòôöõǒōŏǫő":"o","ŕŗř":"r","śŝşšș":"s","țť":"t","úùûüũůǔūǖǘǚǜŭųű":"u","ŵ":"w","ýŷÿȳ":"y","źžż":"z"}
function normalizza(car) {
    for (var c in $.normali) {
        if (c.indexOf(car)>-1) return $.normali[c];
    } 
    return car; 
}
function applicaDiac(diacritico) {
    var t=selection(); 
    var car=t[0].substr(t[0].length-1,t[0].length);
    t[0]=t[0].substr(0,t[0].length-1);
    carDia=normalizza(car.toLocaleLowerCase()); 
    if ($.diacritici[diacritico][carDia]!==undefined) {
        carDia=$.diacritici[diacritico][carDia]; 
        if(car===car.toLocaleLowerCase()) {car=carDia;}
        else {car=carDia.toLocaleUpperCase();}
    }
    else {
        alert("per il carattere "+car+" non è memorizzato il diacritico "+diacritico);
    }
    t[0]=t[0]+car;
    scriviBox(t.join(""),"",t[0].length,t[0].length);
}