Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
/*-----------------------------------------------------------------
 Remplacement à la volée de certains caractères lors de l'édition.
 Optimisé pour ce qui manque au clavier AZERTY français
 pour taper le français.
-------------------------------------------------------------------
 Auteur initial : ThomasV
 Version remaniée pour le Wiktionnaire : ArséniureDeGallium
-----------------------------------------------------------------*/

// hookage de la fonction, sauf sur les pages en JS ou CSS
// (ce gadget serait une nuisance sur de telles pages)
var P3=wgTitle.substring(wgTitle.length-3);
var P4=wgTitle.substring(wgTitle.length-4);
if((P3!=".js")&&(P4!=".css"))addOnloadHook(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 "$s":m="ſ";break;
     case "$à":m="À";break;
     case "$é":m="É";break;
     case "$è":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 "$oe":m="œ";break;
      case "$ae":m="æ";break;
      case "$OE":m="Œ";break;
      case "$AE":m="Æ";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;
      case "...":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;
    }
   }
  }
}

// <nowiki>
// Boutons d'édition (merci Jackpotte)
$(function() {
 
  if (['edit', 'submit'].indexOf(mw.config.get('wgAction')) == -1)
    return;
 
  $.each([
    // Format : pour chaque bouton
    // [
    //   'Texte à insérer avant la sélection', 'Texte à insérer après la sélection',
    //   'Image du bouton (après « commons/ »)',
    //   'Texte apparaissant dans la bulle au survol du bouton',
    //   'Identifiant de l'image ; importance faible, mais il faut s'assurer que l'identifiant est unique, ne change pas et n'utilise ni espace, ni caractères spéciaux'
    // ],

    [
      "{{fr|Prononciation en français du mot « ",
      " » (mot). Voix masculine. Locuteur d’Île-de-France, France. IPA: [ipa]}}",
      "a/ae/Button_fr.png",
      "Description française prononciation",
      "mot"
    ],

    [
      "{{en|Pronunciation of ",
      " in French. Male voice. Speaker from Paris, France. IPA: [ipa]}}",
      "3/3f/Button_en.png",
      "Description anglaise prononciation",
      "mot"
    ],

  ], function(_, button) {
    mw.toolbar.addButton('//upload.wikimedia.org/wikipedia/commons/' + button[2], button[3], button[0], button[1], (button[0] ? button[4] : ''), 'mw-editbutton-' + button[4]);
  });
});