See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Projet:Animation et bande dessinée asiatiques/monobook.js - Wikipédia

Projet:Animation et bande dessinée asiatiques/monobook.js

Un article de Wikipédia, l'encyclopédie libre.

/*

 * Cette page contient des fonction javascript pour vous aider à taper du texte japonais romanisé
 * en Hepburn, comme demandé sur Wikipédia.
 *
 * Elle offre les fonctionnalités suivantes (pour Firefox2.0, remplacer Alt -en fait, AltGr, celui de 
 *                                           droite- par Shift+Alt_gauche):
 * 1. Une barre contenant Ā ā Ē ē Ī ī Ō ō Ū ū en-dessous de la zone de saisie 
 *    pour une insertion facile de ces caractères
 * 2. Des raccourcis pour la même chose: minuscule, respectivement Alt-a, Alt-f, Alt-i, Alt-o, Alt-v
 *                                       majuscule, respectivement Alt-,, Alt-;, Alt-:, Alt-!, Alt-ù
 * 3. Une fonction de conversion, exécutable par l'onglet ''hepburn'' ou le raccourci Alt->
 *    qui convertit dans la sélection courante les séquence aa, ee..., Aa, Ee..., â, ..., Â, ...
 *    en les lettres équivalentes avec macrons. Elle convertit aussi ''cch'' en ''tch''.
 * 4. Une fonction de conversion prospective, exécutable par l'onglet ''macron'' ou le raccourci Alt-²
 *    qui convertit dans les sélection courante des noms qui apparaissent comme manquant probablement 
 *    d'un diacritique. Cela concerne principalement des noms propres (reconnaissable à la majuscule)
 *    comme Tokyo, Keio, Osaka...
 *
 *    Cette fonction n'ait testé que sous IE et Firefox.
 *
 *    Elle a un bug connu: si la sélection se termine sur une fin de ligne, 
 *    le retour chariot est effacé. Prudence, donc.
 *
 *    Attention, le script ne connaît pas le japonais, il transformera omou en omō, ce qui 
 *    n'est pas souhaitable (car le 'ou' est une fin de verbe, pas un 'o' long).
 *
 *    Sous Mozilla, si vous lancer la fonction au sein d'un texte est plus grand que la textarea
 *    Mozilla vous remettra en haut du texte. Il suffit de déplacer le curseur pour revenir à
 *    la bonne place.
 *
 *    Pour rajouter ces fonctionnalités, Rajouter les lignes suivantes dans 
 *    votre monobook.js ([[Utilisateur:Votre_login/monobook.js]]):
      document.write('<script type="text/javascript" src="' 
            + 'http://fr.wikipedia.org/w/index.php?title='
            + 'Projet:Animation et bande dessinée asiatiques/monobook.js'
            + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 *
 *    Contactez [[User talk:Eden2004|]] en cas de dysfonctionnement.
 */

/* Japanisation, grâce à l'aide de [[User:EDUCA33E]] et [[USER:GôTô]] */
var tabAction = "p-cactions";
function addJapanButton()
       {
        // condition à améliorer
        var toolbar = document.getElementById("toolbar"); 
        if (!toolbar) return;
        var l = document.getElementById(tabAction);
        t = l.innerHTML;
        ind = t.toLowerCase().indexOf("</ul>");
        before = t.substring(0,ind);
        after = t.substring(ind); 
        pitem = "<li><a href='javascript:hepburn();' accesskey=\">\">"+
                "<div id='japan' style='display:inline;'>" + 
                "Hepburn"  + 
                "</div></a></li>";
        l.innerHTML = before + pitem + after ;           
      }

function hepburn() {
var txt = document.editform.wpTextbox1;
txt.focus();
    if ( window.getSelection )
    {
    // mozilla
      if( txt.selectionStart || txt.selectionStart == '0')
      {
        var text = txt.value.substring(txt.selectionStart, txt.selectionEnd);
        var s2 = txt.value;

        text = text.replace(new RegExp("aa", "g"), "ā").replace(new RegExp("Aa", "g"), "Ā");
        // La norme Hepburn réserve la conversion suivante aux noms non-sino-japonais.
        //text = text.replace(new RegExp("ii", "g"), "ī").replace(new RegExp("Ii", "g"), "Ī");
        text = text.replace(new RegExp("ee", "g"), "ē").replace(new RegExp("Ee", "g"), "Ē");
        text = text.replace(new RegExp("uu", "g"), "ū").replace(new RegExp("Uu", "g"), "Ū");
        text = text.replace(new RegExp("oo", "g"), "ō").replace(new RegExp("Oo", "g"), "Ō");
        text = text.replace(new RegExp("ou", "g"), "ō").replace(new RegExp("Ou", "g"), "Ō");
        text = text.replace(new RegExp("â", "g"), "ā").replace(new RegExp("Â", "g"), "Ā");
        // La norme Hepburn réserve la conversion suivante aux noms non-sino-japonais.
        //text = text.replace(new RegExp("î", "g"), "ī").replace(new RegExp("Î", "g"), "Ī");
        text = text.replace(new RegExp("ê", "g"), "ē").replace(new RegExp("Ê", "g"), "Ē");
        text = text.replace(new RegExp("û", "g"), "ū").replace(new RegExp("Û", "g"), "Ū");
        text = text.replace(new RegExp("ô", "g"), "ō").replace(new RegExp("Ô", "g"), "Ō");
        text = text.replace(new RegExp("cch", "g"), "tch");

        var savestart = txt.selectionStart;
        txt.value = s2.substring(0, txt.selectionStart)
                     + text
                     + s2.substr(txt.selectionEnd);
        txt.selectionStart = savestart + text.length;
        txt.selectionEnd = savestart + text.length;
      }
    }
    else if( document.getSelection )
    {
    // Safari/Konqueror
        var text = document.getSelection( ).replace(new RegExp("aa", "g"), "ā");
        //Manque la suite...
    }
    else 
    {
    // internet explorer
      var range = document.selection.createRange();
      var text = range.text;
      text = text.replace(new RegExp("aa", "g"), "ā").replace(new RegExp("Aa", "g"), "Ā");
      // La norme Hepburn réserve la conversion suivante aux noms non-sino-japonais.
      //text = text.replace(new RegExp("ii", "g"), "ī").replace(new RegExp("Ii", "g"), "Ī");
      text = text.replace(new RegExp("ee", "g"), "ē").replace(new RegExp("Ee", "g"), "Ē");
      text = text.replace(new RegExp("uu", "g"), "ū").replace(new RegExp("Uu", "g"), "Ū");
      text = text.replace(new RegExp("oo", "g"), "ō").replace(new RegExp("Oo", "g"), "Ō");
      text = text.replace(new RegExp("ou", "g"), "ō").replace(new RegExp("Ou", "g"), "Ō");
      text = text.replace(new RegExp("â", "g"), "ā").replace(new RegExp("Â", "g"), "Ā");
      // La norme Hepburn réserve la conversion suivante aux noms non-sino-japonais.
      //text = text.replace(new RegExp("î", "g"), "ī").replace(new RegExp("Î", "g"), "Ī");
      text = text.replace(new RegExp("ê", "g"), "ē").replace(new RegExp("Ê", "g"), "Ē");
      text = text.replace(new RegExp("û", "g"), "ū").replace(new RegExp("Û", "g"), "Ū");
      text = text.replace(new RegExp("ô", "g"), "ō").replace(new RegExp("Ô", "g"), "Ō");
      text = text.replace(new RegExp("cch", "g"), "tch");
      range.text = text;
    }
}

function customSpecialChars()
{
        var elmtP = document.getElementById("editpage-copywarn")
        if (elmtP == undefined)
                return  // Pas en édition
        //elmtP = elmtP.getElementsByTagName("table")[0]

        var str = "Caractères spéciaux: "

        str += "<a href=\"javascript:insertTags('Ā','', '')\" accesskey=\",\">Ā</a> "
        str += "<a href=\"javascript:insertTags('ā','', '')\" accesskey=\"a\">ā</a> "
        str += "<a href=\"javascript:insertTags('Ē','', '')\" accesskey=\";\">Ē</a> "
        str += "<a href=\"javascript:insertTags('ē','', '')\" accesskey=\"f\">ē</a> "
        str += "<a href=\"javascript:insertTags('Ī','', '')\" accesskey=\":\">Ī</a> "
        str += "<a href=\"javascript:insertTags('ī','', '')\" accesskey=\"i\">ī</a> "
        str += "<a href=\"javascript:insertTags('Ō','', '')\" accesskey=\"!\">Ō</a> "
        str += "<a href=\"javascript:insertTags('ō','', '')\" accesskey=\"o\">ō</a> "
        str += "<a href=\"javascript:insertTags('Ū','', '')\" accesskey=\"ù\">Ū</a> "
        str += "<a href=\"javascript:insertTags('ū','', '')\" accesskey=\"v\">ū</a> "

        elmtP.innerHTML = "<br/ ><center>" + str + "</center><br />" + elmtP.innerHTML
}

// Quick-replacer pour rectifier les mots sans diacritique triviaux sur les pages japonaises
var tabAction = "p-cactions";
function addAutoMacronButton()
       {
        // condition à améliorer
        var toolbar = document.getElementById("toolbar"); 
        if (!toolbar) return;
        var l = document.getElementById(tabAction);
        t = l.innerHTML;
        ind = t.toLowerCase().indexOf("</ul>");
        before = t.substring(0,ind);
        after = t.substring(ind); 
        pitem = "<li><a href='javascript:macron();' accesskey=\"²\">"+
                "<div id='macron' style='display:inline;'>" + 
                "Macron"  + 
                "</div></a></li>";
        l.innerHTML = before + pitem + after ;           
      }

function macron() {
var txt = document.editform.wpTextbox1;
txt.focus();
    if ( window.getSelection )
    {
    // mozilla
      if( txt.selectionStart || txt.selectionStart == '0')
      {
        var text = txt.value.substring(txt.selectionStart, txt.selectionEnd);
        var s2 = txt.value;

        text = text.replace(new RegExp("Tokyo", "g"), "Tōkyō");
        text = text.replace(new RegExp("Kobe", "g"), "Kōbe");
        text = text.replace(new RegExp("Keiō", "g"), "Keiō");
        text = text.replace(new RegExp("Saikyo", "g"), "Saikyō");
        text = text.replace(new RegExp("Chuo", "g"), "Chūō");
        text = text.replace(new RegExp("Toei Oedo", "g"), "Toei Ōedo");
        text = text.replace(new RegExp("Odakyu", "g"), "Odakyū");
        text = text.replace(new RegExp("Hanzomon", "g"), "Hanzōmon");
        text = text.replace(new RegExp("Tokyu", "g"), "Tōkyū");
        text = text.replace(new RegExp("Koto", "g"), "Kōtō");
        text = text.replace(new RegExp("Keiyo", "g"), "Keiyō");
        text = text.replace(new RegExp("Shonan", "g"), "Shōnan");

        var savestart = txt.selectionStart;
        txt.value = s2.substring(0, txt.selectionStart)
                     + text
                     + s2.substr(txt.selectionEnd);
        txt.selectionStart = savestart + text.length;
        txt.selectionEnd = savestart + text.length;
      }
    }
}

addLoadEvent(addAutoMacronButton);
addLoadEvent(addJapanButton);
addLoadEvent(customSpecialChars);

/*

*/


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -