MediaWiki:Gadget-keysampa2ipa.js
Nota: Després de publicar, possiblement necessitareu refrescar la memòria cau del vostre navegador per a veure'n els canvis.
- Firefox / Safari: Premeu Majús i alhora cliqueu el botó Actualitzar, o pressioneu Ctrl+F5 o Ctrl+R (⌘+R en un Mac)
- Google Chrome: Premeu Ctrl+Majús+R (⌘+Shift+R en un Mac)
- Internet Explorer / Edge: Premeu Ctrl i alhora cliqueu a Actualitza o pressioneu Ctrl+F5
- Opera: Premeu Ctrl-F5.
/*-----------------------------------------------------------------
Substitueix en mode edició certs caràcters de pronúncia SAMPA a AFI.
Adaptat pels caràcters usuals en català, vegeu [[Viccionari:Pronúncia del català]]
Idea original de [[fr:MediaWiki:Gadget-specialchars.js].
-------------------------------------------------------------------
Auteur initial : ThomasV
Version remaniée pour le Wiktionnaire : ArséniureDeGallium
Adaptat a SAMPA: Vriullop
-----------------------------------------------------------------*/
// hookage de la fonction, sauf sur les pages en JS ou CSS
// (ce gadget serait une nuisance sur de telles pages)
var P3 = mw.config.get('wgTitle').substring(mw.config.get('wgTitle').length-3);
var P4 = mw.config.get('wgTitle').substring(mw.config.get('wgTitle').length-4);
if( (P3!=".js") && (P4!=".css") ) jQuery(SpecChar_Main);
//-----------------------------------------------------------------------
// remplacement des séquences de caractères
function SpecChar_Main() {
tb=document.getElementById("wpTextbox1");
if(!tb)return;
tb.onkeyup=function(e) {
var key = (window.event) ? event.keyCode : e.keyCode;
startPos = tb.selectionStart;
endPos = tb.selectionEnd;
if( endPos==startPos && (key>=32 && key<=255) ) {
m = tb.value.substring(startPos-2, startPos);
m3 = tb.value.substring(startPos-3, startPos);
f = tb.value.substring(startPos);
todo=true;
i=2;
if(m[1]=="'"){ //traitement de l'apostrophe
m = m[0]+"’";
if(m=="’’") m="''";
if(m=="'’") m="''";
}else switch(m){ //traitement de des séquences de 2 caractères
case "º@":m="ə";break;
case "ºB":m="β";break;
case "ºD":m="ð";break;
case "ºE":m="ɛ";break;
case "ºF":m="ɱ";break;
case "ºg":m="ɡ";break;
case "ºG":m="ɣ";break;
case "ºJ":m="ɲ";break;
case "ºL":m="ʎ";break;
case "ºN":m="ŋ";break;
case "ºO":m="ɔ";break;
case "ºr":m="ɾ";break;
case "ºS":m="ʃ";break;
case "ºZ":m="ʒ";break;
case 'º"':m="ˈ";break;
case "º'":m="ˈ";break;
case "º%":m="ˌ";break;
case "º,":m="ˌ";break;
case "º<":m="«";break;
case "º>":m="»";break;
default:todo=false;
}
if(!todo){ //traitement de des séquences de 3 caractères
m=m3; todo=true; i=3;
switch(m){
case "ºl_":m="ɫ";break;
case "ºtS":m="t͡ʃ";break;
case "ºdZ":m="d͡ʒ";break;
case "ºdz":m="d͡z";break;
case "ºaa":m="ā";break;
case "ºii":m="ī";break;
case "ºee":m="ē";break;
case "ºuu":m="ū";break;
case "ºoo":m="ō";break;
case "ºAA":m="Ā";break;
case "ºII":m="Ī";break;
case "ºEE":m="Ē";break;
case "ºUU":m="Ū";break;
case "ºOO":m="Ō";break;
default:todo=false;
}
}
if(todo) {
var textScroll = tb.scrollTop;
h=tb.value.substring(0, startPos-i);
tb.value=h+m+f;
tb.selectionStart=startPos-i + m.length;
tb.selectionEnd=tb.selectionStart;
tb.scrollTop=textScroll;
}
}
};
}