Ulanyjy:Prince Kassad~tkwiki/monobook.js

Wikipediýa, erkin ensiklopediýa

Bellik: Ýazdyranyňyzdan soň, üýtgeşmeleri görmek üçin brauzeriňiziň keşini arassalaň: Mozilla / Firefox / Safari: Shift-e basyp, Reload-a tyklaň ýa-da ýa Ctrl-F5-e ýa-da Ctrl-R-a basyň (Mac üçin Command-R); Konqueror: Reload-a tyklaň ýa-da F5-e basyň; Opera: Gurallar → Ileri tutmalardan keşi arassalaň; Internet Explorer: Ctrl-a basyp, Refresh-i tyklaň ýa-da Ctrl-F5-e basyň.

//JavaScript - Latin <-> Cyrillic converter
//based on code by [[de:Benutzer:Fomafix]], [[en:User:AzaToth]], [[en:User:R. Koot]] and [[de:Benutzer:Arnomane]]
//licensed under the GFDL

//initalize variable

var LatnOrCyrl;

var Cyrls = [
[ "\u0041", "\u0410"],
[ "\u0042", "\u0411"],
[ "\u00c7", "\u0427"],
[ "\u0044", "\u0414"],
[ "\u0045", "\u0415"],
[ "\u00c4", "\u04d8"],
[ "\u0046", "\u0424"],
[ "\u0047", "\u0413"],
[ "\u0048", "\u0425"],
[ "\u0049", "\u0418"],
[ "\u004a", "\u0496"],
[ "\u017d", "\u0416"],
[ "\u004b", "\u041a"],
[ "\u004c", "\u041b"],
[ "\u004d", "\u041c"],
[ "\u004e", "\u041d"],
[ "\u0147", "\u04a2"],
[ "\u004f", "\u041e"],
[ "\u00d6", "\u04e8"],
[ "\u0050", "\u041f"],
[ "\u0052", "\u0420"],
[ "\u0053", "\u0421"],
[ "\u015e", "\u0428"],
[ "\u0054", "\u0422"],
[ "\u0055", "\u0423"],
[ "\u00dc", "\u04ae"],
[ "\u0057", "\u0412"],
[ "\u0059", "\u042b"],
[ "\u00dd", "\u0419"],
[ "\u005a", "\u0417"],
[ "\u0061", "\u0430"],
[ "\u0062", "\u0431"],
[ "\u00e7", "\u0447"],
[ "\u0064", "\u0434"],
[ "\u0065", "\u0435"],
[ "\u00e4", "\u04d9"],
[ "\u0066", "\u0444"],
[ "\u0067", "\u0433"],
[ "\u0068", "\u0445"],
[ "\u0069", "\u0438"],
[ "\u006a", "\u0497"],
[ "\u017e", "\u0436"],
[ "\u006b", "\u043a"],
[ "\u006c", "\u043b"],
[ "\u006d", "\u043c"],
[ "\u006e", "\u043d"],
[ "\u0148", "\u04a3"],
[ "\u006f", "\u043e"],
[ "\u00f6", "\u04e9"],
[ "\u0070", "\u043f"],
[ "\u0072", "\u0440"],
[ "\u0073", "\u0441"],
[ "\u015f", "\u0448"],
[ "\u0074", "\u0442"],
[ "\u0075", "\u0443"],
[ "\u00fc", "\u04af"],
[ "\u0077", "\u0432"],
[ "\u0079", "\u044b"],
[ "\u00fd", "\u0439"],
[ "\u007a", "\u0437"],
];

function go_to_cyrl(str)
{
        for (var i = 0 ; i < Cyrls.length; i++) {
                var re = new RegExp(Cyrls[i][0], 'gm');
                str = str.replace(re,Cyrls[i][1]);
        }
        return str;
}

function go_to_latn(str)
{
        for (var i = 0 ; i < Cyrls.length; i++) {
                var re = new RegExp(Cyrls[i][1], 'gm');
                str = str.replace(re,Cyrls[i][0]);
        }
        return str;
}

function traverse_cyrl (node) {
  if (node.nodeType == 3) {
    node.data = go_to_cyrl(node.data);
  } else {
    for (var i=0; i<node.childNodes.length; i++) {
      if ((node.id != 'wpTextbox1'))
        traverse_cyrl(node.childNodes[i]);
    }
  }
}

function traverse_latn (node) {
  if (node.nodeType == 3) {
    node.data = go_to_latn(node.data);
  } else {
    for (var i=0; i<node.childNodes.length; i++) {
      if ((node.id != 'wpTextbox1'))
        traverse_latn(node.childNodes[i]);
    }
  }
}

function to_cyrl()
{
// if we transliterated to Cyrillic already, skip these steps
        if (LatnOrCyrl != 1) {
        var node = document.getElementsByTagName('body')[0];
        document.title = go_to_cyrl(document.title);
        traverse_cyrl(document.getElementById('content'));
        traverse_cyrl(document.getElementById('p-navigation'));
        traverse_cyrl(document.getElementById('p-search'));
        traverse_cyrl(document.getElementById('p-tb'));
        traverse_cyrl(document.getElementById('p-cactions'));
        traverse_cyrl(document.getElementById('p-personal'));
//once everything's done, set important switches
        LatnOrCyrl = 1;
        }
}

function to_latn()
{
// if we transliterated to Latin already, skip these steps
        if (LatnOrCyrl != 0) {
        var node = document.getElementsByTagName('body')[0];
        document.title = go_to_latn(document.title);
        traverse_latn(document.getElementById('content'));
        traverse_latn(document.getElementById('p-navigation'));
        traverse_latn(document.getElementById('p-search'));
        traverse_latn(document.getElementById('p-tb'));
        traverse_latn(document.getElementById('p-cactions'));
        traverse_latn(document.getElementById('p-personal'));
//once everything's done, set important switches
        LatnOrCyrl = 0;
        }
}

function AddCyrlTab() {
    try {
        var Cyrlnode = document.getElementById( "p-cactions" )
                           .getElementsByTagName('div')[0]
                           .getElementsByTagName('ul')[0];

        var CyrlaNode = document.createElement( 'a' );
        var CyrlliNode = document.createElement( 'li' );

        CyrlaNode.appendChild( document.createTextNode( 'Cyrillic' ) );
        CyrlaNode.setAttribute( 'href' , 'javascript:to_cyrl()' );
        CyrlliNode.appendChild( CyrlaNode );
        CyrlliNode.setAttribute( 'id' , 'translit_tocyrl' );
        Cyrlnode.appendChild( CyrlliNode );
     } catch(e) {
       // lets just ignore what's happened
       return;
    }
}

function AddLatnTab() {
    try {
        var Latnnode = document.getElementById( "p-cactions" )
                           .getElementsByTagName('div')[0]
                           .getElementsByTagName('ul')[0];

        var LatnaNode = document.createElement( 'a' );
        var LatnliNode = document.createElement( 'li' );

        LatnaNode.appendChild( document.createTextNode( 'Latin' ) );
        LatnaNode.setAttribute( 'href' , 'javascript:to_latn()' );
        LatnliNode.appendChild( LatnaNode );
        LatnliNode.setAttribute( 'id' , 'translit_tolatn' );
        Latnnode.appendChild( LatnliNode );
     } catch(e) {
       // lets just ignore what's happened
       return;
    }
}

$(AddCyrlTab);
$(AddLatnTab);