Naudotojas:Vpovilaitis/editor.js

Puslapis iš Vikižodyno, laisvojo žodyno.

Dėmesio: Išsaugojus jums gali prireikti išvalyti jūsų naršyklės podėlį, kad pamatytumėte pokyčius.

  • Firefox / Safari: Laikydami Shift pasirinkite Perkrauti, arba paspauskite Ctrl-F5 ar Ctrl-R (sistemoje Apple Mac ⌘-R)
  • Google Chrome: Spauskite Ctrl-Shift-R (sistemoje Apple Mac ⌘-Shift-R)
  • Internet Explorer / Edge: Laikydami Ctrl paspauskite Naujinti, arba paspauskite Ctrl-F5
  • Opera: Eikite į Meniu → Nuostatos (sistemoje Apple Mac Opera → Nustatymai), tuomet Privatumas ir sauga → išvalyti naršymo podėlį → išsaugotos talpyklos vaizdai ir failai.
/** See talk page for details **/
 
/* DOM abbreviation function */
function newNode(tagname){
 
  var node = document.createElement(tagname);
 
  for( var i=1;i<arguments.length;i++ ){
 
    if(typeof arguments[i] == 'string'){ //Text
      node.appendChild( document.createTextNode(arguments[i]) );
 
    }else if(typeof arguments[i] == 'object'){ 
 
      if(arguments[i].nodeName){ //If it is a DOM Node
        node.appendChild(arguments[i]);
 
      }else{ //Attributes (hopefully)
        for(var j in arguments[i]){
          if(j == 'class'){ //Classname different because...
            node.className = arguments[i][j];
 
          }else if(j == 'style'){ //Style is special
            node.style.cssText = arguments[i][j];
 
          }else if(typeof arguments[i][j] == 'function'){ //Basic event handlers
            try{ node.addEventListener(j,arguments[i][j],false); //W3C
            }catch(e){try{ node.attachEvent('on'+j,arguments[i][j],"Language"); //MSIE
            }catch(e){ node['on'+j]=arguments[i][j]; }}; //Legacy
 
          }else{
            node.setAttribute(j,arguments[i][j]); //Normal attributes
 
          }
        }
      }
    }
  }
 
  return node;
}
 
/* Wrapper around API */
function API() {
 
    function request (query, callback)
    {
        var xhr = sajax_init_object();
 
        xhr.open('POST', '/w/api.php?format=json', true);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
        xhr.send(query);
        xhr.onreadystatechange = function ()
        {
            if (xhr.readyState == 4)
            {
                callback(eval("("+xhr.responseText+")"));
            }
        }
    }
 
    function encode_array (arg, args)
    {
        if (arg instanceof Array)
            args = arg;
 
        return encodeURIComponent(Array.prototype.join.call(args,"|"));
    }
 
    function Query (what)
    {
        return function (props, callback)
        {
            request('action=query&' + what + "&" + props, callback); 
        }
    }
 
    var query = {
 
        titles: function (arg) {
            return Query('titles=' + encode_array(arg, arguments))
        },
 
        pageids: function (arg) {
            return Query('pageids=' + encode_array(arg, arguments))
        },
 
        revids: function (arg) {
            return Query('revids=' + encode_array(arg, arguments))
        },
        page: function (title)
        {
            //self is this without the interference from javascript
            var self = {
                query: query.titles(title),
                title: title,
 
                edit: function (callback, section)
                {
                    var q = 'prop=info|revisions&intoken=edit&rvprop=content|timestamp';
 
                    if (section != null)
                        section = '&rvsection=' + section;
                    else
                        section = '';
 
                    q += section;
 
                    self.query(q, function (res)
                    {
                        // should only be one pageid
                        for (var pageid in res.query.pages)
                        {
                            var page = res.query.pages[pageid];
                            var text = '';
 
                            if (page.revisions)
                                text = page.revisions[0]['*']
 
                            //the "save" function
                            callback(text, function (ntext, summary, postsave)
                            {
                                if (text == ntext || !ntext)
                                    return;
 
                                if(!summary)
                                    summary = "";
 
                                request('action=edit&title=' + encodeURIComponent(self.title) +
                                        '&text=' + encodeURIComponent(ntext) + section +
                                        '&summary=' + encodeURIComponent(summary) +
                                        '&token=' + encodeURIComponent(page.edittoken) +
                                        '&starttimestamp=' + encodeURIComponent(page.starttimestamp) + 
                                        '&basetimestamp=' + encodeURIComponent(page.revisions[0].timestamp),
                                        postsave
                                    )
                            });
                        }
                    });
                },
 
                create: function (text, summary, minor)
                {
                    self.edit(function(otext, save)
                    {
                        save(text, summary, minor);
                    });
                },
 
                parse: function (text, callback)
                {
                    request('action=parse&title=' + encodeURIComponent(self.title) + '&text=' + encodeURIComponent(text.replace('subst:','')), callback)
                },
 
                parseFragment: function (text, callback) //To prevent <p>'s being added
                {
                    self.parse('<div>' + text + '</div>', function (res)
                    {
                        res.parse.text['*'] = res.parse.text['*'].replace(/^<div>/,'').replace(/<\/div>$/,'');
                        callback(res);
                    });
                } 
            }
            return self;
        }
    };
 
    return query;
}
 
/**
 * Storage of "string" preferences.
 */
function Preferences (context)
{
    //Repeated calls with the same context should get the same preferences object.
    if (arguments.callee[context])
        return arguments.callee[context];
    else
        arguments.callee[context] = this;
 
    /**
     * Change the value of a preference.
     *
     * This will cause all the people subscribed to the function to recieve an
     * update.
     *
     * @param {string} name  The name of the preference
     * @param {string} value  The new value of the preference.
     */
    this.set = function (name, value)
    {
        if (value === null || storage[name] === value)
            return;
 
        storage[name] = value;
 
        updateCookie();
    }
 
    /**
     * Get the value of a preference.
     *
     * If the preference isn't set, return the second argument or undefined.
     *
     * @param {string} name  The name of the preference
     * @param {string} def  The default value of the preference
     */
    this.get = function (name, def)
    {
        if (storage[name])
            return storage[name];
        else
            return def;
    }
 
    var storage = {};
 
    // Save storage into the cookie.
    function updateCookie ()
    {
        var value = "";
        for (var name in storage)
        {
            value += '&' + encodeURIComponent(name) + "=" + encodeURIComponent(storage[name]);
        }
 
        setCookie('preferences' + context, value)
    }
 
    // Load storage from the cookie.
    // NOTE: If you wish to update the cookie format, both loading and storing
    // must continue to work for 30 days.
    function updateStorage ()
    {
        var value = getCookie('preferences' + context, value) || '';
        var pairs = value.split('&');
 
        for (var i=1; i < pairs.length; i++)
        {
            var val = pairs[i].split('=');
 
            if (storage[val[0]] === val[1])
                continue;
 
            storage[val[0]] = val[1];
        }
    }
 
    //__init__
    updateStorage();
}
/**
 * A generic page editor for the current page.
 *
 * This is a singleton and it displays a small interface in the top left after
 * the first edit has been registered.
 *
 * @public
 * this.page
 * this.addEdit
 * this.error
 *
 */
function Editor ()
{
    //Singleton
    if (arguments.callee.instance)
        return arguments.callee.instance
    else
        arguments.callee.instance = this;
 
    /**
     * Get the API page object associated with this editor
     */
    this.page = API().page(wgPageName);
 
    /**
     * Add the specific edit to the page.
     *
     * If the node is specified it will be highlighted now, and unhighlighted
     * when the change is saved.
     *
     * @param {edit}  The edit {redo:, undo:, edit:, summary:}
     * @param {*node}  The node to highlight.
     * @param {*boolean}  private: used when edit added using redo.
     */
    this.addEdit = function (edit, node, fromRedo)
    {
        if (node)
        {
            nodestack.push(node);
            node.style.cssText = "border: 2px #00FF00 dashed;"
        }
 
        if(! fromRedo)
            redostack = [];
 
        if(! (loaded && !loading))
            load()
 
        else
        {
            var ntext = false;
            try
            {
                ntext = edit.edit(currentText);
            }
            catch (e)
            {
                this.error("KLAIDA:" + e);
            }
 
            if (ntext)
            {
                currentText = ntext;
                edit.redo();
            }
            else
                return false;
        }
        fixButtons();
        editstack.push(edit);
    }
 
    /**
     * Display an error message to the user.
     *
     * @param {string|node}  The message.
     */
    this.error = function (message)
    { 
        if (!errorlog)
        {
            errorlog = newNode('ul',{style: "background-color: #FFDDDD; margin: 0px -10px -10px -10px; padding: 10px;"});
            presence.appendChild(errorlog);
        }
        errorlog.appendChild(newNode('li', message));
    }
 
    var thiz = this; // this is set incorrectly when private functions are used as callbacks.
 
    var editstack = []; // A list of the edits that have been applied to get currentText
    var redostack = []; // A list of the edits that have been recently undone.
    var nodestack = []; // A lst of nodes to which we have added highlighting
 
    var loaded = false; // Is the page-text loaded?
    var loading = false; // Is the page-text loading?
 
    var originalText = ""; // What was the contents of the page before we fiddled?
    var currentText = ""; // What is the contents now?
 
    var savebutton;
    var undobutton;
    var redobutton;
 
    var saveCallback; // The callback returned by the api's edit function to save.
 
    var presence; // The HTML element in the top-left
    var errorlog; // The ul for sticking errors in.
    var savelog; // The ul for save messages.
 
    // Disable useless buttons, enable useful ones.
    function fixButtons () 
    {
        if(! presence)
            return;
        presence.style.display = "block";
        undobutton.disabled = false; (editstack.length > 0 ? false : true);
        savebutton.disabled = false; undobutton.disabled;
        redobutton.disabled = false; (redostack.length > 0 ? false : true);
    }
 
    //Ensure that the currentText variable reflects the originalText with all
    //edits in the editstack
    function updateCurrentText ()
    {
        var text = originalText;
        for (var i=0; i < editstack.length; i++)
        {
            var ntext = false;
            try
            {
                ntext = editstack[i].edit(text);
            }
            catch (e)
            {
                thiz.error("KLAIDA:" + e);
            }
            if (ntext && ntext != text)
            {
                text = ntext;
                editstack[i].redo();
            }
            else
            {
                editstack = editstack.splice(0, i);
                break;
            }
        }
        currentText = text;
        fixButtons();
    }
 
    //Move an edit from the editstack to the redostack 
    function undo ()
    {
        if (editstack.length == 0)
            return false;
        var edit = editstack.pop();
        redostack.push(edit);
        edit.undo();
 
        updateCurrentText();
        fixButtons();
        return true;
    }
 
    //Move an edit from the redostack to the editstack
    function redo ()
    {
        if (redostack.length == 0)
            return;
        var edit = redostack.pop();
        thiz.addEdit(edit, null, true);
        fixButtons();
    }
 
    //Called on first interaction to request originalText and display presence
    function load ()
    {
        loading = true;
        thiz.page.edit(function (text, _save)
        {
            originalText = text;
            saveCallback = _save;
 
            loading = false;
            loaded = true;
 
            if (!presence)
            {
                savebutton = newNode('button',"Išsaugoti pakeitimus", {'click': save});
                undobutton = newNode('button',"Atšaukti", {'click': undo});
                redobutton = newNode('button', "Pirmyn", {'click':redo});
 
                presence = newNode('div',{'style':"position: fixed; top:0px; left: 0px; background-color: #00FF00; z-index: 10;padding: 30px;"})
                //Fix fixed positioning for IE6/
                /*@cc_on
                    @if (@_jscript_version <= 5.6)
                        presence.style.cssText = "position: absolute; top: expression((dummy = (document.documentElement.scrollTop || document.body.scrollTop || 0)) + 'px'); background-color: #00FF00; z-index: 10000; padding: 30px;"
                    @end
                @*/
                window.setTimeout(function () {
                    presence.style.backgroundColor = "#CCCCFF";
                    presence.style.padding = "10px";
                }, 400);
 
                presence.appendChild(newNode('div',{'style':"position: relative; top:0px; left:0px; margin: -10px; color: #0000FF;cursor:pointer;", click:function () {while(undo());presence.style.display = "none";}},"X"))
                document.body.insertBefore(presence, document.body.firstChild);
                fixButtons();
 
                presence.appendChild(newNode('p',
                    newNode('b', "Puslapio redagavimas"), newNode('br'),
                    savebutton, newNode('br'), undobutton, redobutton))
            }
 
            updateCurrentText();
        });
        fixButtons();
    }
 
    //Send the currentText back to the server to save.
    function save (summary)
    {
        if (loading)
            window.setTimeout(save, 500);
 
        if (!loaded)
            throw "Nėra pakrauta..."; 
 
        loaded = false;
 
        var sum = {};
        for (var i=0; i<editstack.length; i++)
        {
            sum[editstack[i].summary] = true;
        }
        var summary = "";
        for (var name in sum)
        {
            summary += name + " ";
        }
        editstack = [];
        redostack = [];
        if (! savelog)
        {
            savelog = newNode('ul', {style: "background-color: #DDFFDD; margin: 0px -10px -10px -10px; padding: 10px;"});
            presence.appendChild(savelog);
        }
        var saveLi = newNode('li', 'Saugojimas:' + summary + "...");
        savelog.appendChild(saveLi);
        originalText = currentText;
        fixButtons();
        var nst = []
        var node;
        while (node = nodestack.pop())
        {
            nst.push(node);
        }
        saveCallback(currentText, summary + "([[WT:EDIT|Panaudojus]])", function (res)
        {
            try {
                saveLi.appendChild(newNode('span', newNode('b', " Išsaugota "),
                    newNode('a', {'href': wgScript + 
                    '?title=' + encodeURIComponent(mw.config.get('wgPageName')) + 
                    '&diff=' + encodeURIComponent(res.edit.newrevid) +
                    '&oldid=' + encodeURIComponent(res.edit.oldrevid)}, "(Rodyti pakeitimus)")));
            }catch(e){
                if (res.error)
                {
                    thiz.error("Nėra išsaugota: " + String(res.error.info));
                }
                else
                {
                    thiz.error(newNode('p',String(e)));
                }
            }
 
            for (var i=0; i < nst.length; i++)
                nst[i].style.cssText = "background-color: #0F0;border: 2px #0F0 solid;";
 
            window.setTimeout(function () {
                var node;
                while (node = nst.pop())
                    node.style.cssText = "";
            }, 400);
            fixButtons();
 
        });
        fixButtons();
    }
}
 
var util = {
 
    getVanillaIndexOf: function (str, text, pos)
    {
        if (!pos)
            pos = 0;
        var cpos = 0, tpos = 0, wpos = 0, spos = 0;
        do
        {
            cpos = text.indexOf('<!--', pos);
            tpos = text.indexOf('{{', pos);
            wpos = text.indexOf('<nowiki>', pos);
            spos = text.indexOf(str, pos);
 
            pos = Math.min(
                Math.min(
                    cpos == -1 ? Infinity : cpos , 
                    tpos == -1 ? Infinity : tpos
                ), 
                Math.min(
                    wpos == -1 ? Infinity : wpos,
                    spos == -1 ? Infinity : spos
                )
            )
 
            if (pos == spos)
                return pos == Infinity ? -1 : pos;
 
            else if (pos == cpos)
                pos = text.indexOf('-->', pos) + 3;
 
            else if (pos == wpos)
                pos = text.indexOf('</nowiki>', pos) + 9;
 
            else if (pos == tpos) //FIXME
                pos = text.indexOf('}}', pos) + 2;
 
 
        } while (pos < Infinity)
        return -1;
    },
 
    validateNoWikisyntax: function(field, nonempty)
    {
        return function(txt, error)
        {
            if(/[\[\{\|#\}\]]/.test(txt))
                return error("Prašome nenaudoti wiki ženklų ([]{}#|) lauke " + field +".");
            if(nonempty && !txt)
                return error("Prašome nurodyti " + field + ".");
            return txt;
        }
    },
 
    escapeRe: function(txt)
    {
        return txt.replace(/([\\{}(\|)[\].?*+])/g, "\\$1");
    },
 
    getTransTable: function (text, gloss)
    {
        var pos = 0;
        var posl = 0;
        var pos2 = 0
        var transect = [];
        while(pos > -1)
        {
            pos2 = pos
            pos = util.getVanillaIndexOf('{{trans-top', text, pos2+1)	// }}
            posl = util.getVanillaIndexOf('{{ltrans-top', text, pos2+1)	// }}
            if (pos > -1 && posl > -1) pos = Math.min(pos, posl);
            if (pos == -1 && posl > -1) pos = posl;
            //alert(pos+' '+text)
            if (util.matchGloss(text.substr(pos, text.indexOf('\n', pos)-pos), gloss))
            {
                transect.push(pos);
            }
        }
        if (transect.length > 1)
        {
            var poss = transect;
            transect = [];
            for (var i=0; i<poss.length; i++)
            {
                pos = poss[i];
                if (util.matchGloss(gloss, text.substr(pos, text.indexOf('\n', pos)-pos).replace(/\{\{l?trans\-top/mg,'').replace(/\W/g, ' ')))
                {
                    transect.push(pos);
                }
            }
        }
        if (transect.length == 1)
        {
            pos = transect[0];
            pos = text.indexOf('}}\n', pos) + 3;
            var endpos = text.indexOf('{{trans-bottom}}', pos); 
            if (endpos > -1 && pos > -1)
                return [pos, endpos];
        }
 
        return false;
    },
 
    matchGloss: function (line, gloss)
    {
        line = line.replace('{{trans-top}}','{{trans-top|Vertimai}}');
        var words = gloss.split(' ');
        var pos = 0;
        for (var i=0; i < words.length; i++)
        {
            pos = line.indexOf(words[i], pos);
            if (pos == -1)
                return false;
        }
        return pos > -1;
    },
 
    //User:Karelklic
    getTransGlossText: function (node) {
        var ret = '';
        var children = node.childNodes;
        for (var i=0; i<children.length; i++)
        {
            if (children[i].nodeType == 3)
                ret += children[i].nodeValue;
            else if (children[i].nodeName.match(/^(i|b)$/i))
                ret += util.getTransGlossText(children[i]);
            else if (ret.match(/\w$/)) //Prevent new words from being created across node boundaries
                ret += " ";
        }
        // all characters except a-zA-Z0-9 are changed to spaces
        return ret.replace(/\W/g, ' '); 
    },
 
    getTransGloss: function (ul)
    {
        var node = ul;
        while (node && node.className.indexOf('NavFrame') == -1)
            node = node.parentNode;
 
        if (!node) return ''; 
 
        var children = node.childNodes;
        for (var i=0; i< children.length; i++)
        {
            if(children[i].className && children[i].className.indexOf('NavHead') > -1)
                return util.getTransGlossText(children[i]);
 
        }
        return '';
    },
 
    isTrreq: function (li)
    {
        var spans = li.getElementsByTagName('span');
        return (spans && spans.length > 0 && spans[0].className.indexOf("trreq") > -1)
    }
};
 
/**
 * A small amount of common code that can be usefully applied to adder forms.
 *
 * An adder is assumed to be an object that has:
 *
 * .fields  A object mapping field names to either validation functions used
 *          for text fields, or the word 'checkbox'
 * 
 * .createForm  A function () that returns a newNode('form') to be added to the
 *              document (by appending to insertNode)
 * 
 * .onsubmit  A function (values, register (wikitext, callback)) that accepts 
 *            the validated set of values and processes them, the register
 *            function accepts wikitext and a continuation function to be 
 *            called with the result of rendering it.
 *
 * Before onsubmit or any validation functions are called, but after running
 * createForm, a new property .elements will be added to the adder which is a
 * dictionary mapping field names to HTML input elements.
 *
 * @param {editor}  The current editor.
 * @param {adder}  The relevant adder.
 * @param {insertNode}  Where to insert this in the document.
 */
function AdderWrapper (editor, adder, insertNode)
{
    var form = adder.createForm()
    var status = newNode('p');
 
    form.appendChild(status);
    insertNode.appendChild(form);
 
    adder.elements = {};
 
    //This is all because IE doesn't reliably allow form.elements['name']
    for (var i=0; i< form.elements.length; i++)
    {
        adder.elements[form.elements[i].name] = form.elements[i];
    }
 
    form.onsubmit = function ()
    {
        try
        {
            var submit = true;
            var values = {}
            for (var name in adder.fields)
            {
                if (adder.fields[name] == 'checkbox')
                {
                    values[name] = adder.elements[name].checked ? name : false;
                }
                else
                {
                    values[name] = adder.fields[name](adder.elements[name].value || '', function (msg) 
                    {
                        status.appendChild(newNode('span',{style:'color: red'}, msg, newNode('br'))); 
                        return false
                    });
 
                    if (values[name] === false)
                        submit = false;
                }
            }
            if (!submit)
                return false;
 
            status.innerHTML = 'Kraunasi...';
 
            adder.onsubmit(values, function (text, callback)
            {
                editor.page.parseFragment(text, function (res)
                {
                    callback(res.parse.text['*']);
                    status.innerHTML = "";
                });
            });   
        }
        catch(e)
        {
            status.innerHTML = "Klaida:" + e.description; 
            return false;
        }
 
        return false;
    }
 
}
// An adder for translations on en.wikt
function TranslationAdders (editor)
{
    function TranslationAdder (insertUl)
    {
        // Hippietrail
        var langmetadata = new LangMetadata ();
 
        this.fields =  {
            lang: function (txt, error)
            {
                if (/^[a-zA-Z]{2,7}(-[a-z\-]{1,9})?$/.test(txt)) return txt;
                return error("Prašome naudoti kalbos kodus. (en, fr, aaa)")
            },
            word: util.validateNoWikisyntax('vertimas', true),
            qual: util.validateNoWikisyntax('kvalifikatorius'),
            tr: util.validateNoWikisyntax('transkripcija'),
            alt: util.validateNoWikisyntax('puslapio pavadinimas'),
            sc: function (txt, error)
            {
                if (txt && !/^((?:[a-z][a-z][a-z]?-)?[A-Z][a-z][a-z][a-z]|polytonic|unicode)$/.test(txt))
                    return error(newNode('span', "Prašome naudoti ", newNode('a',{href: '/wiki/Kategorija:Fontų šablonai'}," šablonus "), "(Pvz. fa-Arab, Deva, polytonic)"))
 
                    if (!txt)
                    txt = prefs.get('script-' + thiz.elements.lang.value, langmetadata.guessScript(thiz.elements.lang.value) || '');
                    if (txt == 'Latn')
                        txt = '';
                    return txt;
            },
            m: 'checkbox', f: 'checkbox', n: 'checkbox', c: 'checkbox', p: 'checkbox'
        };
 
        this.createForm = function ()
        {
            var controls = {
                lang: newNode('input', {size:4, type:'text', name:'lang', value:prefs.get('curlang',''), title:'Dviejų arba trijų raidžių ISO 639 kalbos kodas'}),
                transliteration: newNode('span', newNode('a', {href: '/wiki/Vikižodynas:Transliteracija'}, "Transliteracija"), ": ", 
                                     newNode('input', {name: "tr", title: "Žodis transliteruotas į lotynišką abėcėlę."}), " (pvz. ázbuka dėl азбука)"),
                qualifier: newNode('p', "Kvalifikatorius: ", newNode('input', {name: 'qual', title: "Žodžio klasifikatorius"}), " (pvz. literatūrinis, formalus, žargonas)"),
                display: newNode('p',"Puslapio pavadinimas: ", newNode('input', {name: 'alt', title: "žodis žodyne."}), " (pvz. amo for amō)"),
                script: newNode('p', newNode('a', {href: '/wiki/Kategorija:Fontų šablonai'},"Fontų šablonus"),": ", 
                    newNode('input', {name: 'sc', size: 6, title: "Šablonas vertimui į atitinkamą kalbą."}), "(pvz. Cyrl dėl Kirilicos, Latn dėl lotynų abėcėlės)", newNode('br')),
                gender_m: newNode('span',newNode('input', {type: 'checkbox', name: 'm'}), 'Vyr. '),
                gender_f: newNode('span', newNode('input', {type: 'checkbox', name: 'f'}), 'Mot. '),
                gender_n: newNode('span', newNode('input', {type: 'checkbox', name: 'n'}), 'Neutr.'),
                gender_c: newNode('span', newNode('input', {type: 'checkbox', name: 'c'}), 'Bendroji giminė'),
                plural: newNode('span', newNode('input', {type: 'checkbox', name: 'p'}), 'Daugiskaita', newNode('br'))
            };
 
            controls.gender = newNode('p', controls.gender_m, controls.gender_f, controls.gender_n, controls.gender_c, controls.plural);
 
            langInput = controls.lang;
 
            var showButton = newNode('span',{'click': function ()
            {
                if (!advancedMode)
                {
                    advancedMode = true;
                    showButton.innerHTML = " Mažiau";
                }
                else
                {
                    advancedMode = false;
                    showButton.innerHTML = " Plačiau";
                }
                updateScriptGuess.call(langInput, true);
            }, 'style':"color: #0000FF;cursor: pointer;"}, advancedMode ? " Mažiau" : " Plačiau");
 
            function autoTransliterate () {
                thiz.elements.alt.value = langmetadata.generateAltForm(thiz.elements.lang.value, thiz.elements.word.value) || '';
                thiz.elements.tr.value = langmetadata.generateTrForm(thiz.elements.lang.value, thiz.elements.word.value) || '';
            }
            function updateScriptGuess (preserve) {
                preserve = (preserve === true);
 
                //show all arguments
                function show ()
                {
                    for (var i=0; i<arguments.length; i++)
                    {
                        if (arguments[i].nodeName.toLowerCase() == 'p')
                            arguments[i].style.display = "block";
                        else
                            arguments[i].style.display = "inline";
                    }
 
                }
                //hide all arguments
                function hide ()
                {
                    for (var i=0; i < arguments.length; i++)
                        arguments[i].style.display = "none";
                }
                //if the first argument is false hide the remaining arguments, otherwise show them.
                function toggle (condition)
                {
                    if (condition) //eww...
                        show.apply(this, [].splice.call(arguments, 1, arguments.length - 1));
                    else
                        hide.apply(this, [].splice.call(arguments, 1, arguments.length - 1));
                }
 
                if (!preserve)
                    langInput.value = cleanLangCode(langInput.value);
 
                var guess = prefs.get('script-' + langInput.value, langmetadata.guessScript(langInput.value || ''));
                if (!preserve)
                {
                    if (guess)
                        thiz.elements.sc.value = guess;
                    else
                        thiz.elements.sc.value = '';
 
                    autoTransliterate();
                }
 
                var lang = langInput.value;
 
                if (!advancedMode)
                {
                    var g = langmetadata.getGenders(lang);
 
                    if (!lang)
                    {
                        hide(controls.gender);
                    }
                    else if (g == undefined)
                    {
                        show(controls.gender,controls.gender_m, controls.gender_f, controls.gender_n, controls.gender_c);
                    }
                    else
                    {
                        toggle(g.indexOf('m') > -1, controls.gender);
                        toggle(g.indexOf('m') > -1, controls.gender_m);
                        toggle(g.indexOf('f') > -1, controls.gender_f);
                        toggle(g.indexOf('n') > -1, controls.gender_n);
                        toggle(g.indexOf('c') > -1, controls.gender_c);
                    }
 
                    var p = langmetadata.hasPlural(lang);
 
                    toggle(p !== false, controls.plural);
                    toggle(g || p, controls.gender); 
 
                    toggle(guess && guess != 'Latn', controls.transliteration);
 
                    var alt = langmetadata.needsAlt(lang);
 
                    toggle(alt === true, controls.display);
 
                    hide(controls.qualifier); //only in more
                    hide(controls.script); //should be in less when array returned from .getScripts
 
                }
                else
                {
                    show(controls.gender_m, controls.gender_f, controls.gender_n, controls.gender_c,
                        controls.plural, controls.transliteration, controls.qualifier, controls.display,
                        controls.script);
                }
            } 
 
            //In browsers other than IE this can be in the newNode function above
            langInput.onchange = updateScriptGuess;
 
            window.setTimeout(function () {updateScriptGuess.call(langInput)}, 0);
 
            inputForm = newNode('form',
                        newNode('p', newNode('a',{href:"/wiki/Naudotojo_aptarimas:Vpovilaitis/editor.js#Panaudojimas"},"Pagalba"),' ',
                            langInput, newNode('b',': '), newNode('input', {'name': 'word', size:20, change:autoTransliterate}),
                            newNode('input',{'type': 'submit', 'value':'Peržiūrėti vertimą'}), showButton
                        ), 
                        controls.gender,
                        controls.transliteration,
                        controls.display,
                        controls.qualifier,
                        controls.script
                    )
            return inputForm;
        }
 
        this.onsubmit = function (values, render)
        {
            var wikitext = '{{' + values.lang + 'v1}} ' + 
            '{{t+' +
            '|' + values.lang + '|' + (values.alt ? values.alt : values.word) + 
            (values.m ? '|m' : '') +
            (values.f ? '|f' : '') +
            (values.n ? '|n' : '') +
            (values.c ? '|c' : '') +
            (values.p ? '|d' : '') +
            (values.tr ? '|tr=' + values.tr : '') + 
            ((values.alt && values.alt != values.word) ? '|alt=' + values.word : '') +
            (values.qual? '|pst=' + values.qual : '') +  
            (values.sc ? '|sc=' + values.sc  : '') + '}}';
            render(wikitext, function (html) { registerEdits(values, wikitext, html)});
        }
 
        var thiz = this;
        var prefs = new Preferences('TranslationAdder');
        var langInput;
        var inputForm;
        var advancedMode = prefs.get('more-display', 'none') != 'none'; //from ye days of yore
 
        //Reset elements to default values.
        function resetElements ()
        {
            if (prefs.get('more-display', 'none') != advancedMode ? 'block' : 'none')
                prefs.set('more-display', advancedMode ? 'block' : 'none'); //named for compatibility
            thiz.elements.word.value = thiz.elements.tr.value = thiz.elements.alt.value = thiz.elements.qual.value = '';
            thiz.elements.m.checked = thiz.elements.f.checked = thiz.elements.n.checked = thiz.elements.c.checked = thiz.elements.p.checked = false;
            prefs.set('curlang', thiz.elements.lang.value);
            if ((thiz.elements.sc.value || 'Latn') != (prefs.get('script-'+thiz.elements.lang.value, langmetadata.guessScript(thiz.elements.lang.value) || 'Latn')))
            {
                prefs.set('script-'+thiz.elements.lang.value, thiz.elements.sc.value); 
                thiz.elements.lang.update();
            }
        }
 
        // This is onsubmit after the wikitext has been rendered to give content
        function registerEdits (values, wikitext, content)
        {
            var li = newNode('li');
            var abeg = content.indexOf('<li>', 0) +4;
            var aend = content.indexOf('</li>', abeg);
            content = content.substr(abeg, aend-abeg)
            li.innerHTML = content
            //alert(content)
            var lang = getLangName(li);
            var summary = 't+' + values.lang + ':[[' + (values.alt || values.word) + ']]';
 
            var insertBefore = null;
            var nextLanguage = null;
 
            function addEdit (edit, span)
            {
                editor.addEdit({
                    'undo': function () 
                    {
                        edit.undo();
                        if (thiz.elements.word.value == "" &&
                            thiz.elements.tr.value == "" &&
                            thiz.elements.alt.value == "" &&
                            thiz.elements.qual.value == "")
                        {
                            var fields = ["lang","word","alt","qual","tr","sc"];
                            var cb = "mnfcp".split("");
                            for (var i=0; i < fields.length; i++)
                            {
                                thiz.elements[fields[i]].value = values[fields[i]];
                            }
                            for (var i=0; i < cb.length; i++)
                            {
                                thiz.elements[fields[i]].checked = values[fields[i]];
                            }
                        }
                    },
                    'redo': function ()
                    {
                        edit.redo();
                        var fields = ["lang","word","alt","qual","tr","sc"];
                        for (var i=0; i < fields.length; i++)
                        {
                            if (thiz.elements[fields[i]].value != values[fields[i]])
                                return;
                        }
                        resetElements();
                    },
                    'edit': edit.edit,
                    'summary': summary
                }, span);
            }
 
 
            if (lang)
            {
                //alert('"'+lang+'"'+cleanLangCode(lang)+'"')
                //Get all li's in this table row. 
                var lis = [];
                var ls = insertUl.parentNode.parentNode.getElementsByTagName('li');
                for (var j=0; j < ls.length; j++)
                    lis.push(ls[j]);
 
                ls = insertUl.parentNode.parentNode.getElementsByTagName('dd');
                for (var j=0; j < ls.length; j++)
                    lis.push(ls[j]);
 
                for (var j=0; j < lis.length; j++)
                {
                    if (lis[j].getElementsByTagName('form').length > 0)
                        continue;
                    var ln = getLangName(lis[j]);
                    //alert('"'+ln+'"')
                    if (ln == cleanLangCode(lang))
                    {
                        var span = newNode('span');
                        var parent = lis[j];
                        if (util.isTrreq(parent))
                        {
                            span.innerHTML = content;
                            var trspan = parent.getElementsByTagName('span')[0];
                            addEdit({
                                'redo': function () { parent.removeChild(trspan); parent.appendChild(span); },
                                'undo': function () { parent.removeChild(span); parent.appendChild(trspan); },
                                'edit': getEditFunction(values, wikitext, ln, values.lang, true, function (text, ipos)
                                {
                                    //Converting a Translation request into a translation
                                    var lineend = text.indexOf('\n', ipos);
                                    return text.substr(0, ipos) + wikitext + text.substr(lineend);
                                })
                            }, span);
                        }
                        else
                        {
                            if (parent.getElementsByTagName('ul').length + parent.getElementsByTagName('dl').length == 0)
                            {
                                content = content.replace(/\<a\ [^\>]*\>\<img\ [^\>]*\>\<\/a\>/g,'')
                                span.innerHTML = ", " + content.substr(content.indexOf(':') + 1);
                                addEdit({
                                    'redo': function () { parent.appendChild(span) },
                                    'undo': function () { parent.removeChild(span) },
                                    'edit': getEditFunction(values, wikitext, ln, values.lang, false, function (text, ipos)
                                            {
                                                 //We are adding the wikitext to a list of translations that already exists.
                                                 var lineend = text.indexOf('\n', ipos);
                                                 wikitext = wikitext.replace('{{' + values.lang + 'v1}} ','');
                                                 //wikitext = wikitext.substr(wikitext.indexOf(':') + 1);
                                                 return text.substr(0, lineend) + ", " + wikitext + text.substr(lineend);
                                            })
                                }, span);
                                return resetElements();
                            }
                            else
                            {
                                var node = parent.firstChild;
                                var hastrans = false;
                                while (node)
                                {
                                    if (node.nodeType == 1)
                                    {
                                        var nn = node.nodeName.toUpperCase();
                                        if (nn == 'UL' || nn == 'DL')
                                        {
                                            content = content.replace(/\<a\ [^\>]*\>\<img\ [^\>]*\>\<\/a\>/g,'')
                                            span.innerHTML = (hastrans ? ", ": " ") + content.substr(content.indexOf(':') + 1);
                                            addEdit({
                                                'redo': function () { parent.insertBefore(span, node) },
                                                'undo': function () { parent.removeChild(span) },
                                                'edit': getEditFunction(values, wikitext, ln, values.lang, false, function (text, ipos)
                                                        {
                                                            //Adding the translation to a language that has nested translations under it
                                                            var lineend = text.indexOf('\n', ipos);
                                                            wikitext = wikitext.replace('{{' + values.lang + 'v1}} ','');
                                                            //wikitext = wikitext.substr(wikitext.indexOf(':') + 1);
                                                            return text.substr(0, lineend) + (hastrans ? ", " : " ") + wikitext + text.substr(lineend);
                                                        })
                                            }, span);
                                            return resetElements();
                                        }
                                        else
                                        {
                                            hastrans = true;
                                        }
 
                                    }
                                    node = node.nextSibling;
                                }
                            }
                        }
                        return resetElements();
                    }
                    else if (ln && edt2Langs[ln] > edt2Langs[cleanLangCode(lang)] && (!nextLanguage || edt2Langs[ln] < edt2Langs[cleanLangCode(nextLanguage)]) && lis[j].parentNode.parentNode.nodeName.toLowerCase() != 'li')
                    {
                        nextLanguage = ln;
                        var parent = lis[j];
                        insertBefore = [
                            {
                                'redo': function () {parent.parentNode.insertBefore(li, parent);},
                                'undo': function () {parent.parentNode.removeChild(li)},
                                'edit': getEditFunction(values, wikitext, ln, getLangCode(parent), util.isTrreq(parent), function (text, ipos)
                                        {
                                            //Adding a new language's translation before another language's translation
                                            var lineend = text.lastIndexOf('\n', ipos);
                                            return text.substr(0, lineend) + "\n" + wikitext + text.substr(lineend);
                                        })
                            },li];
                    }
                }
            }
            if (values.nested)
            {
                nextLanguage = null;
                insertBefore = null;
 
                var lis = insertUl.parentNode.parentNode.getElementsByTagName('li');
                for (var j = 0; j < lis.length; j++)
                {
                    //Ignore the editor form
                    if (lis[j].getElementsByTagName('form').length > 0)
                        continue;
 
                    //Don't look at nested translations
                    if (lis[j].parentNode.parentNode.nodeName.toLowerCase() != 'li')
                        continue;
 
                    var ln = getLangName(lis[j]);
                    if (ln == cleanLangCode(values.nested))
                    {
                        var sublis = lis[j].getElementsByTagName('li');
 
                        if (! sublis.length)
                            sublis = lis[j].getElementsByTagName('dd');
 
                        if (sublis.length == 0)
                        {
                            var parent = lis[j];
                            var dd = newNode('dd');
                            var dl = newNode('dl', dd);
                            dd.innerHTML = content;
 
                            addEdit({
                                'redo': function () {parent.appendChild(dl);},
                                'undo': function () {parent.removeChild(dl);},
                                'edit': getEditFunction(values, wikitext, values.nested, null, util.isTrreq(parent), function (text, ipos)
                                        {
                                            //Adding a new dl to an existing translation line
                                            var lineend = text.indexOf('\n', ipos);
                                            return text.substr(0, lineend) + "\n*: " + wikitext + text.substr(lineend);
                                        })
                            }, dd);
                        }
                        else
                        {
                        //Adding a new dd to an existing dl
 
                        }
 
                        return resetElements();
                    }
                    else if (ln && edt2Langs[ln] > edt2Langs[cleanLangCode(values.nested)] && (!nextLanguage || edt2Langs[ln] < edt2Langs[cleanLangCode(nextLanguage)]))
                    {
                        nextLanguage = ln;
                        var parent = lis[j];
                        li.innerHTML = values.nested + ":" + "<dl><dd>" + content + "</dd></dl>";
                        insertBefore = [
                            {
                                'redo': function () {parent.parentNode.insertBefore(li, parent);},
                                'undo': function () {parent.parentNode.removeChild(li)},
                                'edit': getEditFunction(values, wikitext, ln, getLangCode(parent), util.isTrreq(parent), function (text, ipos)
                                        {
                                            //Adding a new nested translation section.
                                            var lineend = text.lastIndexOf('\n', ipos);
                                            return text.substr(0, lineend) + " " + values.nested + "\n*: " + wikitext + text.substr(lineend);
                                        })
                            },li];
                    }
                }
            }
 
            li.className = "trans-" + wikitext.replace(/.*\{\{subst:/,'').replace(/\}\}.*/, '');
            if (insertBefore)
            {
                addEdit(insertBefore[0], insertBefore[1]);
            }
            else
            {
                //Append the translations to the end (no better way found)
                addEdit({
                    'redo': function () {insertUl.appendChild(li);},
                    'undo': function () {insertUl.removeChild(li)},
                    'edit': getEditFunction(values, wikitext)
                }, li);
            }
            return resetElements();
        }
 
        //Get the wikitext modification for the current form submission.
        function getEditFunction (values, wikitext, findLanguage, findLangCode, trreq, callback)
        {
            return function(text)
            {
                var p = util.getTransTable(text, util.getTransGloss(insertUl));
 
                if (!p)
                    return editor.error("Negalima rasti vertimų lentelės dėl: '" + values.lang + ":" + values.word + "'. Prašome ją sutvarkyti: '"+util.getTransGloss(insertUl)+"'");
 
                var stapos = p[0];
                var endpos = p[1];
 
                if (findLanguage)
                {
                    var ipos = 0;
                    if (trreq)
                    {
                        ipos = text.indexOf('{{versk|'+findLanguage+'|', stapos);
                        if (ipos < 0 || ipos > endpos)
                            ipos = text.indexOf('{{versk|'+findLangCode+'|', stapos);
                        if (ipos < 0 || ipos > endpos)
                            ipos = text.indexOf('{{versk|'+cleanLangCode(findLanguage)+'|', stapos);
                    }
                    else
                    {
 
                        ipos = text.substr(stapos).search(RegExp("\\*[:*]? ?\\[\\[" + util.escapeRe(findLanguage) + "\\]\\]:")) + stapos;
                        if (ipos < stapos || ipos > endpos)
                            ipos = text.substr(stapos).search(RegExp('\\*[:*]? ?' + util.escapeRe(findLanguage) + ':')) + stapos;
                        if (ipos < stapos| ipos > endpos)
                            ipos = text.indexOf('{{'+cleanLangCode(findLanguage)+'v1}}', stapos);
                        if (ipos < stapos| ipos > endpos)
                            ipos = text.indexOf('{{'+findLangCode+'v1}}', stapos);
                    }
                    if (ipos >= stapos && ipos < endpos)
                    {
                        return callback(text, ipos, trreq);
                    }
                    else
                    {
                        return editor.error("Negalima rasti vertimų eilutės dėl kalbos: '" + values.lang + ":" +values.word + "'. Prašome ją performatuoti. "/*+ipos+' '+stapos+' '+endpos*/+'Uzstrigome prie kalbos ("'+findLangCode+'" "'+findLanguage+'" "'+cleanLangCode(findLanguage)+'") eilutės.'/*+'" "'+values.lang+'" '+wikitext+' '+text.substr(stapos)*/);
                    }
                }
 
                return /*callback(text, endpos, trreq);*/text.substr(0, endpos) + "" + wikitext + "\n" + text.substr(endpos);
            };
        }
 
        //Given user input, return a language code. For all languages in ISO 639-1, this will convert the name and the ISO 639-3 code to the -1 code.
        //FIXME: move to meta-data
        function cleanLangCode(lang)
        {
            var key = lang.toLowerCase().replace(/ /g,'');
            var dict = {aar:"aa",afar:"aa",abk:"ab",abkhazian:"ab",afr:"af",afrikaans:"af",aka:"ak",akan:"ak",amh:"am",amharic:"am",ara:"ar",arabic:"ar",arg:"an",aragonese:"an",asm:"as",assamese:"as",ava:"av",avaric:"av",ave:"ae",avestan:"ae",aym:"ay",aymara:"ay",aze:"az",azerbaijani:"az",bak:"ba",bashkir:"ba",bam:"bm",bambara:"bm",bel:"be",belarusian:"be",ben:"bn",bengali:"bn",bis:"bi",bislama:"bi",bod:"bo",tibetan:"bo",bos:"bs",bosnian:"bs",bre:"br",breton:"br",bul:"bg",bulgarian:"bg",cat:"ca",catalan:"ca",ces:"cs",czech:"cs",cha:"ch",chamorro:"ch",che:"ce",chechen:"ce",chu:"cu",churchslavic:"cu",chv:"cv",chuvash:"cv",cor:"kw",cornish:"kw",cos:"co",corsican:"co",cre:"cr",cree:"cr",cym:"cy",welsh:"cy",dan:"da",danish:"da",deu:"de",german:"de",div:"dv",dhivehi:"dv",dzo:"dz",dzongkha:"dz",ell:"el",greek:"el","anglųkalba":"en",eng:"en",english:"en",epo:"eo",esperanto:"eo",est:"et",estonian:"et",eus:"eu",basque:"eu",ewe:"ee",fao:"fo",faroese:"fo",fas:"fa",persian:"fa",fij:"fj",fijian:"fj",fin:"fi",finnish:"fi",fra:"fr",french:"fr",fry:"fy",westernfrisian:"fy",ful:"ff",fulah:"ff",gla:"gd",scottishgaelic:"gd",gle:"ga",irish:"ga",glg:"gl",galician:"gl",glv:"gv",manx:"gv",grn:"gn",guarani:"gn",guj:"gu",gujarati:"gu",hat:"ht",haitian:"ht",hau:"ha",hausa:"ha",heb:"he",hebrew:"he",her:"hz",herero:"hz",hin:"hi",hindi:"hi",hmo:"ho",hirimotu:"ho",hrv:"hr",croatian:"hr",hun:"hu",hungarian:"hu",hye:"hy",armenian:"hy",ibo:"ig",igbo:"ig",ido:"io",iii:"ii",sichuanyi:"ii",iku:"iu",inuktitut:"iu",ile:"ie",interlingue:"ie",ina:"ia",interlingua:"ia",ind:"id",indonesian:"id",ipk:"ik",inupiaq:"ik",isl:"is",icelandic:"is",ita:"it",italian:"it",jav:"jv",javanese:"jv",jpn:"ja",japanese:"ja",kal:"kl",kalaallisut:"kl",kan:"kn",kannada:"kn",kas:"ks",kashmiri:"ks",kat:"ka",georgian:"ka",kau:"kr",kanuri:"kr",kaz:"kk",kazakh:"kk",khm:"km",centralkhmer:"km",kik:"ki",kikuyu:"ki",kin:"rw",kinyarwanda:"rw",kir:"ky",kirghiz:"ky",kom:"kv",komi:"kv",kon:"kg",kongo:"kg",kor:"ko",korean:"ko",kua:"kj",kuanyama:"kj",kur:"ku",kurdish:"ku",lao:"lo",lat:"la",latin:"la",lav:"lv",latvian:"lv",lim:"li",limburgan:"li",lin:"ln",lingala:"ln",lit:"lt",lithuanian:"lt",ltz:"lb",luxembourgish:"lb",lub:"lu",lubakatanga:"lu",lug:"lg",ganda:"lg",mah:"mh",marshallese:"mh",mal:"ml",malayalam:"ml",mar:"mr",marathi:"mr",mkd:"mk",macedonian:"mk",mlg:"mg",malagasy:"mg",mlt:"mt",maltese:"mt",mon:"mn",mongolian:"mn",mri:"mi",maori:"mi",msa:"ms",malay:"ms",mya:"my",burmese:"my",nau:"na",nauru:"na",nav:"nv",navajo:"nv",nbl:"nr",southndebele:"nr",nde:"nd",northndebele:"nd",ndo:"ng",ndonga:"ng",nep:"ne",nepali:"ne",nld:"nl",dutch:"nl",nno:"nn",norwegiannynorsk:"nn",nob:"nb",norwegianbokmal:"nb",nor:"no",norwegian:"no",nya:"ny",nyanja:"ny",oci:"oc",occitan:"oc",oji:"oj",ojibwa:"oj",ori:"or",oriya:"or",orm:"om",oromo:"om",oss:"os",ossetian:"os",pan:"pa",panjabi:"pa",pli:"pi",pali:"pi",pol:"pl",polish:"pl",por:"pt",portuguese:"pt",pus:"ps",pushto:"ps",que:"qu",quechua:"qu",roh:"rm",romansh:"rm",ron:"ro",romanian:"ro",run:"rn",rundi:"rn",rus:"ru",russian:"ru",sag:"sg",sango:"sg",san:"sa",sanskrit:"sa",sin:"si",sinhala:"si",slk:"sk",slovak:"sk",slv:"sl",slovenian:"sl",sme:"se",northernsami:"se",smo:"sm",samoan:"sm",sna:"sn",shona:"sn",snd:"sd",sindhi:"sd",som:"so",somali:"so",sot:"st",southernsotho:"st",spa:"es",spanish:"es",sqi:"sq",albanian:"sq",srd:"sc",sardinian:"sc",srp:"sr",serbian:"sr",ssw:"ss",swati:"ss",sun:"su",sundanese:"su",swa:"sw",swahili:"sw",swe:"sv",swedish:"sv",tah:"ty",tahitian:"ty",tam:"ta",tamil:"ta",tat:"tt",tatar:"tt",tel:"te",telugu:"te",tgk:"tg",tajik:"tg",tgl:"tl",tagalog:"tl",tha:"th",thai:"th",tir:"ti",tigrinya:"ti",ton:"to",tonga:"to",tsn:"tn",tswana:"tn",tso:"ts",tsonga:"ts",tuk:"tk",turkmen:"tk",tur:"tr",turkish:"tr",twi:"tw",uig:"ug",uighur:"ug",ukr:"uk",ukrainian:"uk",urd:"ur",urdu:"ur",uzb:"uz",uzbek:"uz",ven:"ve",venda:"ve",vie:"vi",vietnamese:"vi",vol:"vo",volapuk:"vo",wln:"wa",walloon:"wa",wol:"wo",wolof:"wo",xho:"xh",xhosa:"xh",yid:"yi",yiddish:"yi",yor:"yo",yoruba:"yo",zha:"za",zhuang:"za",zho:"zh",chinese:"zh",zul:"zu",zulu:"zu"};
            if (dict[key])
                return dict[key];
            else
                key = lang.toLowerCase().replace(/ /g,'').replace(/\s*/g,'');
                if (edtLangs[key])
                    return edtLangs[key];
                else
                    return lang;
        }
        // For an <li> in well-formed translation sections, return the language name.
        function getLangName(li)
        {
            var guess = li.textContent || li.innerText;
 
            if (guess)
                guess = guess.substr(0, guess.indexOf(':'));
  
            if (guess == 'Template')
                return false;
            guess = cleanLangCode(guess)

            return guess;
        }
 
        // Try to get the language code from an <li> containing {{t t+ or t-	// }}
        function getLangCode(li)
        {
            var spans = li.getElementsByTagName('span');
            for (var i=0; i < spans.length; i++)
            {
                if (spans[i].className == "tlc")
                    return spans[i].innerHTML;
            }
            if (li.className.indexOf('trans-') == 0)
                return li.className.substr(2);
            return false;
        }
 
    }
    var tables = document.getElementsByTagName('table');
    for (var i=0; i<tables.length; i++)
    {
        if (tables[i].className.indexOf('translations') > -1 && util.getTransGloss(tables[i]) != 'Translations to be checked')
        {
            var _lists = tables[i].getElementsByTagName('ul');
            var lists = [];
            for (var j=0; j<_lists.length; j++)
                if (_lists[j].parentNode.nodeName.toLowerCase() == 'td')
                    lists.push(_lists[j]);
 
            if (lists.length == 0)
            {
                tables[i].getElementsByTagName('td')[0].appendChild(newNode('ul'));
                lists = tables[i].getElementsByTagName('ul');
            }
            if (lists.length == 1)
            {
                var table = tables[i].getElementsByTagName('td')[2]
                if (table)
                {
                    table.appendChild(newNode('ul'));
                    lists = tables[i].getElementsByTagName('ul');
                }
            }
            if (lists)
            {
                var li = newNode('li');
                var ul = lists[lists.length - 1];
                var table = tables[i];
                if (table.getElementsByTagName('tbody').length > 0)
                    table = table.getElementsByTagName('tbody')[0];
                table.appendChild(newNode('tr', newNode('td'), newNode('td'), newNode('td', {'style':'text-align: left'},newNode('ul', li))));
                new AdderWrapper(editor, new TranslationAdder(ul), li);
            }
        }
    }
}
 
function TranslationBalancers(editor)
{
    function TranslationBalancer (insertTd)
    {
        var left;
        var right;
        var moveLeft;
        var moveRight;
 
        //create the form
        function init ()
        {
            var cns = insertTd.parentNode.childNodes;
            var tds = []; 
            for (var i=0; i<cns.length; i++)
            {
                if (cns[i].nodeName.toUpperCase() == 'TD')
                    tds.push(cns[i])
            }
 
            left = tds[0].getElementsByTagName('ul');
            if (left.length > 0)
                left = left[0];
            else
            {
                left = newNode('ul');
                tds[0].appendChild(left);
            }
 
            right = tds[2].getElementsByTagName('ul');
            if (right.length > 0)
                right = right[0];
            else
            {
                right = newNode('ul');
                tds[2].appendChild(right);
            }
 
            moveLeft = newNode('input',{'type':'submit','name':'ml', 'value':'←', 'click': function(){return getEditObject('←')}});
            moveRight = newNode('input',{'type':'submit','name':'mr', 'value':'→', 'click': function(){return getEditObject('→')}});
 
            var form = newNode('form', moveLeft, newNode('br'), moveRight);
            insertTd.appendChild(form);
            form.onsubmit = function () { return false; }
        }
 
        //store the edit object with the editor
        function getEditObject(move)
        {
            if (move == '→')
            {
                var li = left.lastChild;
                while (li && li.nodeName.toLowerCase() != 'li')
                    li = li.previousSibling;
 
                if (li && li.childNodes.length > li.getElementsByTagName('form').length)
                {
                    editor.addEdit({
                        'redo': function () {left.removeChild(li); right.insertBefore(li, right.firstChild);},
                        'undo': function () {right.removeChild(li); left.appendChild(li);},
                        'edit': getEdit(util.getTransGloss(moveRight.parentNode), true),
                        'summary': 't-balance'
                    });
                }
            }
            else if (move == '←')
            {
                var li = right.firstChild;
                while (li && li.nodeName.toLowerCase() != 'li')
                    li = li.nextSibling;
 
                if (li && li.childNodes.length > li.getElementsByTagName('form').length)
                {
                    editor.addEdit({
                        'redo': function () {right.removeChild(li); left.appendChild(li);},
                        'undo': function () {left.removeChild(li); right.insertBefore(li, right.firstChild);},
                        'edit': getEdit(util.getTransGloss(moveLeft.parentNode), false),
                        'summary': 't-balance'
                    });
                }
            }
        }
 
        //get the wikitext modification
        function getEdit(gloss, moveRight)
        {
            return function (text)
            {
                var p = util.getTransTable(text, gloss);
 
                if (!p)
                    return editor.error("Negalima rasti vertimų lentelės. Prašome ją sutvarkyti");
 
                var stapos = p[0];
                var endpos = p[1];
 
                var midpos = text.indexOf('{{trans-mid}}', stapos);
 
                if (midpos < stapos || midpos > endpos)
                    return editor.error("Negalima rasti {{trans-mid}}, prašome pakoreguoti puslapį.");
 
                var midstart = text.lastIndexOf("\n", midpos);
                var midend = text.indexOf("\n", midpos);
 
                if (moveRight)
                {
                    var linestart = text.lastIndexOf("\n", midstart - 3);
                    while (/^[:*#;]$/.test(text.substr(linestart+2,1)))
                        linestart = text.lastIndexOf("\n", linestart - 1);
 
                    return text.substr(0, linestart) + text.substr(midstart, midend - midstart)
                           + text.substr(linestart, midstart - linestart) + text.substr(midend);
                }
                else
                {
                    var lineend = text.indexOf("\n", midend + 3);
                    while (/^[:*#;]$/.test(text.substr(lineend+2,1)))
                        lineend = text.indexOf("\n", lineend + 1);
 
                    return text.substr(0, midstart) + text.substr(midend, lineend - midend)
                            + text.substr(midstart, midend - midstart) + text.substr(lineend);
                }
            }
        }
        init();
    }
 
    var tables = document.getElementsByTagName('table');
    for (var i=0; i<tables.length; i++)
    {
        if (tables[i].className.indexOf('translations') > -1 && util.getTransGloss(tables[i]) != 'Translations to be checked')
        {
            var tr = tables[i].getElementsByTagName('tr')[0];
 
            var passed = 0;
            for (var j=0; j<tr.childNodes.length; j++)
            {
                if (tr.childNodes[j].nodeName.toUpperCase() == 'TD')
                {
                    if (passed == 1)
                    {
                        new TranslationBalancer(tr.childNodes[j]);
                    }
                    passed ++;
                }
            }
        }
    }
 
}
 
function LangMetadata ()
{
    //Singleton
    if (arguments.callee.instance)
        return arguments.callee.instance
    else
        arguments.callee.instance = this;
 
 
    var metadata = {aa:{hw:true,sc:["Latn","Ethi"]},ab:{hw:true,sc:["Cyrl","Latn","Geor"]},af:{g:"",hw:true,p:true,sc:"Latn"},ak:{hw:true},akk:{g:"mf",p:true,sc:"Xsux"},als:{hw:true},am:{g:"mf",hw:true,p:true,sc:"Ethi"},an:{hw:true,sc:"Latn"},ang:{alt:true,g:"mfn",hw:true,p:true,sc:"Latn"},ar:{alt:true,g:"mf",hw:true,p:true,sc:"Arab"},arc:{g:"mf",p:true,sc:"Hebr"},arz:{alt:true,g:"mf",p:true,sc:"Arab"},as:{hw:true,sc:"Beng"},ast:{g:"mf",hw:true,p:true,sc:"Latn"},av:{hw:true,sc:"Cyrl"},ay:{hw:true},az:{alt:false,g:"",hw:true,sc:["Latn","Cyrl","Arab"]},ba:{hw:true,sc:"Cyrl"},bar:{sc:"Latn"},"bat-smg":{g:"mf",p:true,sc:"Latn"},be:{g:"mfn",hw:true,p:true,sc:["Cyrl","Latn"]},"be-x-old":{sc:"Cyrl"},bg:{g:"mfn",hw:true,p:true,sc:"Cyrl"},bh:{hw:true,sc:"Deva"},bhb:{sc:"Deva"},bi:{hw:true,sc:"Latn"},blt:{sc:"Tavt"},bm:{hw:true,sc:["Latn","Nkoo","Arab"]},bn:{g:"",hw:true,sc:"Beng"},bo:{hw:true,sc:"Tibt"},br:{g:"mf",hw:true,sc:"Latn"},bs:{hw:true,sc:"Latn"},ca:{g:"mf",hw:true,p:true,sc:"Latn"},ch:{hw:true,sc:"Latn"},chr:{hw:true,sc:"Cher"},co:{hw:true,sc:"Latn"},cr:{hw:true,sc:"Cans"},crh:{alt:false,g:"",sc:"Latn"},cs:{g:"mfn",hw:true,p:true,sc:"Latn"},csb:{hw:true},cu:{g:"mfn",p:true,sc:["Cyrs","Glag"]},cv:{alt:false,g:"",sc:"Cyrl"},cy:{g:"mf",hw:true,p:true,sc:"Latn"},da:{g:"cn",hw:true,p:true,sc:"Latn"},de:{g:"mfn",hw:true,p:true,sc:"Latn"},dv:{hw:true,p:true,sc:"Thaa"},dz:{hw:true,sc:"Tibt"},el:{g:"mfn",hw:true,p:true,sc:"Grek"},en:{g:"",hw:true,p:true,sc:"Latn"},eo:{g:"",hw:true,p:true,sc:"Latn"},es:{alt:false,g:"mf",hw:true,p:true,sc:"Latn"},et:{alt:false,g:"",hw:true,p:true,sc:"Latn"},ett:{p:true,sc:"Ital"},eu:{alt:false,g:"",hw:true,p:true,sc:"Latn"},fa:{g:"",hw:true,sc:"Arab",wsc:"fa-Arab"},fi:{g:"",hw:true,p:true,sc:"Latn"},fil:{g:"",p:false,sc:"Latn"},fj:{hw:true,sc:"Latn"},fo:{g:"mfn",hw:true,sc:"Latn"},fr:{alt:false,g:"mf",hw:true,p:true,sc:"Latn"},fy:{hw:true,sc:"Latn"},ga:{hw:true,sc:"Latn"},gd:{hw:true,sc:"Latn"},gez:{sc:"Ethi"},gl:{g:"mf",hw:true,p:true,sc:"Latn"},gmy:{sc:"Linb"},gn:{hw:true},got:{sc:"Goth"},grc:{g:"mfn",p:true,sc:"Grek",wsc:"polytonic"},gu:{hw:true,sc:"Gujr"},gv:{hw:true},ha:{hw:true},har:{sc:"Ethi"},he:{alt:true,g:"mf",hw:true,p:true,sc:"Hebr"},hi:{g:"mf",hw:true,p:true,sc:"Deva"},hit:{sc:"Xsux"},hr:{alt:true,g:"mfn",hw:true,p:true,sc:"Latn"},hsb:{hw:true},hu:{alt:false,g:"",hw:true,p:true,sc:"Latn"},hy:{alt:false,g:"",hw:true,sc:"Armn"},ia:{alt:false,g:"",hw:true,sc:"Latn"},id:{hw:true,sc:"Latn"},ie:{alt:false,g:"",hw:true,sc:"Latn"},ik:{hw:true},ims:{sc:"Ital"},io:{hw:true},is:{alt:false,g:"mfn",hw:true,p:true,sc:"Latn"},it:{alt:false,g:"mf",hw:true,p:true,sc:"Latn"},iu:{hw:true},ja:{alt:false,g:"",hw:true,p:false,sc:"Jpan"},jbo:{hw:true,sc:"Latn"},jv:{hw:true},ka:{alt:false,g:"",hw:true,sc:"Geor"},khb:{sc:"Talu"},kjh:{sc:"Cyrl"},kk:{alt:false,g:"",hw:true,sc:"Cyrl"},kl:{hw:true},km:{hw:true,sc:"Khmr"},kn:{hw:true,sc:"Knda"},ko:{alt:false,g:"",hw:true,p:false,sc:"Kore"},ks:{hw:true,sc:["Arab","Deva"],wsc:"ks-Arab"},ku:{hw:true,sc:"Arab",wsc:"ku-Arab"},kw:{hw:true},ky:{alt:false,g:"",hw:true,sc:"Cyrl"},la:{alt:true,g:"mfn",hw:true,p:true,sc:"Latn"},lb:{hw:true},lez:{sc:"Cyrl"},li:{hw:true},ln:{hw:true},lo:{alt:false,g:"",hw:true,p:false,sc:"Laoo"},lt:{alt:true,g:"mf",hw:true,p:true,sc:"Latn"},lv:{alt:false,g:"mf",hw:true,p:true,sc:"Latn"},mg:{hw:true},mh:{hw:true},mi:{alt:false,g:0,hw:true,sc:"Latn"},mk:{g:"mfn",hw:true,p:true,sc:"Cyrl"},ml:{g:"",hw:true,sc:"Mlym"},mn:{alt:false,g:"",hw:true,sc:["Cyrl","Mong"]},mo:{hw:true,sc:"Cyrl"},mol:{sc:"Cyrl"},mr:{g:"mfn",hw:true,sc:"Deva"},ms:{hw:true,sc:["Latn","Arab"]},mt:{g:"mf",hw:true,sc:"Latn"},my:{hw:true,sc:"Mymr"},na:{hw:true},nah:{hw:true},nds:{hw:true},ne:{hw:true,sc:"Deva"},nl:{alt:false,g:"mfn",hw:true,p:true,sc:"Latn"},nn:{alt:false,g:"mfn",hw:true,p:true,sc:"Latn"},no:{alt:false,g:"mfn",hw:true,p:true,sc:"Latn"},oc:{g:"mf",hw:true,p:true,sc:"Latn"},om:{hw:true},or:{hw:true,sc:"Orya"},os:{alt:false,g:"",sc:"Cyrl"},osc:{sc:"Ital"},ota:{sc:"Arab",wsc:"ota-Arab"},pa:{g:"mf",hw:true,p:true,sc:["Guru","Arab"]},peo:{sc:"Xpeo"},phn:{sc:"Phnx"},pi:{hw:true},pjt:{sc:"Latn"},pl:{g:"mfn",hw:true,p:true,sc:"Latn"},ps:{hw:true,sc:"Arab",wsc:"ps-Arab"},pt:{alt:false,g:"mf",hw:true,p:true,sc:"Latn"},qu:{hw:true},rm:{g:"mf",hw:true,sc:"Latn"},rn:{hw:true},ro:{g:"mfn",hw:true,p:true,sc:["Latn","Cyrl"]},"roa-rup":{hw:true},ru:{alt:true,g:"mfn",hw:true,p:true,sc:"Cyrl"},rw:{hw:true,sc:"Latn"},sa:{g:"mfn",hw:true,p:true,sc:"Deva"},sc:{hw:true},scn:{g:"mf",hw:true,p:true,sc:"Latn"},sd:{hw:true,sc:"Arab",wsc:"sd-Arab"},sg:{hw:true},sh:{hw:true},si:{hw:true,sc:"Sinh"},simple:{hw:true,sc:"Latn"},sk:{g:"mfn",hw:true,p:true,sc:"Latn"},sl:{g:"mfn",hw:true,p:true,sc:"Latn"},sm:{hw:true},sn:{hw:true},so:{hw:true},spx:{sc:"Ital"},sq:{alt:false,g:"mf",hw:true,sc:"Latn"},sr:{g:"mfn",hw:true,p:true,sc:["Cyrl","Latn"]},ss:{hw:true},st:{hw:true},su:{hw:true},sux:{sc:"Xsux"},sv:{alt:false,g:"cn",hw:true,p:true,sc:"Latn"},sw:{alt:false,g:"",hw:true,sc:"Latn"},syr:{sc:"Syrc"},ta:{alt:false,g:"",hw:true,sc:"Taml"},tdd:{sc:"Tale"},te:{alt:false,g:"",hw:true,sc:"Telu"},tg:{alt:false,g:"",hw:true,sc:"Cyrl"},th:{alt:false,g:"",hw:true,p:false,sc:"Thai"},ti:{hw:true,sc:"Ethi"},tig:{sc:"Ethi"},tk:{alt:false,g:"",hw:true,sc:"Latn"},tl:{g:"",hw:true,p:false,sc:["Latn","Tglg"]},tmr:{sc:"Hebr"},tn:{hw:true},to:{hw:true},tokipona:{hw:true},tpi:{hw:true,sc:"Latn"},tr:{alt:true,g:"",hw:true,p:true,sc:"Latn"},ts:{hw:true},tt:{alt:false,g:"",hw:true,sc:"Cyrl"},tw:{hw:true},ug:{hw:true,sc:"Arab",wsc:"ug-Arab"},uga:{sc:"Ugar"},uk:{alt:true,g:"mfn",hw:true,p:true,sc:"Cyrl"},ur:{g:"mf",hw:true,p:true,sc:"Arab",wsc:"ur-Arab"},uz:{alt:false,g:"",hw:true,sc:"Latn"},vi:{g:"",hw:true,p:false,sc:"Latn"},vo:{hw:true},wa:{hw:true},wo:{hw:true},xae:{sc:"Ital"},xcr:{sc:"Cari"},xfa:{sc:"Ital"},xh:{hw:true},xlc:{sc:"Lyci"},xld:{sc:"Lydi"},xlu:{sc:"Xsux"},xrr:{sc:"Ital"},xst:{sc:"Ethi"},xum:{sc:"Ital"},xve:{sc:"Ital"},xvo:{sc:"Ital"},yi:{g:"mfn",hw:true,p:true,sc:"Hebr",wsc:"yi-Hebr"},yo:{hw:true},yua:{alt:true,p:true,sc:"Latn"},za:{hw:true},zh:{g:"",hw:true,p:false,sc:"Hani"},"zh-classical":{sc:"Hant"},"zh-min-nan":{hw:true,sc:"Latn"},"zh-yue":{sc:"Hani"},zu:{hw:true,sc:"Latn"}};
 
    //The language code is necessary in case someone has just added a translation into "Norwegian" and wants to add a "Nynorsk" translation
    //as the wikitext will contain Norwegian: not Norwegian:. This does not support linking of the headings, it may not need to.
    // FIXME: This is all wrong.... 
    var nesting = {nn: ['Norwegian', 'no'], nb: ['Norwegian', 'no'], dsb: ['Sorbian',null], hsb: ['Sorbian',null], ang:['English','en'], enm: ['English','en']}
 
    var altForm = {
        ang: {from:"ĀāǢǣĊċĒēĠġĪīŌōŪūȲȳ", to:"AaÆæCcEeGgIiOoUuYy", strip:"\u0304\u0307"}, //macron and above dot
        ar: {strip:"\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652"},
        he: {strip:"\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BF\u05C1\u05C2"},
        hr: {from:"ȀȁÀàȂȃÁáĀāȄȅÈèȆȇÉéĒēȈȉÌìȊȋÍíĪīȌȍÒòȎȏÓóŌōȐȑȒȓŔŕȔȕÙùȖȗÚúŪū",
             to:"AaAaAaAaAaEeEeEeEeEeIiIiIiIiIiOoOoOoOoOoRrRrRrUuUuUuUuUu",
             strip:"\u030F\u0300\u0311\u0301\u0304"},
        la: {from:"ĀāĒēĪīŌōŪū", to:"AaEeIiOoUu",strip:"\u0304"}, //macron
        lt: {from:"áãàéẽèìýỹñóõòúù", to:"aaaeeeiyynooouu", strip:"\u0340\u0301\u0303"},
        sh: {from:"ȀȁÀàȂȃÁáĀāȄȅÈèȆȇÉéĒēȈȉÌìȊȋÍíĪīȌȍÒòȎȏÓóŌōȐȑȒȓŔŕȔȕÙùȖȗÚúŪū",
             to:"AaAaAaAaAaEeEeEeEeEeIiIiIiIiIiOoOoOoOoOoRrRrRrUuUuUuUuUu",
             strip:"\u030F\u0300\u0311\u0301\u0304"},
        sr: {from:"ȀȁÀàȂȃÁáĀāȄȅÈèȆȇÉéĒēȈȉÌìȊȋÍíĪīȌȍÒòȎȏÓóŌōȐȑȒȓŔŕȔȕÙùȖȗÚúŪū",
             to:"AaAaAaAaAaEeEeEeEeEeIiIiIiIiIiOoOoOoOoOoRrRrRrUuUuUuUuUu",
             strip:"\u030F\u0300\u0311\u0301\u0304"},
        tr: {from:"ÂâÛû", to:"AaUu",strip:"\u0302"}
    }; 
    var trForm = {
        ru: {from:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЪЫЬЭабвгдежзийклмнопрстуфхцчшъыьэ",
             to:  "ABVGDEŽZIJKLMNOPRSTUFXCČŠ”Y’Eabvgdežzijklmnoprstufxcčš”y’e",
             strip:"",
             map:{"Ё": "Jo", "Щ":"Šč", "Ю":"Ju", "Я":"Ja", "ё": "jo", "щ":"šč", "ю":"ju", "я":"ja"}, alt:true}
    }; 
    //Returns true if the specified lang.wiktionary exists according to the meta list
    this.hasWiktionary = function(lang)
    {
        if (metadata[lang])
            return metadata[lang].hw;
    }
 
    //Given a language code return a default script code.
    this.guessScript = function(lang)
    {
        if (metadata[lang]) {
            // enwikt language template? (ur-Arab, polytonic)
            if (metadata[lang].wsc) {
                return metadata[lang].wsc;
            }
            // ISO script code? (Arab, Grek)
            if (metadata[lang].sc) {
                if (typeof metadata[lang].sc == 'object')
                    return metadata[lang].sc[0];
                else
                    return metadata[lang].sc;
            }
        }
 
        return false;
    }
 
    //Returns a string of standard gender letters (mfnc) or an empty string
    this.getGenders = function(lang)
    {
        if (metadata[lang])
            return metadata[lang].g;
    }
 
    //Returns true if the specified lang has the concept of plural nouns
    this.hasPlural = function(lang)
    {
        if (metadata[lang])
            return metadata[lang].p;
    }
 
    //Returns true if the specified lang uses optional vowels or diacritics
    this.needsAlt = function(lang)
    {
        if (metadata[lang])
            return metadata[lang].alt && (!altForm[lang]);
    }
 
//    this.nestedUnder = function (lang)
//    {
//        if (nesting[lang])
//            return nesting[lang];
//    }
 
    this.generateAltForm = function (lang, word)
    {
        //FIXME: use a dictionary and iterate along the string.
        // this is horrendously slow and horrid.
        if (altForm[lang])
        {
            var alt = altForm[lang];
 
            var map = {};
 
            if (alt.from && alt.to)
            {
                for (var i = 0; i < alt.from.length; i++)
                {
                    map[alt.from.charAt(i)] = alt.to.charAt(i);
                }
            }
            if (alt.strip)
            {
                for (var i = 0; i < alt.strip.length; i++)
                {
                    map[alt.strip.charAt(i)] = "";
                }
            }
            if (alt.map)
            {
                for (var i in alt.map)
                {
                    map[i] = alt.map[i];
                }
            }
 
            var input = word.split("");
            var output = "";
 
            for (var i = 0; i < input.length; i++)
            {
                var repl = map[input[i]];
                output += (repl == null) ? input[i] : repl;
            }
            return output;
        }
    }

    this.generateTrForm = function (lang, word)
    {
        //FIXME: use a dictionary and iterate along the string.
        // this is horrendously slow and horrid.
        if (trForm[lang])
        {
            var tr = trForm[lang];
 
            var map = {};
 
            if (tr.from && tr.to)
            {
                for (var i = 0; i < tr.from.length; i++)
                {
                    map[tr.from.charAt(i)] = tr.to.charAt(i);
                }
            }
            if (tr.strip)
            {
                for (var i = 0; i < tr.strip.length; i++)
                {
                    map[tr.strip.charAt(i)] = "";
                }
            }
            if (tr.map)
            {
                for (var i in tr.map)
                {
                    map[i] = tr.map[i];
                }
            }
 
            var input = word.split("");
            var output = "";
 
            for (var i = 0; i < input.length; i++)
            {
                var repl = map[input[i]];
                output += (repl == null) ? input[i] : repl;
            }
            return output;
        }
    }
}

window.edtInitObject = function(array, preset) {
 
    for (var key in preset) {
        if (typeof(key) != 'string') {
            continue;
        }
        if (array[key] == null) {
            array[key] = preset[key];
        }
    }
    return;
}
 
if (typeof(edtLangs) == 'undefined') { window.edtLangs = {}; }
 
window.edtLangsInitText = function() { 
   edtInitObject(edtLangs, {
 
      "lietuvių kalba":        "lt",
      "lietuviųkalba":        "lt",
      "abau kalba":        "aau",
      "abaukalba":        "aau",
      "abazų kalba":        "abq",
      "abazųkalba":        "abq",
      "abchazų kalba":        "ab",
      "abchazųkalba":        "ab",
      "abenakų kalba":        "abe",
      "abenakųkalba":        "abe",
      "abujų kalba":        "abz",
      "abujųkalba":        "abz",
      "abunų kalba":        "kgr",
      "abunųkalba":        "kgr",
      "actekų kalba":        "nah",
      "actekųkalba":        "nah",
      "adygų kalba":        "ady",
      "adygųkalba":        "ady",
      "adzerų kalba":        "adz",
      "adzerųkalba":        "adz",
      "adžijų kalba":        "aji",
      "adžijųkalba":        "aji",
      "adžių kalba":        "adi",
      "adžiųkalba":        "adi",
      "afarų kalba":        "aa",
      "afarųkalba":        "aa",
      "afrikanų kalba":        "af",
      "afrikanųkalba":        "af",
      "afų kalba":        "afo",
      "afųkalba":        "afo",
      "agovų kalba":        "awn",
      "agovųkalba":        "awn",
      "agulų kalba":        "agx",
      "agulųkalba":        "agx",
      "agvarunų kalba":        "agr",
      "agvarunųkalba":        "agr",
      "ahtna kalba":        "aht",
      "ahtnakalba":        "aht",
      "aikių kalba":        "aik",
      "aikiųkalba":        "aik",
      "aimarų kalba":        "ay",
      "aimarųkalba":        "ay",
      "ainių kalba":        "aib",
      "ainiųkalba":        "aib",
      "ainų kalba":        "ain",
      "ainųkalba":        "ain",
      "airių kalba":        "ga",
      "airiųkalba":        "ga",
      "aivų kalba":        "nfl",
      "aivųkalba":        "nfl",
      "ajerų kalba":        "aye",
      "ajerųkalba":        "aye",
      "ajų kalba":        "ayu",
      "ajųkalba":        "ayu",
      "akadų kalba":        "akk",
      "akadųkalba":        "akk",
      "akanų kalba":        "ak",
      "akanųkalba":        "ak",
      "akavajų kalba":        "ake",
      "akavajųkalba":        "ake",
      "aklanų kalba":        "akl",
      "aklanųkalba":        "akl",
      "akų kalba":        "ahk",
      "akųkalba":        "ahk",
      "alabamiečių kalba":        "akz",
      "alabamiečiųkalba":        "akz",
      "alamblakų kalba":        "amp",
      "alamblakųkalba":        "amp",
      "albanų ghekų kalba":        "aln",
      "albanųghekųkalba":        "aln",
      "albanų kalba":        "sq",
      "albanųkalba":        "sq",
      "alemanų kalba":        "als",
      "alemanųkalba":        "als",
      "aleutų kalba":        "ale",
      "aleutųkalba":        "ale",
      "algonkinų kalba":        "alq",
      "algonkinųkalba":        "alq",
      "aliutikų kalba":        "ems",
      "aliutikųkalba":        "ems",
      "aliutorių kalba":        "alr",
      "aliutoriųkalba":        "alr",
      "alsėjų kalba":        "aes",
      "alsėjųkalba":        "aes",
      "altajiečių kalba":        "tut",
      "altajiečiųkalba":        "tut",
      "alumų-tesų kalba":        "aab",
      "alumų-tesųkalba":        "aab",
      "alunų kalba":        "alp",
      "alunųkalba":        "alp",
      "alų kalba":        "ahs",
      "alųkalba":        "ahs",
      "alžyro arabų kalba":        "arq",
      "alžyroarabųkalba":        "arq",
      "amahajų kalba":        "amq",
      "amahajųkalba":        "amq",
      "amahuakų kalba":        "amc",
      "amahuakųkalba":        "amc",
      "amajų kalba":        "ame",
      "amajųkalba":        "ame",
      "amamių kalba":        "ams",
      "amamiųkalba":        "ams",
      "amanabų kalba":        "amn",
      "amanabųkalba":        "amn",
      "amarakaerių kalba":        "amr",
      "amarakaeriųkalba":        "amr",
      "amarų kalba":        "aie",
      "amarųkalba":        "aie",
      "amatlano zapotekų kalba":        "zpo",
      "amatlanozapotekųkalba":        "zpo",
      "ambajų kalba":        "amk",
      "ambajųkalba":        "amk",
      "ambulasų kalba":        "abt",
      "ambulasųkalba":        "abt",
      "amdangų kalba":        "amj",
      "amdangųkalba":        "amj",
      "amerikiečių ženklų kalba":        "ase",
      "amerikiečiųženklųkalba":        "ase",
      "amharų kalba":        "am",
      "amharųkalba":        "am",
      "amių kalba":        "ami",
      "amiųkalba":        "ami",
      "amonitų kalba":        "aoq",
      "amonitųkalba":        "aoq",
      "amuzgų kalba":        "amu",
      "amuzgųkalba":        "amu",
      "amų kalba":        "amm",
      "amųkalba":        "amm",
      "anatingo dugonų kalba":        "dti",
      "anatingodugonųkalba":        "dti",
      "andžių kalba":        "ani",
      "andžiųkalba":        "ani",
      "aneičių kalba":        "aty",
      "aneičiųkalba":        "aty",
      "anesų kalba":        "ane",
      "anesųkalba":        "ane",
      "angasų kalba":        "anc",
      "angasųkalba":        "anc",
      "anglų kalba":        "en",
      "anglųkalba":        "en",
      "angorų kalba":        "agg",
      "angorųkalba":        "agg",
      "antilų kreolų kalba":        "gcf",
      "antilųkreolųkalba":        "gcf",
      "anutų kalba":        "aud",
      "anutųkalba":        "aud",
      "apatanių kalba":        "apt",
      "apataniųkalba":        "apt",
      "apačų kalba":        "apach",
      "apačųkalba":        "apach",
      "apmų kalba":        "app",
      "apmųkalba":        "app",
      "arabelų kalba":        "arl",
      "arabelųkalba":        "arl",
      "arabų kalba":        "ar",
      "arabųkalba":        "ar",
      "aragosų kalba":        "an",
      "aragosųkalba":        "an",
      "aragurų kalba":        "axx",
      "aragurųkalba":        "axx",
      "arakių kalba":        "akr",
      "arakiųkalba":        "akr",
      "aramėjų kalba":        "arc",
      "aramėjųkalba":        "arc",
      "araonų kalba":        "aro",
      "araonųkalba":        "aro",
      "arapahų kalba":        "arp",
      "arapahųkalba":        "arp",
      "arborų kalba":        "arv",
      "arborųkalba":        "arv",
      "arearių kalba":        "alu",
      "areariųkalba":        "alu",
      "arių kalba":        "aiw",
      "ariųkalba":        "aiw",
      "armėnų kalba":        "hy",
      "armėnųkalba":        "hy",
      "aromanų kalba":        "roa-rup",
      "aromanųkalba":        "roa-rup",
      "aromanų kalba":        "rup",
      "aromanųkalba":        "rup",
      "arosių kalba":        "aia",
      "arosiųkalba":        "aia",
      "arčiarų kalba":        "aph",
      "arčiarųkalba":        "aph",
      "arčių kalba":        "aqc",
      "arčiųkalba":        "aqc",
      "asamų kalba":        "as",
      "asamųkalba":        "as",
      "asiniboinų kalba":        "asb",
      "asiniboinųkalba":        "asb",
      "asturianų kalba":        "ast",
      "asturianųkalba":        "ast",
      "atakapų kalba":        "aqp",
      "atakapųkalba":        "aqp",
      "audžilų kalba":        "auj",
      "audžilųkalba":        "auj",
      "auenų kalba":        "aue",
      "auenųkalba":        "aue",
      "aujanų kalba":        "auy",
      "aujanųkalba":        "auy",
      "aukštutinių sorbų kalba":        "hsb",
      "aukštutiniųsorbųkalba":        "hsb",
      "austrobavarų kalba":        "bar",
      "austrobavarųkalba":        "bar",
      "avabakalų kalba":        "awk",
      "avabakalųkalba":        "awk",
      "avadhių kalba":        "awa",
      "avadhiųkalba":        "awa",
      "avarų kalba":        "av",
      "avarųkalba":        "av",
      "avestianų kalba":        "ae",
      "avestianųkalba":        "ae",
      "azerbaidžaniečių kalba":        "az",
      "azerbaidžaniečiųkalba":        "az",
      "ačekų kalba":        "ace",
      "ačekųkalba":        "ace",
      "ačolių kalba":        "ach",
      "ačoliųkalba":        "ach",
      "aškunių kalba":        "ask",
      "aškuniųkalba":        "ask",
      "ašvadų kalba":        "akv",
      "ašvadųkalba":        "akv",
      "bachreino šiitų arabų kalba":        "abv",
      "bachreinošiitųarabųkalba":        "abv",
      "badagų kalba":        "bfq",
      "badagųkalba":        "bfq",
      "badžių kalba":        "bdl",
      "badžiųkalba":        "bdl",
      "bafangų kalba":        "bfj",
      "bafangųkalba":        "bfj",
      "bafutų kalba":        "bfd",
      "bafutųkalba":        "bfd",
      "bagvalinų kalba":        "kva",
      "bagvalinųkalba":        "kva",
      "bahnarų kalba":        "bdq",
      "bahnarųkalba":        "bdq",
      "balių kalba":        "ban",
      "baliųkalba":        "ban",
      "baltarusių kalba":        "be",
      "baltarusiųkalba":        "be",
      "balubų kalba":        "lua",
      "balubųkalba":        "lua",
      "baluchų kalba":        "bal",
      "baluchųkalba":        "bal",
      "balčių kalba":        "bft",
      "balčiųkalba":        "bft",
      "bambarų kalba":        "bm",
      "bambarųkalba":        "bm",
      "barasanų kalba":        "bsn",
      "barasanųkalba":        "bsn",
      "bariajų kalba":        "bch",
      "bariajųkalba":        "bch",
      "barujų kalba":        "byr",
      "barujųkalba":        "byr",
      "baskų kalba":        "eu",
      "baskųkalba":        "eu",
      "basų kalba":        "bas",
      "basųkalba":        "bas",
      "batsių kalba":        "bbl",
      "batsiųkalba":        "bbl",
      "baurų kalba":        "brg",
      "baurųkalba":        "brg",
      "baškirų kalba":        "ba",
      "baškirųkalba":        "ba",
      "beaverų kalba":        "bea",
      "beaverųkalba":        "bea",
      "bedavijetų kalba":        "bej",
      "bedavijetųkalba":        "bej",
      "bembų kalba":        "bem",
      "bembųkalba":        "bem",
      "bendų kalba":        "bdp",
      "bendųkalba":        "bdp",
      "bengalų kalba":        "bn",
      "bengalųkalba":        "bn",
      "beotukų kalba":        "bue",
      "beotukųkalba":        "bue",
      "berberų kalba":        "ber",
      "berberųkalba":        "ber",
      "bežtinų kalba":        "kap",
      "bežtinųkalba":        "kap",
      "bhodžpurių kalba":        "bho",
      "bhodžpuriųkalba":        "bho",
      "biharų kalba":        "bh",
      "biharųkalba":        "bh",
      "bikolų kalba":        "bcl",
      "bikolųkalba":        "bcl",
      "bislama kalba":        "bi",
      "bislamakalba":        "bi",
      "bišnuprija manipuri kalba":        "bpy",
      "bišnuprijamanipurikalba":        "bpy",
      "bjansių kalba":        "bee",
      "bjansiųkalba":        "bee",
      "bodo kalba":        "brx",
      "bodokalba":        "brx",
      "bohomų kalba":        "bux",
      "bohomųkalba":        "bux",
      "bosnių kalba":        "bs",
      "bosniųkalba":        "bs",
      "botijų kalba":        "dz",
      "botijųkalba":        "dz",
      "boujei kalba":        "pcc",
      "boujeikalba":        "pcc",
      "brahujų kalba":        "brh",
      "brahujųkalba":        "brh",
      "bretonų kalba":        "br",
      "bretonųkalba":        "br",
      "budugų kalba":        "bdk",
      "budugųkalba":        "bdk",
      "bugų kalba":        "bug",
      "bugųkalba":        "bug",
      "bulgarų kalba":        "bg",
      "bulgarųkalba":        "bg",
      "bulių kalba":        "bwu",
      "buliųkalba":        "bwu",
      "bungų kalba":        "wun",
      "bungųkalba":        "wun",
      "bunubų kalba":        "bck",
      "bunubųkalba":        "bck",
      "buriatų kalba":        "bua",
      "buriatųkalba":        "bua",
      "burušaskių kalba":        "bsk",
      "burušaskiųkalba":        "bsk",
      "centrinė pomų kalba":        "poo",
      "centrinėpomųkalba":        "poo",
      "cezų kalba":        "ddo",
      "cezųkalba":        "ddo",
      "cham kalba":        "xam",
      "chamkalba":        "xam",
      "chamių kalba":        "cmi",
      "chamiųkalba":        "cmi",
      "chantų kalba":        "kca",
      "chantųkalba":        "kca",
      "chorasano tiurkų kalba":        "kmz",
      "chorasanotiurkųkalba":        "kmz",
      "chvaršių kalba":        "khv",
      "chvaršiųkalba":        "khv",
      "cia-cia kalba":        "cia",
      "cia-ciakalba":        "cia",
      "cocilių kalba":        "tzo",
      "cociliųkalba":        "tzo",
      "čabakano kalba":        "cbk",
      "čabakanokalba":        "cbk",
      "čagatajų kalba":        "chg",
      "čagatajųkalba":        "chg",
      "čajahuitų kalba":        "cbt",
      "čajahuitųkalba":        "cbt",
      "čamikurų kalba":        "ccc",
      "čamikurųkalba":        "ccc",
      "čačių kalba":        "cbi",
      "čačiųkalba":        "cbi",
      "čebakano kalba":        "cbk-zam",
      "čebakanokalba":        "cbk-zam",
      "čekų kalba":        "cs",
      "čekųkalba":        "cs",
      "čemorų kalba":        "ch",
      "čemorųkalba":        "ch",
      "čerokių kalba":        "chr",
      "čerokiųkalba":        "chr",
      "čibčių kalba":        "chb",
      "čibčiųkalba":        "chb",
      "čigonų kalba":        "rom",
      "čigonųkalba":        "rom",
      "čijenų kalba":        "chy",
      "čijenųkalba":        "chy",
      "čikasų kalba":        "cic",
      "čikasųkalba":        "cic",
      "čikvitanų kalba":        "cax",
      "čikvitanųkalba":        "cax",
      "čirikahų kalba":        "apm",
      "čirikahųkalba":        "apm",
      "čiukčių kalba":        "ckt",
      "čiukčiųkalba":        "ckt",
      "čiuvašų kalba":        "cv",
      "čiuvašųkalba":        "cv",
      "čičevų kalba":        "ny",
      "čičevųkalba":        "ny",
      "čoktavų kalba":        "cho",
      "čoktavųkalba":        "cho",
      "čorčių kalba":        "caa",
      "čorčiųkalba":        "caa",
      "čėčėnų kalba":        "ce",
      "čėčėnųkalba":        "ce",
      "dagų kalba":        "dgz",
      "dagųkalba":        "dgz",
      "dahalo kalba":        "dal",
      "dahalokalba":        "dal",
      "dangmių kalba":        "ada",
      "dangmiųkalba":        "ada",
      "danų kalba":        "da",
      "danųkalba":        "da",
      "dari kalba":        "gbz",
      "darikalba":        "gbz",
      "defakų kalba":        "afn",
      "defakųkalba":        "afn",
      "degemų kalba":        "deg",
      "degemųkalba":        "deg",
      "dolganų kalba":        "dlg",
      "dolganųkalba":        "dlg",
      "dolnoserbų kalba":        "dsb",
      "dolnoserbųkalba":        "dsb",
      "duau kalba":        "dva",
      "duaukalba":        "dva",
      "dumių kalba":        "dus",
      "dumiųkalba":        "dus",
      "dunganų kalba":        "dng",
      "dunganųkalba":        "dng",
      "džao kalba":        "yao",
      "džaokalba":        "yao",
      "džingilių kalba":        "jig",
      "džingiliųkalba":        "jig",
      "džuangų kalba":        "za",
      "džuangųkalba":        "za",
      "egiptiečių kalba":        "egy",
      "egiptiečiųkalba":        "egy",
      "egipto arabų kalba":        "arz",
      "egiptoarabųkalba":        "arz",
      "egonų kalba":        "ego",
      "egonųkalba":        "ego",
      "ekstremadūrų kalba":        "ext",
      "ekstremadūrųkalba":        "ext",
      "emiliano romanolų kalba":        "eml",
      "emilianoromanolųkalba":        "eml",
      "endžių kalba":        "end",
      "endžiųkalba":        "end",
      "engenių kalba":        "enn",
      "engeniųkalba":        "enn",
      "erzinų kalba":        "myv",
      "erzinųkalba":        "myv",
      "esimbų kalba":        "ags",
      "esimbųkalba":        "ags",
      "esperanto kalba":        "eo",
      "esperantokalba":        "eo",
      "estų kalba":        "et",
      "estųkalba":        "et",
      "etruskų kalba":        "ett",
      "etruskųkalba":        "ett",
      "evenkių kalba":        "evn",
      "evenkiųkalba":        "evn",
      "evų kalba":        "ee",
      "evųkalba":        "ee",
      "eštehardžių kalba":        "esh",
      "eštehardžiųkalba":        "esh",
      "farerų kalba":        "fo",
      "farerųkalba":        "fo",
      "fataluku kalba":        "ddg",
      "fatalukukalba":        "ddg",
      "fidžio hindi kalba":        "hif",
      "fidžiohindikalba":        "hif",
      "fidžių kalba":        "fj",
      "fidžiųkalba":        "fj",
      "filipinų kalba":        "fil",
      "filipinųkalba":        "fil",
      "finikiečių kalba":        "phn",
      "finikiečiųkalba":        "phn",
      "flamandų kalba":        "vls",
      "flamandųkalba":        "vls",
      "franko-provensalio dialektas":        "frp",
      "franko-provensaliodialektas":        "frp",
      "frankų kalba":        "frk",
      "frankųkalba":        "frk",
      "frygų kalba":        "xpg",
      "frygųkalba":        "xpg",
      "fryzų kalba":        "fy",
      "fryzųkalba":        "fy",
      "fulbų kalba":        "fuf",
      "fulbųkalba":        "fuf",
      "fulų kalba":        "ff",
      "fulųkalba":        "ff",
      "furilų kalba":        "fur",
      "furilųkalba":        "fur",
      "ga kalba":        "gaa",
      "gakalba":        "gaa",
      "gagaūzų kalba":        "gag",
      "gagaūzųkalba":        "gag",
      "galisų kalba":        "gl",
      "galisųkalba":        "gl",
      "gamilarojų kalba":        "kld",
      "gamilarojųkalba":        "kld",
      "gano kalba":        "gan",
      "ganokalba":        "gan",
      "garifunų kalba":        "cab",
      "garifunųkalba":        "cab",
      "gaskonų kalba":        "gasc",
      "gaskonųkalba":        "gasc",
      "gelų kalba":        "nlg",
      "gelųkalba":        "nlg",
      "germanų prokalbė":        "PGE",
      "germanųprokalbė":        "PGE",
      "gezo kalba":        "gez",
      "gezokalba":        "gez",
      "ghadamų kalba":        "gha",
      "ghadamųkalba":        "gha",
      "gilakų kalba":        "glk",
      "gilakųkalba":        "glk",
      "goemajų kalba":        "ank",
      "goemajųkalba":        "ank",
      "gotų kalba":        "got",
      "gotųkalba":        "got",
      "graikų kalba":        "el",
      "graikųkalba":        "el",
      "grenlandų kalba":        "kl",
      "grenlandųkalba":        "kl",
      "gresių kalba":        "grs",
      "gresiųkalba":        "grs",
      "gruzinų kalba":        "ka",
      "gruzinųkalba":        "ka",
      "gudžaratų kalba":        "gu",
      "gudžaratųkalba":        "gu",
      "gugu jimityrų kalba":        "kky",
      "gugujimityrųkalba":        "kky",
      "guzių kalba":        "guz",
      "guziųkalba":        "guz",
      "gvaranių kalba":        "gn",
      "gvaraniųkalba":        "gn",
      "gūnijandžių kalba":        "gni",
      "gūnijandžiųkalba":        "gni",
      "haekų kalba":        "aek",
      "haekųkalba":        "aek",
      "haidų kalba":        "hai",
      "haidųkalba":        "hai",
      "haičio kreolų kalba":        "ht",
      "haičiokreolųkalba":        "ht",
      "hakasų kalba":        "kjh",
      "hakasųkalba":        "kjh",
      "hakka kalba":        "hak",
      "hakkakalba":        "hak",
      "halių kalba":        "hla",
      "haliųkalba":        "hla",
      "hamerų kalba":        "amf",
      "hamerųkalba":        "amf",
      "hausų kalba":        "ha",
      "hausųkalba":        "ha",
      "havajiečių kalba":        "haw",
      "havajiečiųkalba":        "haw",
      "hebrajų kalba":        "he",
      "hebrajųkalba":        "he",
      "hererų kalba":        "hz",
      "hererųkalba":        "hz",
      "hindi kalba":        "hi",
      "hindikalba":        "hi",
      "hiri motu kalba":        "ho",
      "hirimotukalba":        "ho",
      "hititų kalba":        "hit",
      "hititųkalba":        "hit",
      "hmongų kalba":        "hmn",
      "hmongųkalba":        "hmn",
      "hopių kalba":        "hop",
      "hopiųkalba":        "hop",
      "hočių kalba":        "hot",
      "hočiųkalba":        "hot",
      "hupų kalba":        "hup",
      "hupųkalba":        "hup",
      "ibanų kalba":        "iba",
      "ibanųkalba":        "iba",
      "ibenų kalba":        "ibn",
      "ibenųkalba":        "ibn",
      "ido kalba":        "io",
      "idokalba":        "io",
      "igbų kalba":        "ig",
      "igbųkalba":        "ig",
      "ikvitų kalba":        "iqu",
      "ikvitųkalba":        "iqu",
      "ilokanų kalba":        "ilo",
      "ilokanųkalba":        "ilo",
      "ilongų kalba":        "hil",
      "ilongųkalba":        "hil",
      "imondų kalba":        "imn",
      "imondųkalba":        "imn",
      "inario samių kalba":        "smn",
      "inariosamiųkalba":        "smn",
      "indoeuropiečių prokalbė":        "PIE",
      "indoeuropiečiųprokalbė":        "PIE",
      "indoneziečių kalba":        "id",
      "indoneziečiųkalba":        "id",
      "ingušų kalba":        "inh",
      "ingušųkalba":        "inh",
      "ingų kalba":        "inb",
      "ingųkalba":        "inb",
      "interlingua kalba":        "ia",
      "interlinguakalba":        "ia",
      "interlingue kalba":        "ie",
      "interlinguekalba":        "ie",
      "inuktikuto kalba":        "iu",
      "inuktikutokalba":        "iu",
      "inupiakų kalba":        "ik",
      "inupiakųkalba":        "ik",
      "isakų kalba":        "ksi",
      "isakųkalba":        "ksi",
      "islandų kalba":        "is",
      "islandųkalba":        "is",
      "ispanų kalba":        "es",
      "ispanųkalba":        "es",
      "istrorumunų kalba":        "ruo",
      "istrorumunųkalba":        "ruo",
      "italų kalba":        "it",
      "italųkalba":        "it",
      "itelmenų kalba":        "itl",
      "itelmenųkalba":        "itl",
      "iškašimių kalba":        "isk",
      "iškašimiųkalba":        "isk",
      "ižorų kalba":        "izh",
      "ižorųkalba":        "izh",
      "jaejamų kalba":        "rys",
      "jaejamųkalba":        "rys",
      "jagnobių kalba":        "yai",
      "jagnobiųkalba":        "yai",
      "jakutų kalba":        "sah",
      "jakutųkalba":        "sah",
      "jamaikos kreolų kalba":        "jam",
      "jamaikoskreolųkalba":        "jam",
      "jamanų kalba":        "gon",
      "jamanųkalba":        "gon",
      "jaminahua kalba":        "yaa",
      "jaminahuakalba":        "yaa",
      "jandadomo dagonų kalba":        "dym",
      "jandadomodagonųkalba":        "dym",
      "janjuvų kalba":        "jao",
      "janjuvųkalba":        "jao",
      "japonų kalba":        "ja",
      "japonųkalba":        "ja",
      "jarebų kalba":        "yrb",
      "jarebųkalba":        "yrb",
      "jatzačio zapotekų kalba":        "zav",
      "jatzačiozapotekųkalba":        "zav",
      "javiečių kalba":        "jv",
      "javiečiųkalba":        "jv",
      "jidinių kalba":        "yii",
      "jidiniųkalba":        "yii",
      "jidiš kalba":        "yi",
      "jidiškalba":        "yi",
      "jikarilų kalba":        "apj",
      "jikarilųkalba":        "apj",
      "jonagunių kalba":        "yoi",
      "jonaguniųkalba":        "yoi",
      "jorubų kalba":        "yo",
      "jorubųkalba":        "yo",
      "jotvingių (sudūvių) kalba":        "sud",
      "jotvingių(sudūvių)kalba":        "sud",
      "jugų kalba":        "yuu",
      "jugųkalba":        "yuu",
      "jukatekų majų kalba":        "yua",
      "jukatekųmajųkalba":        "yua",
      "juodakojų kalba":        "bla",
      "juodakojųkalba":        "bla",
      "jučių kalba":        "yuc",
      "jučiųkalba":        "yuc",
      "kabardų kalba":        "kbd",
      "kabardųkalba":        "kbd",
      "kabilų kalba":        "kab",
      "kabilųkalba":        "kab",
      "kaingangų kalba":        "kgp",
      "kaingangųkalba":        "kgp",
      "kaitečių kalba":        "gbb",
      "kaitečiųkalba":        "gbb",
      "kakabių kalba":        "kke",
      "kakabiųkalba":        "kke",
      "kalendžinų kalba":        "kln",
      "kalendžinųkalba":        "kln",
      "kalmukų kalba":        "xal",
      "kalmukųkalba":        "xal",
      "kalnų arapešų kalba":        "ape",
      "kalnųarapešųkalba":        "ape",
      "kamasajų kalba":        "kms",
      "kamasajųkalba":        "kms",
      "kamasinų kalba":        "xas",
      "kamasinųkalba":        "xas",
      "kamberų kalba":        "xbr",
      "kamberųkalba":        "xbr",
      "kambų kalba":        "kam",
      "kambųkalba":        "kam",
      "kanadų kalba":        "kn",
      "kanadųkalba":        "kn",
      "kanakanabu kalba":        "xnb",
      "kanakanabukalba":        "xnb",
      "kansų kalba":        "ksk",
      "kansųkalba":        "ksk",
      "kantono kalba":        "yue",
      "kantonokalba":        "yue",
      "kanurų kalba":        "kr",
      "kanurųkalba":        "kr",
      "karaimų kalba":        "kdr",
      "karaimųkalba":        "kdr",
      "karajų kalba":        "kpj",
      "karajųkalba":        "kpj",
      "karakalpakų kalba":        "kaa",
      "karakalpakųkalba":        "kaa",
      "karačajų-balkarų kalba":        "krc",
      "karačajų-balkarųkalba":        "krc",
      "karelų kalba":        "krl",
      "karelųkalba":        "krl",
      "katalonų kalba":        "ca",
      "katalonųkalba":        "ca",
      "kazachų kalba":        "kk",
      "kazachųkalba":        "kk",
      "kačinų kalba":        "kac",
      "kačinųkalba":        "kac",
      "kašmyrų kalba":        "ks",
      "kašmyrųkalba":        "ks",
      "kašubų kalba":        "csb",
      "kašubųkalba":        "csb",
      "kcho kalba":        "nmn",
      "kchokalba":        "nmn",
      "keigų kalba":        "kec",
      "keigųkalba":        "kec",
      "kemuhių kalba":        "cam",
      "kemuhiųkalba":        "cam",
      "kečujų kalba":        "qu",
      "kečujųkalba":        "qu",
      "khmerų kalba":        "km",
      "khmerųkalba":        "km",
      "kikujų kalba":        "ki",
      "kikujųkalba":        "ki",
      "kikvajų kalba":        "kya",
      "kikvajųkalba":        "kya",
      "kildino samių kalba":        "sjd",
      "kildinosamiųkalba":        "sjd",
      "kinjaruanda kalba":        "rw",
      "kinjaruandakalba":        "rw",
      "kinų kalba":        "zh",
      "kinųkalba":        "zh",
      "kinų klasikinė kalba":        "zh-classical",
      "kinųklasikinėkalba":        "zh-classical",
      "kinų mandarino kalba":        "cmn",
      "kinųmandarinokalba":        "cmn",
      "kirgizų kalba":        "ky",
      "kirgizųkalba":        "ky",
      "kiribačių kalba":        "gi",
      "kiribačiųkalba":        "gi",
      "kiribačių kalba":        "gil",
      "kiribačiųkalba":        "gil",
      "kirikių kalba":        "okr",
      "kirikiųkalba":        "okr",
      "kirundi kalba":        "rn",
      "kirundikalba":        "rn",
      "kis kalba":        "kis",
      "kiskalba":        "kis",
      "kitharakų kalba":        "thk",
      "kitharakųkalba":        "thk",
      "klalamų kalba":        "clm",
      "klalamųkalba":        "clm",
      "klasikinė actekų kalba":        "nci",
      "klasikinėactekųkalba":        "nci",
      "koalibų kalba":        "kib",
      "koalibųkalba":        "kib",
      "kokotų kalba":        "kkk",
      "kokotųkalba":        "kkk",
      "komančių kalba":        "com",
      "komančiųkalba":        "com",
      "komių kalba":        "kv",
      "komiųkalba":        "kv",
      "kongiečių kalba":        "kg",
      "kongiečiųkalba":        "kg",
      "konkanų kalba":        "kok",
      "konkanųkalba":        "kok",
      "koptų kalba":        "cop",
      "koptųkalba":        "cop",
      "koriakų kalba":        "kpy",
      "koriakųkalba":        "kpy",
      "kornų kalba":        "kw",
      "kornųkalba":        "kw",
      "korsikiečių kalba":        "co",
      "korsikiečiųkalba":        "co",
      "korėjiečių kalba":        "ko",
      "korėjiečiųkalba":        "ko",
      "korų kalba":        "crn",
      "korųkalba":        "crn",
      "kosų kalba":        "xh",
      "kosųkalba":        "xh",
      "kreolų kalba":        "bzj",
      "kreolųkalba":        "bzj",
      "krijų kalba":        "cr",
      "krijųkalba":        "cr",
      "krikų kalba":        "mus",
      "krikųkalba":        "mus",
      "kroatų kalba":        "hr",
      "kroatųkalba":        "hr",
      "krymo totorių kalba":        "crh",
      "krymototoriųkalba":        "crh",
      "kuibų kalba":        "cui",
      "kuibųkalba":        "cui",
      "kulerių kalba":        "kul",
      "kuleriųkalba":        "kul",
      "kumakų kalba":        "nee",
      "kumakųkalba":        "nee",
      "kumikų kalba":        "kum",
      "kumikųkalba":        "kum",
      "kunamų kalba":        "kun",
      "kunamųkalba":        "kun",
      "kunigamių kalba":        "xug",
      "kunigamiųkalba":        "xug",
      "kunų kalba":        "cuk",
      "kunųkalba":        "cuk",
      "kupų kalba":        "kug",
      "kupųkalba":        "kug",
      "kuradų kalba":        "kud",
      "kuradųkalba":        "kud",
      "kurdų kalba":        "ku",
      "kurdųkalba":        "ku",
      "kurijų kalba":        "kuj",
      "kurijųkalba":        "kuj",
      "kuršių kalba":        "xcu",
      "kuršiųkalba":        "xcu",
      "kusundų kalba":        "kgg",
      "kusundųkalba":        "kgg",
      "kvakiutlų kalba":        "kwk",
      "kvakiutlųkalba":        "kwk",
      "kvangalių kalba":        "kwn",
      "kvangaliųkalba":        "kwn",
      "ladakų kalba":        "lbj",
      "ladakųkalba":        "lbj",
      "ladinų kalba":        "lld",
      "ladinųkalba":        "lld",
      "lakių kalba":        "lki",
      "lakiųkalba":        "lki",
      "lakotų kalba":        "lkt",
      "lakotųkalba":        "lkt",
      "lakų kalba":        "lbe",
      "lakųkalba":        "lbe",
      "laosiečių (lao) kalba":        "lo",
      "laosiečių(lao)kalba":        "lo",
      "latgalių kalba":        "ltg",
      "latgaliųkalba":        "ltg",
      "latvių kalba":        "lv",
      "latviųkalba":        "lv",
      "laurynų kalba":        "lre",
      "laurynųkalba":        "lre",
      "lengų kalba":        "lgr",
      "lengųkalba":        "lgr",
      "lenkų kalba":        "pl",
      "lenkųkalba":        "pl",
      "lezgų kalba":        "lez",
      "lezgųkalba":        "lez",
      "libano arabų kalba":        "ayl",
      "libanoarabųkalba":        "ayl",
      "ligurų kalba":        "lij",
      "ligurųkalba":        "lij",
      "limburgiečių kalba":        "li",
      "limburgiečiųkalba":        "li",
      "lingala kalba":        "ln",
      "lingalakalba":        "ln",
      "lingua franca nova kalba":        "lfn",
      "linguafrancanovakalba":        "lfn",
      "lipano apačių kalba":        "apl",
      "lipanoapačiųkalba":        "apl",
      "liuksemburgiečių kalba":        "lb",
      "liuksemburgiečiųkalba":        "lb",
      "logudoriečių kalba":        "src",
      "logudoriečiųkalba":        "src",
      "lojban kalba":        "jbo",
      "lojbankalba":        "jbo",
      "lombardų kalba":        "lmo",
      "lombardųkalba":        "lmo",
      "lonių kalba":        "los",
      "loniųkalba":        "los",
      "lotynų kalba":        "la",
      "lotynųkalba":        "la",
      "lugandų kalba":        "lg",
      "lugandųkalba":        "lg",
      "luhių kalba":        "luy",
      "luhiųkalba":        "luy",
      "luo kalba":        "luo",
      "luokalba":        "luo",
      "lygumų apačių kalba":        "apk",
      "lygumųapačiųkalba":        "apk",
      "lyvių kalba":        "liv",
      "lyviųkalba":        "liv",
      "mabų kalba":        "mde",
      "mabųkalba":        "mde",
      "madurių kalba":        "mad",
      "maduriųkalba":        "mad",
      "makedonų kalba":        "mk",
      "makedonųkalba":        "mk",
      "makunų kalba":        "myy",
      "makunųkalba":        "myy",
      "malagasių kalba":        "mg",
      "malagasiųkalba":        "mg",
      "malajalių kalba":        "ml",
      "malajaliųkalba":        "ml",
      "malajų kalba":        "ms",
      "malajųkalba":        "ms",
      "maldyvų kalba":        "dv",
      "maldyvųkalba":        "dv",
      "maleku kalba":        "gut",
      "malekukalba":        "gut",
      "maltiečių kalba":        "mt",
      "maltiečiųkalba":        "mt",
      "mandarų kalba":        "mdr",
      "mandarųkalba":        "mdr",
      "mandų kalba":        "mha",
      "mandųkalba":        "mha",
      "mandžiūrų kalba":        "mnc",
      "mandžiūrųkalba":        "mnc",
      "mangarų kalba":        "mqy",
      "mangarųkalba":        "mqy",
      "manikionų kalba":        "mnx",
      "manikionųkalba":        "mnx",
      "mansių kalba":        "mns",
      "mansiųkalba":        "mns",
      "manų kalba":        "mev",
      "manųkalba":        "mev",
      "maorių kalba":        "mi",
      "maoriųkalba":        "mi",
      "mapudunganų kalba":        "arn",
      "mapudunganųkalba":        "arn",
      "maranungu kalba":        "zmr",
      "maranungukalba":        "zmr",
      "marathų kalba":        "mr",
      "marathųkalba":        "mr",
      "marikopų kalba":        "mrc",
      "marikopųkalba":        "mrc",
      "marių kalba":        "chm",
      "mariųkalba":        "chm",
      "markų kalba":        "rkm",
      "markųkalba":        "rkm",
      "maroko arabų kalba":        "ary",
      "marokoarabųkalba":        "ary",
      "marvarių kalba":        "mwr",
      "marvariųkalba":        "mwr",
      "maršaliečių kalba":        "mh",
      "maršaliečiųkalba":        "mh",
      "masabų kalba":        "myx",
      "masabųkalba":        "myx",
      "masajų kalba":        "mas",
      "masajųkalba":        "mas",
      "matų kalba":        "met",
      "matųkalba":        "met",
      "maungų kalba":        "mph",
      "maungųkalba":        "mph",
      "mauricijaus kreolų kalba":        "mfe",
      "mauricijauskreolųkalba":        "mfe",
      "mašių kalba":        "jms",
      "mašiųkalba":        "jms",
      "mbarabamų kalba":        "vmb",
      "mbarabamųkalba":        "vmb",
      "mbulų kalba":        "mna",
      "mbulųkalba":        "mna",
      "mbundų kalba":        "kmb",
      "mbundųkalba":        "kmb",
      "mejahų kalba":        "mej",
      "mejahųkalba":        "mej",
      "mekejų kalba":        "mek",
      "mekejųkalba":        "mek",
      "mendejų kalba":        "men",
      "mendejųkalba":        "men",
      "mengenų kalba":        "mee",
      "mengenųkalba":        "mee",
      "menksiečių kalba":        "gv",
      "menksiečiųkalba":        "gv",
      "meriamų kalba":        "ulk",
      "meriamųkalba":        "ulk",
      "merėjų kalba":        "meq",
      "merėjųkalba":        "meq",
      "merų kalba":        "mer",
      "merųkalba":        "mer",
      "mesopotamijos arabų kalba":        "acm",
      "mesopotamijosarabųkalba":        "acm",
      "mienų kalba":        "ium",
      "mienųkalba":        "ium",
      "mijakų kalba":        "mvi",
      "mijakųkalba":        "mvi",
      "mikmakų kalba":        "mic",
      "mikmakųkalba":        "mic",
      "mikėnų graikų kalba":        "gmy",
      "mikėnųgraikųkalba":        "gmy",
      "min dong kalba":        "cdo",
      "mindongkalba":        "cdo",
      "minangkabau kalba":        "min",
      "minangkabaukalba":        "min",
      "mingrelianų kalba":        "xmf",
      "mingrelianųkalba":        "xmf",
      "mirandesų kalba":        "mwl",
      "mirandesųkalba":        "mwl",
      "miskitų kalba":        "miq",
      "miskitųkalba":        "miq",
      "mitlos zapotekų kalba":        "zaw",
      "mitloszapotekųkalba":        "zaw",
      "mjanmų kalba":        "my",
      "mjanmųkalba":        "my",
      "mobutų kalba":        "awb",
      "mobutųkalba":        "awb",
      "moglenų kalba":        "ruq",
      "moglenųkalba":        "ruq",
      "mohaukų kalba":        "moh",
      "mohaukųkalba":        "moh",
      "mokslinė kalba":        "species",
      "mokslinėkalba":        "species",
      "mokšų kalba":        "mdf",
      "mokšųkalba":        "mdf",
      "moldavų kalba":        "mo",
      "moldavųkalba":        "mo",
      "mongolų kalba":        "mn",
      "mongolųkalba":        "mn",
      "monumbo kalba":        "mxk",
      "monumbokalba":        "mxk",
      "motų kalba":        "meu",
      "motųkalba":        "meu",
      "mošių kalba":        "old",
      "mošiųkalba":        "old",
      "mundarių kalba":        "unr",
      "mundariųkalba":        "unr",
      "munduruku kalba":        "myu",
      "mundurukukalba":        "myu",
      "mundžių kalba":        "mnj",
      "mundžiųkalba":        "mnj",
      "munų kalba":        "nnb",
      "munųkalba":        "nnb",
      "nakanajų kalba":        "nak",
      "nakanajųkalba":        "nak",
      "namų kalba":        "naq",
      "namųkalba":        "naq",
      "nanajų kalba":        "gld",
      "nanajųkalba":        "gld",
      "nangikurungurų kalba":        "nam",
      "nangikurungurųkalba":        "nam",
      "nansusų kalba":        "and",
      "nansusųkalba":        "and",
      "nantikokų kalba":        "nnt",
      "nantikokųkalba":        "nnt",
      "nataorų amių kalba":        "ais",
      "nataorųamiųkalba":        "ais",
      "naujoji norvegų kalba":        "nn",
      "naujojinorvegųkalba":        "nn",
      "nauriečių kalba":        "na",
      "nauriečiųkalba":        "na",
      "navahų kalba":        "nv",
      "navahųkalba":        "nv",
      "načezų kalba":        "ncz",
      "načezųkalba":        "ncz",
      "ndalių kalba":        "ndh",
      "ndaliųkalba":        "ndh",
      "ndemlių kalba":        "nml",
      "ndemliųkalba":        "nml",
      "ndongų kalba":        "ndo",
      "ndongųkalba":        "ndo",
      "neapoliečių kalba":        "nap",
      "neapoliečiųkalba":        "nap",
      "negidalų kalba":        "neg",
      "negidalųkalba":        "neg",
      "nemių kalba":        "nem",
      "nemiųkalba":        "nem",
      "nencų kalba":        "yrk",
      "nencųkalba":        "yrk",
      "nengonų kalba":        "nen",
      "nengonųkalba":        "nen",
      "nepalų kalba":        "ne",
      "nepalųkalba":        "ne",
      "nevarų kalba":        "new",
      "nevarųkalba":        "new",
      "nezpercų kalba":        "nez",
      "nezpercųkalba":        "nez",
      "ngadų kalba":        "nxg",
      "ngadųkalba":        "nxg",
      "nganasanų kalba":        "nio",
      "nganasanųkalba":        "nio",
      "ngarindžerių kalba":        "nay",
      "ngarindžeriųkalba":        "nay",
      "niamvezių kalba":        "nym",
      "niamveziųkalba":        "nym",
      "niasų kalba":        "nia",
      "niasųkalba":        "nia",
      "nihalių kalba":        "nll",
      "nihaliųkalba":        "nll",
      "nivchių kalba":        "niv",
      "nivchiųkalba":        "niv",
      "njihų kalba":        "nih",
      "njihųkalba":        "nih",
      "nobiinų kalba":        "fia",
      "nobiinųkalba":        "fia",
      "nogajų kalba":        "nog",
      "nogajųkalba":        "nog",
      "normanų kalba":        "nrm",
      "normanųkalba":        "nrm",
      "norvegų kalba":        "no",
      "norvegųkalba":        "no",
      "nosių dzi kalba":        "ii",
      "nosiųdzikalba":        "ii",
      "notovėjaus-meherino kalba":        "nwy",
      "notovėjaus-meherinokalba":        "nwy",
      "novial kalba":        "nov",
      "novialkalba":        "nov",
      "nukuoro kalba":        "nkr",
      "nukuorokalba":        "nkr",
      "nyderlandų kalba":        "nl",
      "nyderlandųkalba":        "nl",
      "odžibvės kalba":        "oj",
      "odžibvėskalba":        "oj",
      "okinavų kalba":        "ryu",
      "okinavųkalba":        "ryu",
      "oksitanų kalba":        "oc",
      "oksitanųkalba":        "oc",
      "oodhamų kalba":        "ood",
      "oodhamųkalba":        "ood",
      "orijų kalba":        "or",
      "orijųkalba":        "or",
      "oromų kalba":        "om",
      "oromųkalba":        "om",
      "osetinų kalba":        "os",
      "osetinųkalba":        "os",
      "oskų kalba":        "osc",
      "oskųkalba":        "osc",
      "osmanų turkų kalba":        "ota",
      "osmanųturkųkalba":        "ota",
      "palauiečių kalba":        "pau",
      "palauiečiųkalba":        "pau",
      "pali kalba":        "pi",
      "palikalba":        "pi",
      "pampangų kalba":        "pam",
      "pampangųkalba":        "pam",
      "pangasinų kalba":        "pag",
      "pangasinųkalba":        "pag",
      "pangvų kalba":        "pbr",
      "pangvųkalba":        "pbr",
      "papiamento kalba":        "pap",
      "papiamentokalba":        "pap",
      "paprastoji anglų kalba":        "simple",
      "paprastojianglųkalba":        "simple",
      "papua pidžinų kalba":        "tpi",
      "papuapidžinųkalba":        "tpi",
      "parkvų kalba":        "pbi",
      "parkvųkalba":        "pbi",
      "paunių kalba":        "paw",
      "pauniųkalba":        "paw",
      "pendžabų kalba":        "pa",
      "pendžabųkalba":        "pa",
      "pensilvanijos vokiečių kalba":        "pdc",
      "pensilvanijosvokiečiųkalba":        "pdc",
      "persijos ilankos arabų kalba":        "afb",
      "persijosilankosarabųkalba":        "afb",
      "persų kalba":        "fa",
      "persųkalba":        "fa",
      "pietų altajaus kalba":        "alt",
      "pietųaltajauskalba":        "alt",
      "pietų minų kalba":        "zh-min-nan",
      "pietųminųkalba":        "zh-min-nan",
      "pietų sotų kalba":        "st",
      "pietųsotųkalba":        "st",
      "pipilų kalba":        "ppl",
      "pipilųkalba":        "ppl",
      "pitjantjatjara kalba":        "pjt",
      "pitjantjatjarakalba":        "pjt",
      "pitkerniečių kalba":        "pih",
      "pitkerniečiųkalba":        "pih",
      "pjemonto kalba":        "pms",
      "pjemontokalba":        "pms",
      "plautdietšų kalba":        "pdt",
      "plautdietšųkalba":        "pdt",
      "polabų kalba":        "pox",
      "polabųkalba":        "pox",
      "ponapės kalba":        "pon",
      "ponapėskalba":        "pon",
      "portugalų kalba":        "pt",
      "portugalųkalba":        "pt",
      "povotanų kalba":        "pim",
      "povotanųkalba":        "pim",
      "prancūzų kalba":        "fr",
      "prancūzųkalba":        "fr",
      "prūsų kalba":        "prg",
      "prūsųkalba":        "prg",
      "pumpokolių kalba":        "xpm",
      "pumpokoliųkalba":        "xpm",
      "puštūnų kalba":        "ps",
      "puštūnųkalba":        "ps",
      "rapanujų kalba":        "rap",
      "rapanujųkalba":        "rap",
      "rarotongų kalba":        "rar",
      "rarotongųkalba":        "rar",
      "retoromanų kalba":        "rm",
      "retoromanųkalba":        "rm",
      "ripuarų kalba":        "ksh",
      "ripuarųkalba":        "ksh",
      "rohingų kalba":        "rhg",
      "rohingųkalba":        "rhg",
      "romanų kalba":        "rmy",
      "romanųkalba":        "rmy",
      "rufidžių kalba":        "rui",
      "rufidžiųkalba":        "rui",
      "rukigų kalba":        "cgg",
      "rukigųkalba":        "cgg",
      "rumunų kalba":        "ro",
      "rumunųkalba":        "ro",
      "rusijos buriatų kalba":        "bxr",
      "rusijosburiatųkalba":        "bxr",
      "rusų kalba":        "ru",
      "rusųkalba":        "ru",
      "rytų arandų kalba":        "aer",
      "rytųarandųkalba":        "aer",
      "rytų bru kalba":        "bru",
      "rytųbrukalba":        "bru",
      "rytų cutuchilių kalba":        "tzj",
      "rytųcutuchiliųkalba":        "tzj",
      "safvų kalba":        "sbk",
      "safvųkalba":        "sbk",
      "saisijatų kalba":        "xsy",
      "saisijatųkalba":        "xsy",
      "salarų kalba":        "slr",
      "salarųkalba":        "slr",
      "samojiečių kalba":        "sm",
      "samojiečiųkalba":        "sm",
      "samorų kalba":        "dnn",
      "samorųkalba":        "dnn",
      "sandavių kalba":        "sad",
      "sandaviųkalba":        "sad",
      "sangirų kalba":        "sxn",
      "sangirųkalba":        "sxn",
      "sanskrito kalba":        "sa",
      "sanskritokalba":        "sa",
      "santalų kalba":        "sat",
      "santalųkalba":        "sat",
      "sardiniečių kalba":        "sc",
      "sardiniečiųkalba":        "sc",
      "sarsių kalba":        "srs",
      "sarsiųkalba":        "srs",
      "saterlandų kalba":        "stq",
      "saterlandųkalba":        "stq",
      "sebuanų kalba":        "ceb",
      "sebuanųkalba":        "ceb",
      "sechvepmechų kalba":        "shs",
      "sechvepmechųkalba":        "shs",
      "seeku kalba":        "sos",
      "seekukalba":        "sos",
      "sefardžių kalba":        "lad",
      "sefardžiųkalba":        "lad",
      "semajų kalba":        "sea",
      "semajųkalba":        "sea",
      "semitų prokalbė":        "PSE",
      "semitųprokalbė":        "PSE",
      "senoji airių kalba":        "sga",
      "senojiairiųkalba":        "sga",
      "senoji anglų kalba":        "ang",
      "senojianglųkalba":        "ang",
      "senoji armėnų kalba":        "xcl",
      "senojiarmėnųkalba":        "xcl",
      "senoji aukštųjų vokiečių kalba":        "goh",
      "senojiaukštųjųvokiečiųkalba":        "goh",
      "senoji baltarusių kalba":        "be-x-old",
      "senojibaltarusiųkalba":        "be-x-old",
      "senoji bažnytinė slavų kalba":        "cu",
      "senojibažnytinėslavųkalba":        "cu",
      "senoji ispanų kalba":        "osp",
      "senojiispanųkalba":        "osp",
      "senoji korėjiečių kalba":        "oko",
      "senojikorėjiečiųkalba":        "oko",
      "senoji lietuvių kalba":        "old-lt",
      "senojilietuviųkalba":        "old-lt",
      "senoji persų kalba":        "peo",
      "senojipersųkalba":        "peo",
      "senoji prancūzų kalba":        "fro",
      "senojiprancūzųkalba":        "fro",
      "senoji saksų kalba":        "osx",
      "senojisaksųkalba":        "osx",
      "senoji tupių kalba":        "tpw",
      "senojitupiųkalba":        "tpw",
      "senovės fryzų kalba":        "ofs",
      "senovėsfryzųkalba":        "ofs",
      "senovės graikų kalba":        "grc",
      "senovėsgraikųkalba":        "grc",
      "senovės skandinavų kalba":        "non",
      "senovėsskandinavųkalba":        "non",
      "serbų kalba":        "sr",
      "serbųkalba":        "sr",
      "serbų-kroatų kalba":        "sh",
      "serbų-kroatųkalba":        "sh",
      "serių kalba":        "sei",
      "seriųkalba":        "sei",
      "sezių kalba":        "sze",
      "seziųkalba":        "sze",
      "sibinų kalba":        "sjo",
      "sibinųkalba":        "sjo",
      "siciliečių kalba":        "scn",
      "siciliečiųkalba":        "scn",
      "sileziečių kalba":        "szl",
      "sileziečiųkalba":        "szl",
      "sindhų kalba":        "sd",
      "sindhųkalba":        "sd",
      "sinhalų kalba":        "si",
      "sinhalųkalba":        "si",
      "skolto samių kalba":        "sms",
      "skoltosamiųkalba":        "sms",
      "slavų prokalbė":        "PS",
      "slavųprokalbė":        "PS",
      "slovakų kalba":        "sk",
      "slovakųkalba":        "sk",
      "slovėnų kalba":        "sl",
      "slovėnųkalba":        "sl",
      "soknų kalba":        "swn",
      "soknųkalba":        "swn",
      "somalių kalba":        "so",
      "somaliųkalba":        "so",
      "songo kalba":        "sg",
      "songokalba":        "sg",
      "soninkių kalba":        "snk",
      "soninkiųkalba":        "snk",
      "sonsorolų kalba":        "sov",
      "sonsorolųkalba":        "sov",
      "sudaniečių kalba":        "su",
      "sudaniečiųkalba":        "su",
      "sudano arabų kalba":        "apd",
      "sudanoarabųkalba":        "apd",
      "suomių kalba":        "fi",
      "suomiųkalba":        "fi",
      "surinamiečių kalba":        "srn",
      "surinamiečiųkalba":        "srn",
      "svahilių kalba":        "sw",
      "svahiliųkalba":        "sw",
      "svazių kalba":        "ss",
      "svaziųkalba":        "ss",
      "šanų kalba":        "shn",
      "šanųkalba":        "shn",
      "šanų kalba":        "sn",
      "šanųkalba":        "sn",
      "šeltos kalba":        "sth",
      "šeltoskalba":        "sth",
      "šerpų kalba":        "xsr",
      "šerpųkalba":        "xsr",
      "šiaurės levanto arabų kalba":        "apc",
      "šiaurėslevantoarabųkalba":        "apc",
      "šiaurės soto kalba":        "nso",
      "šiaurėssotokalba":        "nso",
      "šiaurės fryzų kalba":        "frr",
      "šiaurėsfryzųkalba":        "frr",
      "šiaurės malaviečių kalba":        "yun",
      "šiaurėsmalaviečiųkalba":        "yun",
      "šiaurės samių kalba":        "se",
      "šiaurėssamiųkalba":        "se",
      "škotų kalba":        "sco",
      "škotųkalba":        "sco",
      "škotų, gėlų kalba":        "gd",
      "škotų,gėlųkalba":        "gd",
      "šonų kalba":        "sna",
      "šonųkalba":        "sna",
      "šorų kalba":        "cjs",
      "šorųkalba":        "cjs",
      "šošonų kalba":        "shh",
      "šošonųkalba":        "shh",
      "šumerų kalba":        "sux",
      "šumerųkalba":        "sux",
      "švabų kalba":        "swg",
      "švabųkalba":        "swg",
      "švedų kalba":        "sv",
      "švedųkalba":        "sv",
      "šveicarijos vokiečių kalba":        "gsw",
      "šveicarijosvokiečiųkalba":        "gsw",
      "šų kalba":        "scw",
      "šųkalba":        "scw",
      "sąsmaukos zapotekų kalba":        "zai",
      "sąsmaukoszapotekųkalba":        "zai",
      "sūduvių kalba":        "xsv",
      "sūduviųkalba":        "xsv",
      "tabarų kalba":        "mzn",
      "tabarųkalba":        "mzn",
      "tadaksahakų kalba":        "dsq",
      "tadaksahakųkalba":        "dsq",
      "tadžikų kalba":        "tg",
      "tadžikųkalba":        "tg",
      "tagalų kalba":        "tl",
      "tagalųkalba":        "tl",
      "taitiečių kalba":        "ty",
      "taitiečiųkalba":        "ty",
      "tajų kalba":        "th",
      "tajųkalba":        "th",
      "tamaziktų kalba":        "tzm",
      "tamaziktųkalba":        "tzm",
      "tamilų kalba":        "ta",
      "tamilųkalba":        "ta",
      "tao kalba":        "ssf",
      "taokalba":        "ssf",
      "taosų kalba":        "twf",
      "taosųkalba":        "twf",
      "tarokų kalba":        "yer",
      "tarokųkalba":        "yer",
      "tarptautiniai":        "xx",
      "tarptautiniai":        "xx",
      "tedagų kalba":        "tuq",
      "tedagųkalba":        "tuq",
      "telugų kalba":        "te",
      "telugųkalba":        "te",
      "terio samių kalba":        "sjt",
      "teriosamiųkalba":        "sjt",
      "tetunų kalba":        "tet",
      "tetunųkalba":        "tet",
      "tibetiečių kalba":        "bo",
      "tibetiečiųkalba":        "bo",
      "tigrinų kalba":        "ti",
      "tigrinųkalba":        "ti",
      "tivų kalba":        "tiv",
      "tivųkalba":        "tiv",
      "tlingitų kalba":        "tli",
      "tlingitųkalba":        "tli",
      "tobių kalba":        "tox",
      "tobiųkalba":        "tox",
      "tocharų a kalba":        "xto",
      "tocharųakalba":        "xto",
      "tocharų b kalba":        "txb",
      "tocharųbkalba":        "txb",
      "tongų (malavis) kalba":        "tog",
      "tongų(malavis)kalba":        "tog",
      "tongų (tonga) kalba":        "to",
      "tongų(tonga)kalba":        "to",
      "tonkavų kalba":        "tqw",
      "tonkavųkalba":        "tqw",
      "totorių kalba":        "tt",
      "totoriųkalba":        "tt",
      "tourų kalba":        "neb",
      "tourųkalba":        "neb",
      "trinitarijų kalba":        "trn",
      "trinitarijųkalba":        "trn",
      "tsongų kalba":        "ts",
      "tsongųkalba":        "ts",
      "tsvanų kalba":        "tn",
      "tsvanųkalba":        "tn",
      "tsvapongų kalba":        "two",
      "tsvapongųkalba":        "two",
      "tukanų kalba":        "tuo",
      "tukanųkalba":        "tuo",
      "tumbalo cholų kalba":        "ctu",
      "tumbalocholųkalba":        "ctu",
      "tumtumų kalba":        "tbr",
      "tumtumųkalba":        "tbr",
      "tupinambų kalba":        "tpn",
      "tupinambųkalba":        "tpn",
      "tupių kalba":        "sai",
      "tupiųkalba":        "sai",
      "turkanų kalba":        "tuv",
      "turkanųkalba":        "tuv",
      "turkmėnų kalba":        "tk",
      "turkmėnųkalba":        "tk",
      "turkų kalba":        "tr",
      "turkųkalba":        "tr",
      "tutchonų kalba":        "ttm",
      "tutchonųkalba":        "ttm",
      "tutelų kalba":        "tta",
      "tutelųkalba":        "tta",
      "tuvalų kalba":        "tvl",
      "tuvalųkalba":        "tvl",
      "tuvių kalba":        "tyv",
      "tuviųkalba":        "tyv",
      "tvi kalba":        "tw",
      "tvikalba":        "tw",
      "ubychų kalba":        "uby",
      "ubychųkalba":        "uby",
      "udmurtų kalba":        "udm",
      "udmurtųkalba":        "udm",
      "udžių kalba":        "udi",
      "udžiųkalba":        "udi",
      "ugaritų kalba":        "uga",
      "ugaritųkalba":        "uga",
      "uigūrų kalba":        "ug",
      "uigūrųkalba":        "ug",
      "ukrainiečių kalba":        "uk",
      "ukrainiečiųkalba":        "uk",
      "uličių kalba":        "uli",
      "uličiųkalba":        "uli",
      "umbrių kalba":        "xum",
      "umbriųkalba":        "xum",
      "umbundu kalba":        "umb",
      "umbundukalba":        "umb",
      "unamių kalba":        "unm",
      "unamiųkalba":        "unm",
      "uralo prokalbė":        "PUR",
      "uraloprokalbė":        "PUR",
      "urdų kalba":        "ur",
      "urdųkalba":        "ur",
      "urumų kalba":        "uum",
      "urumųkalba":        "uum",
      "uzbekų kalba":        "uz",
      "uzbekųkalba":        "uz",
      "vajų kalba":        "guc",
      "vajųkalba":        "guc",
      "vakarų apačių kalba":        "apw",
      "vakarųapačiųkalba":        "apw",
      "vakarų pandžabų kalba":        "pnb",
      "vakarųpandžabųkalba":        "pnb",
      "valpurų kalba":        "wbp",
      "valpurųkalba":        "wbp",
      "valų kalba":        "cy",
      "valųkalba":        "cy",
      "vambajų kalba":        "wmb",
      "vambajųkalba":        "wmb",
      "vandamenų kalba":        "wad",
      "vandamenųkalba":        "wad",
      "varajų kalba":        "war",
      "varajųkalba":        "war",
      "vendų kalba":        "ve",
      "vendųkalba":        "ve",
      "venetų kalba":        "vec",
      "venetųkalba":        "vec",
      "vengrų kalba":        "hu",
      "vengrųkalba":        "hu",
      "vengų kalba":        "bav",
      "vengųkalba":        "bav",
      "vepsų kalba":        "vep",
      "vepsųkalba":        "vep",
      "verų kalba":        "vro",
      "verųkalba":        "vro",
      "vidurinioji anglų kalba":        "enm",
      "viduriniojianglųkalba":        "enm",
      "vidurinioji olandų kalba":        "dum",
      "viduriniojiolandųkalba":        "dum",
      "vidurinioji persų kalba":        "pal",
      "viduriniojipersųkalba":        "pal",
      "vidurio aukštųjų vokiečių kalba":        "gmh",
      "vidurioaukštųjųvokiečiųkalba":        "gmh",
      "vidurio žemųjų vokiečių kalba":        "gml",
      "viduriožemųjųvokiečiųkalba":        "gml",
      "vietnamiečių kalba":        "vi",
      "vietnamiečiųkalba":        "vi",
      "vodų kalba":        "vot",
      "vodųkalba":        "vot",
      "vokiečių kalba":        "de",
      "vokiečiųkalba":        "de",
      "volaitų kalba":        "wal",
      "volaitųkalba":        "wal",
      "volapiuko kalba":        "vo",
      "volapiukokalba":        "vo",
      "volofų kalba":        "wo",
      "volofųkalba":        "wo",
      "voloniečių kalba":        "wa",
      "voloniečiųkalba":        "wa",
      "vu kalba":        "wuu",
      "vukalba":        "wuu",
      "zanakių kalba":        "zak",
      "zanakiųkalba":        "zak",
      "zaparo kalba":        "zro",
      "zaparokalba":        "zro",
      "zazakų kalba":        "diq",
      "zazakųkalba":        "diq",
      "zelandiečių kalba":        "zea",
      "zelandiečiųkalba":        "zea",
      "zenagų kalba":        "zen",
      "zenagųkalba":        "zen",
      "zigulų kalba":        "ziw",
      "zigulųkalba":        "ziw",
      "zinzų kalba":        "zin",
      "zinzųkalba":        "zin",
      "zulgų-gemzekų kalba":        "gnd",
      "zulgų-gemzekųkalba":        "gnd",
      "zulų kalba":        "zu",
      "zulųkalba":        "zu",
      "zunių kalba":        "zun",
      "zuniųkalba":        "zun",
      "žaliojo kyšulio kreolų kalba":        "cpp",
      "žaliojokyšuliokreolųkalba":        "cpp",
      "žemaičių kalba":        "bat-smg",
      "žemaičiųkalba":        "bat-smg",
      "žemutinių saksonų kalba":        "nds",
      "žemutiniųsaksonųkalba":        "nds",
      "žemutinių saksų kalba":        "nds-nl",
      "žemutiniųsaksųkalba":        "nds-nl",
      "proto-indo-european":        "PIE",
      "proto-indo-european":        "PIE",
      "afar":        "aa",
      "afar":        "aa",
      "arum-tesu":        "aab",
      "arum-tesu":        "aab",
      "abau":        "aau",
      "abau":        "aau",
      "abkhaz":        "ab",
      "abkhaz":        "ab",
      "abenaki":        "abe",
      "abenaki":        "abe",
      "abaza":        "abq",
      "abaza":        "abq",
      "ambulas":        "abt",
      "ambulas":        "abt",
      "bahrani":        "abv",
      "bahrani":        "abv",
      "abui":        "abz",
      "abui":        "abz",
      "acehnese":        "ace",
      "acehnese":        "ace",
      "acholi":        "ach",
      "acholi":        "ach",
      "iraqi":        "acm",
      "iraqi":        "acm",
      "adangme":        "ada",
      "adangme":        "ada",
      "dangme":        "ada",
      "dangme":        "ada",
      "adi":        "adi",
      "adi":        "adi",
      "adyghe":        "ady",
      "adyghe":        "ady",
      "adzera":        "adz",
      "adzera":        "adz",
      "avestan":        "ae",
      "avestan":        "ae",
      "haeke":        "aek",
      "haeke":        "aek",
      "eastern arrernte":        "aer",
      "easternarrernte":        "aer",
      "alsea":        "aes",
      "alsea":        "aes",
      "afrikaans":        "af",
      "afrikaans":        "af",
      "gulf":        "afb",
      "gulf":        "afb",
      "defaka":        "afn",
      "defaka":        "afn",
      "eloyi":        "afo",
      "eloyi":        "afo",
      "angor":        "agg",
      "angor":        "agg",
      "aguaruna":        "agr",
      "aguaruna":        "agr",
      "esimbi":        "ags",
      "esimbi":        "ags",
      "aghul":        "agx",
      "aghul":        "agx",
      "akha":        "ahk",
      "akha":        "ahk",
      "ashe":        "ahs",
      "ashe":        "ahs",
      "ahtna":        "aht",
      "ahtna":        "aht",
      "arosi":        "aia",
      "arosi":        "aia",
      "aynu":        "aib",
      "aynu":        "aib",
      "abdal":        "aib",
      "abdal":        "aib",
      "ejnu":        "aib",
      "ejnu":        "aib",
      "aini":        "aib",
      "aini":        "aib",
      "äynu":        "aib",
      "äynu":        "aib",
      "amara":        "aie",
      "amara":        "aie",
      "ake":        "aik",
      "ake":        "aik",
      "ainu":        "ain",
      "ainu":        "ain",
      "nataoran amis":        "ais",
      "nataoranamis":        "ais",
      "aari":        "aiw",
      "aari":        "aiw",
      "ajië":        "aji",
      "ajië":        "aji",
      "akan":        "ak",
      "akan":        "ak",
      "akawaio":        "ake",
      "akawaio":        "ake",
      "akkadian":        "akk",
      "akkadian":        "akk",
      "aklanon":        "akl",
      "aklanon":        "akl",
      "araki":        "akr",
      "araki":        "akr",
      "akhvakh":        "akv",
      "akhvakh":        "akv",
      "alabama":        "akz",
      "alabama":        "akz",
      "aleut":        "ale",
      "aleut":        "ale",
      "gheg":        "aln",
      "gheg":        "aln",
      "alune":        "alp",
      "alune":        "alp",
      "algonquin":        "alq",
      "algonquin":        "alq",
      "alutor":        "alr",
      "alutor":        "alr",
      "alemannic":        "als",
      "alemannic":        "als",
      "southern altai":        "alt",
      "southernaltai":        "alt",
      "'are'are":        "alu",
      "'are'are":        "alu",
      "amharic":        "am",
      "amharic":        "am",
      "amahuaca":        "amc",
      "amahuaca":        "amc",
      "yanesha'":        "ame",
      "yanesha'":        "ame",
      "hamer-banna":        "amf",
      "hamer-banna":        "amf",
      "amis":        "ami",
      "amis":        "ami",
      "amdang":        "amj",
      "amdang":        "amj",
      "ambai":        "amk",
      "ambai":        "amk",
      "ama":        "amm",
      "ama":        "amm",
      "amanab":        "amn",
      "amanab":        "amn",
      "alamblak":        "amp",
      "alamblak":        "amp",
      "amahai":        "amq",
      "amahai":        "amq",
      "amarakaeri":        "amr",
      "amarakaeri":        "amr",
      "amami":        "ams",
      "amami":        "ams",
      "amuzgo":        "amu",
      "amuzgo":        "amu",
      "aragonese":        "an",
      "aragonese":        "an",
      "angas":        "anc",
      "angas":        "anc",
      "ansus":        "and",
      "ansus":        "and",
      "xârâcùù":        "ane",
      "xârâcùù":        "ane",
      "old english":        "ang",
      "oldenglish":        "ang",
      "andi":        "ani",
      "andi":        "ani",
      "goemai":        "ank",
      "goemai":        "ank",
      "apache":        "apach",
      "apache":        "apach",
      "lebanese":        "apc",
      "lebanese":        "apc",
      "sudanese":        "apd",
      "sudanese":        "apd",
      "bukiyip":        "ape",
      "bukiyip":        "ape",
      "athpariya":        "aph",
      "athpariya":        "aph",
      "jicarilla":        "apj",
      "jicarilla":        "apj",
      "lipan":        "apl",
      "lipan":        "apl",
      "chiricahua":        "apm",
      "chiricahua":        "apm",
      "apma":        "app",
      "apma":        "app",
      "apatani":        "apt",
      "apatani":        "apt",
      "archi":        "aqc",
      "archi":        "aqc",
      "atakapa":        "aqp",
      "atakapa":        "aqp",
      "arabic":        "ar",
      "arabic":        "ar",
      "syriac":        "arc",
      "syriac":        "arc",
      "aramaic":        "arc",
      "aramaic":        "arc",
      "arabela":        "arl",
      "arabela":        "arl",
      "mapudungun":        "arn",
      "mapudungun":        "arn",
      "araona":        "aro",
      "araona":        "aro",
      "arapaho":        "arp",
      "arapaho":        "arp",
      "algerian":        "arq",
      "algerian":        "arq",
      "arbore":        "arv",
      "arbore":        "arv",
      "moroccan":        "ary",
      "moroccan":        "ary",
      "egyptian":        "arz",
      "egyptian":        "arz",
      "egyptian arabic":        "arz",
      "egyptianarabic":        "arz",
      "assamese":        "as",
      "assamese":        "as",
      "nakoda":        "asb",
      "nakoda":        "asb",
      "nakota":        "asb",
      "nakota":        "asb",
      "nakona":        "asb",
      "nakona":        "asb",
      "assiniboine":        "asb",
      "assiniboine":        "asb",
      "hohe":        "asb",
      "hohe":        "asb",
      "assiniboin":        "asb",
      "assiniboin":        "asb",
      "american sign language":        "ase",
      "americansignlanguage":        "ase",
      "ashkun":        "ask",
      "ashkun":        "ask",
      "asturian":        "ast",
      "asturian":        "ast",
      "aneityum":        "aty",
      "aneityum":        "aty",
      "anuta":        "aud",
      "anuta":        "aud",
      "ǂkxʼauǁʼein":        "aue",
      "ǂkxʼauǁʼein":        "aue",
      "augila":        "auj",
      "augila":        "auj",
      "auyana":        "auy",
      "auyana":        "auy",
      "avar":        "av",
      "avar":        "av",
      "awadhi":        "awa",
      "awadhi":        "awa",
      "awa":        "awb",
      "awa":        "awb",
      "awabakal":        "awk",
      "awabakal":        "awk",
      "awngi":        "awn",
      "awngi":        "awn",
      "xaragure":        "axx",
      "xaragure":        "axx",
      "aymara":        "ay",
      "aymara":        "ay",
      "ayere":        "aye",
      "ayere":        "aye",
      "libyan":        "ayl",
      "libyan":        "ayl",
      "ayu":        "ayu",
      "ayu":        "ayu",
      "azeri":        "az",
      "azeri":        "az",
      "azerbaijani":        "az",
      "azerbaijani":        "az",
      "bashkir":        "ba",
      "bashkir":        "ba",
      "bashkhir":        "ba",
      "bashkhir":        "ba",
      "baluchi":        "bal",
      "baluchi":        "bal",
      "balinese":        "ban",
      "balinese":        "ban",
      "bavarian":        "bar",
      "bavarian":        "bar",
      "austro-bavarian":        "bar",
      "austro-bavarian":        "bar",
      "basaa":        "bas",
      "basaa":        "bas",
      "samogitian":        "bat-smg",
      "samogitian":        "bat-smg",
      "babungo":        "bav",
      "babungo":        "bav",
      "bats":        "bbl",
      "bats":        "bbl",
      "bariai":        "bch",
      "bariai":        "bch",
      "bikol":        "bcl",
      "bikol":        "bcl",
      "budukh":        "bdk",
      "budukh":        "bdk",
      "indonesian bajau":        "bdl",
      "indonesianbajau":        "bdl",
      "bende":        "bdp",
      "bende":        "bdp",
      "bahnar":        "bdq",
      "bahnar":        "bdq",
      "belarusian":        "be",
      "belarusian":        "be",
      "беларуская (тарашкевіца)":        "be-x-old",
      "беларуская(тарашкевіца)":        "be-x-old",
      "beaver":        "bea",
      "beaver":        "bea",
      "byangsi":        "bee",
      "byangsi":        "bee",
      "beja":        "bej",
      "beja":        "bej",
      "bemba":        "bem",
      "bemba":        "bem",
      "tamazight":        "ber",
      "tamazight":        "ber",
      "bafut":        "bfd",
      "bafut":        "bfd",
      "bafanji":        "bfj",
      "bafanji":        "bfj",
      "badaga":        "bfq",
      "badaga":        "bfq",
      "balti":        "bft",
      "balti":        "bft",
      "bulgarian":        "bg",
      "bulgarian":        "bg",
      "bihari":        "bh",
      "bihari":        "bh",
      "bhojpuri":        "bho",
      "bhojpuri":        "bho",
      "bislama":        "bi",
      "bislama":        "bi",
      "blackfoot":        "bla",
      "blackfoot":        "bla",
      "bambara":        "bm",
      "bambara":        "bm",
      "bamanankan":        "bm",
      "bamanankan":        "bm",
      "bengali":        "bn",
      "bengali":        "bn",
      "tibetan":        "bo",
      "tibetan":        "bo",
      "bishnupriya manipuri":        "bpy",
      "bishnupriyamanipuri":        "bpy",
      "bishnupriya":        "bpy",
      "bishnupriya":        "bpy",
      "breton":        "br",
      "breton":        "br",
      "baure":        "brg",
      "baure":        "brg",
      "brahui":        "brh",
      "brahui":        "brh",
      "eastern bru":        "bru",
      "easternbru":        "bru",
      "bodo":        "brx",
      "bodo":        "brx",
      "bosnian":        "bs",
      "bosnian":        "bs",
      "burushaski":        "bsk",
      "burushaski":        "bsk",
      "barasana":        "bsn",
      "barasana":        "bsn",
      "beothuk":        "bue",
      "beothuk":        "bue",
      "buginese":        "bug",
      "buginese":        "bug",
      "boghom":        "bux",
      "boghom":        "bux",
      "buli-ghana":        "bwu",
      "buli-ghana":        "bwu",
      "buryat":        "bxr",
      "buryat":        "bxr",
      "baruya":        "byr",
      "baruya":        "byr",
      "kriol":        "bzj",
      "kriol":        "bzj",
      "catalan":        "ca",
      "catalan":        "ca",
      "ch'orti'":        "caa",
      "ch'orti'":        "caa",
      "ch\'orti\'":        "caa",
      "ch\'orti\'":        "caa",
      "chort":        "caa",
      "chort":        "caa",
      "garifuna":        "cab",
      "garifuna":        "cab",
      "cemuhî":        "cam",
      "cemuhî":        "cam",
      "chiquitano":        "cax",
      "chiquitano":        "cax",
      "chachi":        "cbi",
      "chachi":        "cbi",
      "chavacano":        "cbk",
      "chavacano":        "cbk",
      "zamboanga chavacano":        "cbk-zam",
      "zamboangachavacano":        "cbk-zam",
      "chavacano":        "cbk-zam",
      "chavacano":        "cbk-zam",
      "chayahuita":        "cbt",
      "chayahuita":        "cbt",
      "chamicuro":        "ccc",
      "chamicuro":        "ccc",
      "chamicuro u":        "ccc",
      "chamicurou":        "ccc",
      "min dong":        "cdo",
      "mindong":        "cdo",
      "\: min dong":        "cdo",
      "\:mindong":        "cdo",
      "chechen":        "ce",
      "chechen":        "ce",
      "cebuano":        "ceb",
      "cebuano":        "ceb",
      "rukiga":        "cgg",
      "rukiga":        "cgg",
      "chamorro":        "ch",
      "chamorro":        "ch",
      "chibcha":        "chb",
      "chibcha":        "chb",
      "chagatai":        "chg",
      "chagatai":        "chg",
      "mari":        "chm",
      "mari":        "chm",
      "choctaw":        "cho",
      "choctaw":        "cho",
      "cherokee":        "chr",
      "cherokee":        "chr",
      "cheyenne":        "chy",
      "cheyenne":        "chy",
      "cia-cia":        "cia",
      "cia-cia":        "cia",
      "chickasaw":        "cic",
      "chickasaw":        "cic",
      "shor":        "cjs",
      "shor":        "cjs",
      "chukchi":        "ckt",
      "chukchi":        "ckt",
      "klallam":        "clm",
      "klallam":        "clm",
      "emberá-chamí":        "cmi",
      "emberá-chamí":        "cmi",
      "chinese; mandarin":        "cmn",
      "chinese;mandarin":        "cmn",
      "mandarin":        "cmn",
      "mandarin":        "cmn",
      "\: mandarin":        "cmn",
      "\:mandarin":        "cmn",
      "corsican":        "co",
      "corsican":        "co",
      "comanche":        "com",
      "comanche":        "com",
      "coptic":        "cop",
      "coptic":        "cop",
      "capeverdean crioulo":        "cpp",
      "capeverdeancrioulo":        "cpp",
      "capeverdean creole":        "cpp",
      "capeverdeancreole":        "cpp",
      "cree":        "cr",
      "cree":        "cr",
      "crimean tatar":        "crh",
      "crimeantatar":        "crh",
      "cora":        "crn",
      "cora":        "crn",
      "czech":        "cs",
      "czech":        "cs",
      "kashubian":        "csb",
      "kashubian":        "csb",
      "chol":        "ctu",
      "chol":        "ctu",
      "old church slavonic":        "cu",
      "oldchurchslavonic":        "cu",
      "church slavonic":        "cu",
      "churchslavonic":        "cu",
      "cuiba":        "cui",
      "cuiba":        "cui",
      "kuna":        "cuk",
      "kuna":        "cuk",
      "chuvash":        "cv",
      "chuvash":        "cv",
      "welsh":        "cy",
      "welsh":        "cy",
      "danish":        "da",
      "danish":        "da",
      "dahalo":        "dal",
      "dahalo":        "dal",
      "fataluku":        "ddg",
      "fataluku":        "ddg",
      "tsez":        "ddo",
      "tsez":        "ddo",
      "german":        "de",
      "german":        "de",
      "degema":        "deg",
      "degema":        "deg",
      "daga":        "dgz",
      "daga":        "dgz",
      "zazaki":        "diq",
      "zazaki":        "diq",
      "dimli":        "diq",
      "dimli":        "diq",
      "dolgan":        "dlg",
      "dolgan":        "dlg",
      "dungan":        "dng",
      "dungan":        "dng",
      "dzùùngoo":        "dnn",
      "dzùùngoo":        "dnn",
      "lower sorbian":        "dsb",
      "lowersorbian":        "dsb",
      "sorbian, lower":        "dsb",
      "sorbian,lower":        "dsb",
      "sorbian":        "dsb",
      "sorbian":        "dsb",
      "tadaksahak":        "dsq",
      "tadaksahak":        "dsq",
      "ana tinga dogon":        "dti",
      "anatingadogon":        "dti",
      "dumi":        "dus",
      "dumi":        "dus",
      "dhivehi":        "dv",
      "dhivehi":        "dv",
      "maldivian":        "dv",
      "maldivian":        "dv",
      "duau":        "dva",
      "duau":        "dva",
      "yanda dom dogon":        "dym",
      "yandadomdogon":        "dym",
      "dzongkha":        "dz",
      "dzongkha":        "dz",
      "ewe":        "ee",
      "ewe":        "ee",
      "eggon":        "ego",
      "eggon":        "ego",
      "egyptian":        "egy",
      "egyptian":        "egy",
      "greek modern":        "el",
      "greekmodern":        "el",
      "greek":        "el",
      "greek":        "el",
      "emiliano-romagnolo":        "eml",
      "emiliano-romagnolo":        "eml",
      "english":        "en",
      "english":        "en",
      "ende":        "end",
      "ende":        "end",
      "engenni":        "enn",
      "engenni":        "enn",
      "esperanto":        "eo",
      "esperanto":        "eo",
      "spanish":        "es",
      "spanish":        "es",
      "eshtehardi":        "esh",
      "eshtehardi":        "esh",
      "estonian":        "et",
      "estonian":        "et",
      "etruscan":        "ett",
      "etruscan":        "ett",
      "basque":        "eu",
      "basque":        "eu",
      "evenki":        "evn",
      "evenki":        "evn",
      "extremaduran":        "ext",
      "extremaduran":        "ext",
      "estremeñu":        "ext",
      "estremeñu":        "ext",
      "persian":        "fa",
      "persian":        "fa",
      "pulaar":        "ff",
      "pulaar":        "ff",
      "fulani":        "ff",
      "fulani":        "ff",
      "finnish":        "fi",
      "finnish":        "fi",
      "nobiin":        "fia",
      "nobiin":        "fia",
      "filipino":        "fil",
      "filipino":        "fil",
      "fijian":        "fj",
      "fijian":        "fj",
      "faroese":        "fo",
      "faroese":        "fo",
      "faeroese":        "fo",
      "faeroese":        "fo",
      "french":        "fr",
      "french":        "fr",
      "old french":        "fro",
      "oldfrench":        "fro",
      "franco-provençal":        "frp",
      "franco-provençal":        "frp",
      "north frisian":        "frr",
      "northfrisian":        "frr",
      "fering":        "frr",
      "fering":        "frr",
      "mooring":        "frr",
      "mooring":        "frr",
      "friulian":        "fur",
      "friulian":        "fur",
      "west frisian":        "fy",
      "westfrisian":        "fy",
      "frisian":        "fy",
      "frisian":        "fy",
      "irish":        "ga",
      "irish":        "ga",
      "irish gaelic":        "ga",
      "irishgaelic":        "ga",
      "gaelic \(irish\)":        "ga",
      "gaelic\(irish\)":        "ga",
      "ga":        "gaa",
      "ga":        "gaa",
      "gagauz":        "gag",
      "gagauz":        "gag",
      "gagauz u":        "gag",
      "gagauzu":        "gag",
      "gan":        "gan",
      "gan":        "gan",
      "kaytetye":        "gbb",
      "kaytetye":        "gbb",
      "dari":        "gbz",
      "dari":        "gbz",
      "antillean creole":        "gcf",
      "antilleancreole":        "gcf",
      "scottish gaelic":        "gd",
      "scottishgaelic":        "gd",
      "gaelic \(scottish\)":        "gd",
      "gaelic\(scottish\)":        "gd",
      "scot gaelic":        "gd",
      "scotgaelic":        "gd",
      "ge'ez":        "gez",
      "ge'ez":        "gez",
      "ghadames":        "gha",
      "ghadames":        "gha",
      "gilbertese":        "gil",
      "gilbertese":        "gil",
      "galician":        "gl",
      "galician":        "gl",
      "gallegan":        "gl",
      "gallegan":        "gl",
      "nanai":        "gld",
      "nanai":        "gld",
      "gilaki":        "glk",
      "gilaki":        "glk",
      "middle high german":        "gmh",
      "middlehighgerman":        "gmh",
      "mycenaean":        "gmy",
      "mycenaean":        "gmy",
      "guaraní":        "gn",
      "guaraní":        "gn",
      "guarani":        "gn",
      "guarani":        "gn",
      "mbyá guaraní":        "gn",
      "mbyáguaraní":        "gn",
      "zulgo-gemzek":        "gnd",
      "zulgo-gemzek":        "gnd",
      "gooniyandi":        "gni",
      "gooniyandi":        "gni",
      "old high german":        "goh",
      "oldhighgerman":        "goh",
      "gondi":        "gon",
      "gondi":        "gon",
      "gothic":        "got",
      "gothic":        "got",
      "greek ancient":        "grc",
      "greekancient":        "grc",
      "ancient greek":        "grc",
      "ancientgreek":        "grc",
      "gresi":        "grs",
      "gresi":        "grs",
      "swiss german":        "gsw",
      "swissgerman":        "gsw",
      "alemannic":        "gsw",
      "alemannic":        "gsw",
      "gujarati":        "gu",
      "gujarati":        "gu",
      "wayuu":        "guc",
      "wayuu":        "guc",
      "maléku jaíka":        "gut",
      "malékujaíka":        "gut",
      "gusii":        "guz",
      "gusii":        "guz",
      "manx":        "gv",
      "manx":        "gv",
      "hausa":        "ha",
      "hausa":        "ha",
      "haida":        "hai",
      "haida":        "hai",
      "hakka":        "hak",
      "hakka":        "hak",
      "\: hakka":        "hak",
      "\:hakka":        "hak",
      "kejia":        "hak",
      "kejia":        "hak",
      "hak-kâ-fa":        "hak",
      "hak-kâ-fa":        "hak",
      "hawaiian":        "haw",
      "hawaiian":        "haw",
      "hebrew":        "he",
      "hebrew":        "he",
      "hindi":        "hi",
      "hindi":        "hi",
      "fiji hindi":        "hif",
      "fijihindi":        "hif",
      "hiligaynon":        "hil",
      "hiligaynon":        "hil",
      "hittite":        "hit",
      "hittite":        "hit",
      "halia":        "hla",
      "halia":        "hla",
      "hmong":        "hmn",
      "hmong":        "hmn",
      "hiri motu":        "ho",
      "hirimotu":        "ho",
      "hote":        "hot",
      "hote":        "hot",
      "croatian":        "hr",
      "croatian":        "hr",
      "upper sorbian":        "hsb",
      "uppersorbian":        "hsb",
      "haitian creole":        "ht",
      "haitiancreole":        "ht",
      "haitian":        "ht",
      "haitian":        "ht",
      "kreyòl ayisyen":        "ht",
      "kreyòlayisyen":        "ht",
      "hungarian":        "hu",
      "hungarian":        "hu",
      "hupa":        "hup",
      "hupa":        "hup",
      "armenian":        "hy",
      "armenian":        "hy",
      "herero":        "hz",
      "herero":        "hz",
      "interlingua":        "ia",
      "interlingua":        "ia",
      "iban":        "iba",
      "iban":        "iba",
      "ibino":        "ibn",
      "ibino":        "ibn",
      "indonesian":        "id",
      "indonesian":        "id",
      "interlingue":        "ie",
      "interlingue":        "ie",
      "igbo":        "ig",
      "igbo":        "ig",
      "sichuan yi":        "ii",
      "sichuanyi":        "ii",
      "inupiak":        "ik",
      "inupiak":        "ik",
      "ilocano":        "ilo",
      "ilocano":        "ilo",
      "imonda":        "imn",
      "imonda":        "imn",
      "inga":        "inb",
      "inga":        "inb",
      "ingush":        "inh",
      "ingush":        "inh",
      "ido":        "io",
      "ido":        "io",
      "iquito":        "iqu",
      "iquito":        "iqu",
      "icelandic":        "is",
      "icelandic":        "is",
      "ishkashimi":        "isk",
      "ishkashimi":        "isk",
      "italian":        "it",
      "italian":        "it",
      "itelmen":        "itl",
      "itelmen":        "itl",
      "inuktitut":        "iu",
      "inuktitut":        "iu",
      "iu mien":        "ium",
      "iumien":        "ium",
      "ingrian":        "izh",
      "ingrian":        "izh",
      "japanese":        "ja",
      "japanese":        "ja",
      "jamaican creole":        "jam",
      "jamaicancreole":        "jam",
      "yanyuwa":        "jao",
      "yanyuwa":        "jao",
      "lojban":        "jbo",
      "lojban":        "jbo",
      "jingulu":        "jig",
      "jingulu":        "jig",
      "mashi":        "jms",
      "mashi":        "jms",
      "javanese":        "jv",
      "javanese":        "jv",
      "georgian":        "ka",
      "georgian":        "ka",
      "karakalpak":        "kaa",
      "karakalpak":        "kaa",
      "kabyle":        "kab",
      "kabyle":        "kab",
      "jingpho":        "kac",
      "jingpho":        "kac",
      "kamba":        "kam",
      "kamba":        "kam",
      "bezhta":        "kap",
      "bezhta":        "kap",
      "kabardian":        "kbd",
      "kabardian":        "kbd",
      "khanty":        "kca",
      "khanty":        "kca",
      "karaim":        "kdr",
      "karaim":        "kdr",
      "keiga":        "kec",
      "keiga":        "kec",
      "kongo":        "kg",
      "kongo":        "kg",
      "kusunda":        "kgg",
      "kusunda":        "kgg",
      "kaingang":        "kgp",
      "kaingang":        "kgp",
      "abun":        "kgr",
      "abun":        "kgr",
      "khvarshi":        "khv",
      "khvarshi":        "khv",
      "kikuyu":        "ki",
      "kikuyu":        "ki",
      "koalib":        "kib",
      "koalib":        "kib",
      "kis":        "kis",
      "kis":        "kis",
      "khakas":        "kjh",
      "khakas":        "kjh",
      "khakassian":        "kjh",
      "khakassian":        "kjh",
      "kazakh":        "kk",
      "kazakh":        "kk",
      "kakabe":        "kke",
      "kakabe":        "kke",
      "kokota":        "kkk",
      "kokota":        "kkk",
      "guugu yimidhirr":        "kky",
      "guuguyimidhirr":        "kky",
      "greenlandic":        "kl",
      "greenlandic":        "kl",
      "kalaallisut":        "kl",
      "kalaallisut":        "kl",
      "gamilaraay":        "kld",
      "gamilaraay":        "kld",
      "kalenjin":        "kln",
      "kalenjin":        "kln",
      "khmer":        "km",
      "khmer":        "km",
      "kimbundu":        "kmb",
      "kimbundu":        "kmb",
      "kamasau":        "kms",
      "kamasau":        "kms",
      "khorasani turkish":        "kmz",
      "khorasaniturkish":        "kmz",
      "kannada":        "kn",
      "kannada":        "kn",
      "korean":        "ko",
      "korean":        "ko",
      "konkani":        "kok",
      "konkani":        "kok",
      "koryak":        "kpy",
      "koryak":        "kpy",
      "kanuri":        "kr",
      "kanuri":        "kr",
      "karachay-balkar":        "krc",
      "karachay-balkar":        "krc",
      "karachay\-balkar":        "krc",
      "karachay\-balkar":        "krc",
      "karelian":        "krl",
      "karelian":        "krl",
      "kashmiri":        "ks",
      "kashmiri":        "ks",
      "devanagari":        "ks",
      "devanagari":        "ks",
      "kölsch":        "ksh",
      "kölsch":        "ksh",
      "ripuarian":        "ksh",
      "ripuarian":        "ksh",
      "krisa":        "ksi",
      "krisa":        "ksi",
      "kansa":        "ksk",
      "kansa":        "ksk",
      "kurdish":        "ku",
      "kurdish":        "ku",
      "kurmancî":        "ku",
      "kurmancî":        "ku",
      "soranî":        "ku",
      "soranî":        "ku",
      "'auhelawa":        "kud",
      "'auhelawa":        "kud",
      "kupa":        "kug",
      "kupa":        "kug",
      "kuria":        "kuj",
      "kuria":        "kuj",
      "kulere":        "kul",
      "kulere":        "kul",
      "kumyk":        "kum",
      "kumyk":        "kum",
      "kunama":        "kun",
      "kunama":        "kun",
      "komi":        "kv",
      "komi":        "kv",
      "bagvalal":        "kva",
      "bagvalal":        "kva",
      "cornish":        "kw",
      "cornish":        "kw",
      "kwangali":        "kwn",
      "kwangali":        "kwn",
      "kyrgyz":        "ky",
      "kyrgyz":        "ky",
      "kirghiz":        "ky",
      "kirghiz":        "ky",
      "kyrghyz":        "ky",
      "kyrghyz":        "ky",
      "kwaya":        "kya",
      "kwaya":        "kya",
      "latin":        "la",
      "latin":        "la",
      "ladino":        "lad",
      "ladino":        "lad",
      "ladin":        "lad",
      "ladin":        "lad",
      "luxembourgish":        "lb",
      "luxembourgish":        "lb",
      "luxembourgian":        "lb",
      "luxembourgian":        "lb",
      "lak":        "lbe",
      "lak":        "lbe",
      "ladakhi":        "lbj",
      "ladakhi":        "lbj",
      "lezgi":        "lez",
      "lezgi":        "lez",
      "luganda":        "lg",
      "luganda":        "lg",
      "ganda":        "lg",
      "ganda":        "lg",
      "lengo":        "lgr",
      "lengo":        "lgr",
      "limburgish":        "li",
      "limburgish":        "li",
      "ligurian":        "lij",
      "ligurian":        "lij",
      "livonian":        "liv",
      "livonian":        "liv",
      "lakota":        "lkt",
      "lakota":        "lkt",
      "ladin":        "lld",
      "ladin":        "lld",
      "lombard":        "lmo",
      "lombard":        "lmo",
      "lingala":        "ln",
      "lingala":        "ln",
      "lao":        "lo",
      "lao":        "lo",
      "loniu":        "los",
      "loniu":        "los",
      "lithuanian":        "lt",
      "lithuanian":        "lt",
      "latgalian":        "ltg",
      "latgalian":        "ltg",
      "tshiluba":        "lua",
      "tshiluba":        "lua",
      "luo":        "luo",
      "luo":        "luo",
      "luyia":        "luy",
      "luyia":        "luy",
      "luhya":        "luy",
      "luhya":        "luy",
      "latvian":        "lv",
      "latvian":        "lv",
      "madurese":        "mad",
      "madurese":        "mad",
      "maasai":        "mas",
      "maasai":        "mas",
      "maba":        "mde",
      "maba":        "mde",
      "moksha":        "mdf",
      "moksha":        "mdf",
      "mandar":        "mdr",
      "mandar":        "mdr",
      "mengen":        "mee",
      "mengen":        "mee",
      "meyah":        "mej",
      "meyah":        "mej",
      "mekeo":        "mek",
      "mekeo":        "mek",
      "mende":        "men",
      "mende":        "men",
      "merey":        "meq",
      "merey":        "meq",
      "meru":        "mer",
      "meru":        "mer",
      "mato":        "met",
      "mato":        "met",
      "motu":        "meu",
      "motu":        "meu",
      "mano":        "mev",
      "mano":        "mev",
      "mauritian creole":        "mfe",
      "mauritiancreole":        "mfe",
      "malagasy":        "mg",
      "malagasy":        "mg",
      "marshallese":        "mh",
      "marshallese":        "mh",
      "manda":        "mha",
      "manda":        "mha",
      "maori":        "mi",
      "maori":        "mi",
      "mi'kmaq":        "mic",
      "mi'kmaq":        "mic",
      "mi\'kmaq":        "mic",
      "mi\'kmaq":        "mic",
      "minangkabau":        "min",
      "minangkabau":        "min",
      "miskito":        "miq",
      "miskito":        "miq",
      "macedonian":        "mk",
      "macedonian":        "mk",
      "malayalam":        "ml",
      "malayalam":        "ml",
      "mongolian":        "mn",
      "mongolian":        "mn",
      "mongol":        "mn",
      "mongol":        "mn",
      "mbula":        "mna",
      "mbula":        "mna",
      "manchu":        "mnc",
      "manchu":        "mnc",
      "munji":        "mnj",
      "munji":        "mnj",
      "mansi":        "mns",
      "mansi":        "mns",
      "manikion":        "mnx",
      "manikion":        "mnx",
      "moldavian":        "mo",
      "moldavian":        "mo",
      "moldovan":        "mo",
      "moldovan":        "mo",
      "mohawk":        "moh",
      "mohawk":        "moh",
      "maung":        "mph",
      "maung":        "mph",
      "manggarai":        "mqy",
      "manggarai":        "mqy",
      "marathi":        "mr",
      "marathi":        "mr",
      "malay":        "ms",
      "malay":        "ms",
      "maltese":        "mt",
      "maltese":        "mt",
      "muscogee":        "mus",
      "muscogee":        "mus",
      "miyako":        "mvi",
      "miyako":        "mvi",
      "mirandese":        "mwl",
      "mirandese":        "mwl",
      "marwari":        "mwr",
      "marwari":        "mwr",
      "monumbo":        "mxk",
      "monumbo":        "mxk",
      "burmese":        "my",
      "burmese":        "my",
      "myanmar":        "my",
      "myanmar":        "my",
      "erzya":        "myv",
      "erzya":        "myv",
      "masaaba":        "myx",
      "masaaba":        "myx",
      "macuna":        "myy",
      "macuna":        "myy",
      "mazanderani":        "mzn",
      "mazanderani":        "mzn",
      "tabari":        "mzn",
      "tabari":        "mzn",
      "nauruan":        "na",
      "nauruan":        "na",
      "nahuatl":        "nah",
      "nahuatl":        "nah",
      "isthmus-mecayapan nahuatl":        "nah",
      "isthmus-mecayapannahuatl":        "nah",
      "classical nahuatl":        "nah",
      "classicalnahuatl":        "nah",
      "nakanai":        "nak",
      "nakanai":        "nak",
      "nangikurrunggurr":        "nam",
      "nangikurrunggurr":        "nam",
      "neapolitan":        "nap",
      "neapolitan":        "nap",
      "nnapulitano":        "nap",
      "nnapulitano":        "nap",
      "nama":        "naq",
      "nama":        "naq",
      "ngarrindjeri":        "nay",
      "ngarrindjeri":        "nay",
      "natchez":        "ncz",
      "natchez":        "ncz",
      "ndali":        "ndh",
      "ndali":        "ndh",
      "ndonga":        "ndo",
      "ndonga":        "ndo",
      "low saxon":        "nds",
      "lowsaxon":        "nds",
      "dutch low saxon":        "nds-nl",
      "dutchlowsaxon":        "nds-nl",
      "nedersaksisch":        "nds-nl",
      "nedersaksisch":        "nds-nl",
      "nepali":        "ne",
      "nepali":        "ne",
      "toura":        "neb",
      "toura":        "neb",
      "kumak":        "nee",
      "kumak":        "nee",
      "negidal":        "neg",
      "negidal":        "neg",
      "nemi":        "nem",
      "nemi":        "nem",
      "nengone":        "nen",
      "nengone":        "nen",
      "newari":        "new",
      "newari":        "new",
      "nepal bhasa":        "new",
      "nepalbhasa":        "new",
      "newah bhaye":        "new",
      "newahbhaye":        "new",
      "newar":        "new",
      "newar":        "new",
      "nez percé":        "nez",
      "nezpercé":        "nez",
      "aiwoo":        "nfl",
      "aiwoo":        "nfl",
      "nias":        "nia",
      "nias":        "nia",
      "nyiha":        "nih",
      "nyiha":        "nih",
      "nganasan":        "nio",
      "nganasan":        "nio",
      "nivkh":        "niv",
      "nivkh":        "niv",
      "nukuoro":        "nkr",
      "nukuoro":        "nkr",
      "dutch":        "nl",
      "dutch":        "nl",
      "gela":        "nlg",
      "gela":        "nlg",
      "ndemli":        "nml",
      "ndemli":        "nml",
      "!xóõ":        "nmn",
      "!xóõ":        "nmn",
      "taa":        "nmn",
      "taa":        "nmn",
      "ǃxóõ":        "nmn",
      "ǃxóõ":        "nmn",
      "nynorsk":        "nn",
      "nynorsk":        "nn",
      "nande":        "nnb",
      "nande":        "nnb",
      "nanticoke":        "nnt",
      "nanticoke":        "nnt",
      "nynorsk":        "no",
      "nynorsk":        "no",
      "norwegian":        "no",
      "norwegian":        "no",
      "nogai":        "nog",
      "nogai":        "nog",
      "old norse":        "non",
      "oldnorse":        "non",
      "novial":        "nov",
      "novial":        "nov",
      "norman":        "nrm",
      "norman":        "nrm",
      "northern sotho":        "nso",
      "northernsotho":        "nso",
      "navajo":        "nv",
      "navajo":        "nv",
      "nottoway-meherrin":        "nwy",
      "nottoway-meherrin":        "nwy",
      "ngad'a":        "nxg",
      "ngad'a":        "nxg",
      "chichewa":        "ny",
      "chichewa":        "ny",
      "nyamwezi":        "nym",
      "nyamwezi":        "nym",
      "occitan":        "oc",
      "occitan":        "oc",
      "ojibwe":        "oj",
      "ojibwe":        "oj",
      "old korean":        "oko",
      "oldkorean":        "oko",
      "kirike":        "okr",
      "kirike":        "okr",
      "mochi":        "old",
      "mochi":        "old",
      "old lithuanian":        "old-lt",
      "oldlithuanian":        "old-lt",
      "oromo":        "om",
      "oromo":        "om",
      "o'odham":        "ood",
      "o'odham":        "ood",
      "o\'odham":        "ood",
      "o\'odham":        "ood",
      "oriya":        "or",
      "oriya":        "or",
      "ossetian":        "os",
      "ossetian":        "os",
      "ossetic":        "os",
      "ossetic":        "os",
      "oscan":        "osc",
      "oscan":        "osc",
      "old spanish":        "osp",
      "oldspanish":        "osp",
      "old saxon":        "osx",
      "oldsaxon":        "osx",
      "ottoman turkish":        "ota",
      "ottomanturkish":        "ota",
      "punjabi":        "pa",
      "punjabi":        "pa",
      "pangasinan":        "pag",
      "pangasinan":        "pag",
      "kapampangan":        "pam",
      "kapampangan":        "pam",
      "pampanga":        "pam",
      "pampanga":        "pam",
      "papiamentu":        "pap",
      "papiamentu":        "pap",
      "papiamento":        "pap",
      "papiamento":        "pap",
      "palauan":        "pau",
      "palauan":        "pau",
      "pawnee":        "paw",
      "pawnee":        "paw",
      "podoko":        "pbi",
      "podoko":        "pbi",
      "pangwa":        "pbr",
      "pangwa":        "pbr",
      "yay":        "pcc",
      "yay":        "pcc",
      "pennsylvania german":        "pdc",
      "pennsylvaniagerman":        "pdc",
      "plautdietsch":        "pdt",
      "plautdietsch":        "pdt",
      "phoenician":        "phn",
      "phoenician":        "phn",
      "pali":        "pi",
      "pali":        "pi",
      "pitcairn-norfolk":        "pih",
      "pitcairn-norfolk":        "pih",
      "pitkern":        "pih",
      "pitkern":        "pih",
      "pitcairnese":        "pih",
      "pitcairnese":        "pih",
      "powhatan":        "pim",
      "powhatan":        "pim",
      "pitjantjatjara":        "pjt",
      "pitjantjatjara":        "pjt",
      "polish":        "pl",
      "polish":        "pl",
      "piedmontese":        "pms",
      "piedmontese":        "pms",
      "piemontese":        "pms",
      "piemontese":        "pms",
      "punjabi western":        "pnb",
      "punjabiwestern":        "pnb",
      "pohnpeian":        "pon",
      "pohnpeian":        "pon",
      "central pomo":        "poo",
      "centralpomo":        "poo",
      "polabian":        "pox",
      "polabian":        "pox",
      "pipil":        "ppl",
      "pipil":        "ppl",
      "old prussian":        "prg",
      "oldprussian":        "prg",
      "prussian":        "prg",
      "prussian":        "prg",
      "pashto":        "ps",
      "pashto":        "ps",
      "pashtu":        "ps",
      "pashtu":        "ps",
      "pushto":        "ps",
      "pushto":        "ps",
      "pashato":        "ps",
      "pashato":        "ps",
      "portuguese":        "pt",
      "portuguese":        "pt",
      "português":        "pt",
      "português":        "pt",
      "quechua":        "qu",
      "quechua":        "qu",
      "rapanui":        "rap",
      "rapanui":        "rap",
      "rapa nui":        "rap",
      "rapanui":        "rap",
      "rarotongan":        "rar",
      "rarotongan":        "rar",
      "rohingya":        "rhg",
      "rohingya":        "rhg",
      "marka":        "rkm",
      "marka":        "rkm",
      "romansch":        "rm",
      "romansch":        "rm",
      "romany":        "rmy",
      "romany":        "rmy",
      "kirundi":        "rn",
      "kirundi":        "rn",
      "romanian":        "ro",
      "romanian":        "ro",
      "aromanian":        "roa-rup",
      "aromanian":        "roa-rup",
      "romani":        "rom",
      "romani":        "rom",
      "russian":        "ru",
      "russian":        "ru",
      "rufiji":        "rui",
      "rufiji":        "rui",
      "istro-romanian":        "ruo",
      "istro-romanian":        "ruo",
      "aromanian":        "rup",
      "aromanian":        "rup",
      "megleno-romanian":        "ruq",
      "megleno-romanian":        "ruq",
      "kinyarwanda":        "rw",
      "kinyarwanda":        "rw",
      "yaeyama":        "rys",
      "yaeyama":        "rys",
      "okinawan":        "ryu",
      "okinawan":        "ryu",
      "sanskrit":        "sa",
      "sanskrit":        "sa",
      "sandawe":        "sad",
      "sandawe":        "sad",
      "yakut":        "sah",
      "yakut":        "sah",
      "sakha":        "sah",
      "sakha":        "sah",
      "tupinambá":        "sai",
      "tupinambá":        "sai",
      "santali":        "sat",
      "santali":        "sat",
      "safwa":        "sbk",
      "safwa":        "sbk",
      "sardinian":        "sc",
      "sardinian":        "sc",
      "sardinian \(southern\)":        "sc",
      "sardinian\(southern\)":        "sc",
      "sardinian \(northern\)":        "sc",
      "sardinian\(northern\)":        "sc",
      "sicilian":        "scn",
      "sicilian":        "scn",
      "scots":        "sco",
      "scots":        "sco",
      "scottish":        "sco",
      "scottish":        "sco",
      "sha":        "scw",
      "sha":        "scw",
      "sindhi":        "sd",
      "sindhi":        "sd",
      "northern sami":        "se",
      "northernsami":        "se",
      "sami \(northern\)":        "se",
      "sami\(northern\)":        "se",
      "sami":        "se",
      "sami":        "se",
      "semai":        "sea",
      "semai":        "sea",
      "seri":        "sei",
      "seri":        "sei",
      "sango":        "sg",
      "sango":        "sg",
      "old irish":        "sga",
      "oldirish":        "sga",
      "serbo-croatian":        "sh",
      "serbo-croatian":        "sh",
      "shoshone":        "shh",
      "shoshone":        "shh",
      "shoshoni":        "shh",
      "shoshoni":        "shh",
      "shan":        "shn",
      "shan":        "shn",
      "shuswap":        "shs",
      "shuswap":        "shs",
      "secwepemctsín":        "shs",
      "secwepemctsín":        "shs",
      "sinhalese":        "si",
      "sinhalese":        "si",
      "sinhala":        "si",
      "sinhala":        "si",
      "simple english":        "simple",
      "simpleenglish":        "simple",
      "kildin sami":        "sjd",
      "kildinsami":        "sjd",
      "xibe":        "sjo",
      "xibe":        "sjo",
      "ter sami":        "sjt",
      "tersami":        "sjt",
      "slovak":        "sk",
      "slovak":        "sk",
      "slovene":        "sl",
      "slovene":        "sl",
      "slovenian":        "sl",
      "slovenian":        "sl",
      "salar":        "slr",
      "salar":        "slr",
      "samoan":        "sm",
      "samoan":        "sm",
      "inari sami":        "smn",
      "inarisami":        "smn",
      "skolt sami":        "sms",
      "skoltsami":        "sms",
      "shona":        "sn",
      "shona":        "sn",
      "soninke":        "snk",
      "soninke":        "snk",
      "somali":        "so",
      "somali":        "so",
      "seeku":        "sos",
      "seeku":        "sos",
      "sonsorolese":        "sov",
      "sonsorolese":        "sov",
      "species":        "species",
      "species":        "species",
      "albanian":        "sq",
      "albanian":        "sq",
      "tosk":        "sq",
      "tosk":        "sq",
      "serbian":        "sr",
      "serbian":        "sr",
      "sranan tongo":        "srn",
      "sranantongo":        "srn",
      "surinaams":        "srn",
      "surinaams":        "srn",
      "sranantongo":        "srn",
      "sranantongo":        "srn",
      "sranan":        "srn",
      "sranan":        "srn",
      "sarsi":        "srs",
      "sarsi":        "srs",
      "swati":        "ss",
      "swati":        "ss",
      "swazi":        "ss",
      "swazi":        "ss",
      "thao":        "ssf",
      "thao":        "ssf",
      "sotho":        "st",
      "sotho":        "st",
      "saterland frisian":        "stq",
      "saterlandfrisian":        "stq",
      "seeltersk":        "stq",
      "seeltersk":        "stq",
      "saterlandic":        "stq",
      "saterlandic":        "stq",
      "sundanese":        "su",
      "sundanese":        "su",
      "sudovian":        "sud",
      "sudovian":        "sud",
      "sumerian":        "sux",
      "sumerian":        "sux",
      "swedish":        "sv",
      "swedish":        "sv",
      "swahili":        "sw",
      "swahili":        "sw",
      "sokna":        "swn",
      "sokna":        "swn",
      "sangir":        "sxn",
      "sangir":        "sxn",
      "seze":        "sze",
      "seze":        "sze",
      "silesian":        "szl",
      "silesian":        "szl",
      "ślůnski":        "szl",
      "ślůnski":        "szl",
      "tamil":        "ta",
      "tamil":        "ta",
      "tumtum":        "tbr",
      "tumtum":        "tbr",
      "telugu":        "te",
      "telugu":        "te",
      "tetum":        "tet",
      "tetum":        "tet",
      "tajik":        "tg",
      "tajik":        "tg",
      "thai":        "th",
      "thai":        "th",
      "tharaka":        "thk",
      "tharaka":        "thk",
      "tigrinya":        "ti",
      "tigrinya":        "ti",
      "tigrigna":        "ti",
      "tigrigna":        "ti",
      "tivi":        "tiv",
      "tivi":        "tiv",
      "turkmen":        "tk",
      "turkmen":        "tk",
      "tagalog":        "tl",
      "tagalog":        "tl",
      "tlingit":        "tli",
      "tlingit":        "tli",
      "tswana":        "tn",
      "tswana":        "tn",
      "setswana":        "tn",
      "setswana":        "tn",
      "tongan":        "to",
      "tongan":        "to",
      "tonga":        "to",
      "tonga":        "to",
      "tonga":        "tog",
      "tonga":        "tog",
      "tobian":        "tox",
      "tobian":        "tox",
      "tok pisin":        "tpi",
      "tokpisin":        "tpi",
      "tupinambá":        "tpn",
      "tupinambá":        "tpn",
      "old tupi":        "tpw",
      "oldtupi":        "tpw",
      "turkish":        "tr",
      "turkish":        "tr",
      "trinitario":        "trn",
      "trinitario":        "trn",
      "tsonga":        "ts",
      "tsonga":        "ts",
      "xitsonga":        "ts",
      "xitsonga":        "ts",
      "tatar":        "tt",
      "tatar":        "tt",
      "tutelo":        "tta",
      "tutelo":        "tta",
      "northern tutchone":        "ttm",
      "northerntutchone":        "ttm",
      "tucano":        "tuo",
      "tucano":        "tuo",
      "tedaga":        "tuq",
      "tedaga":        "tuq",
      "altai":        "tut",
      "altai":        "tut",
      "turkana":        "tuv",
      "turkana":        "tuv",
      "tuvaluan":        "tvl",
      "tuvaluan":        "tvl",
      "twi":        "tw",
      "twi":        "tw",
      "taos":        "twf",
      "taos":        "twf",
      "tswapong":        "two",
      "tswapong":        "two",
      "tocharian b":        "txb",
      "tocharianb":        "txb",
      "tahitian":        "ty",
      "tahitian":        "ty",
      "tuvan":        "tyv",
      "tuvan":        "tyv",
      "tz'utujil":        "tzj",
      "tz'utujil":        "tzj",
      "central atlas tamazight":        "tzm",
      "centralatlastamazight":        "tzm",
      "tzotzil":        "tzo",
      "tzotzil":        "tzo",
      "ubykh":        "uby",
      "ubykh":        "uby",
      "udi":        "udi",
      "udi":        "udi",
      "udmurt":        "udm",
      "udmurt":        "udm",
      "uyghur":        "ug",
      "uyghur":        "ug",
      "ugaritic":        "uga",
      "ugaritic":        "uga",
      "ukrainian":        "uk",
      "ukrainian":        "uk",
      "ulithian":        "uli",
      "ulithian":        "uli",
      "umbundu":        "umb",
      "umbundu":        "umb",
      "unami":        "unm",
      "unami":        "unm",
      "mundari":        "unr",
      "mundari":        "unr",
      "urdu":        "ur",
      "urdu":        "ur",
      "urum":        "uum",
      "urum":        "uum",
      "uzbek":        "uz",
      "uzbek":        "uz",
      "venda":        "ve",
      "venda":        "ve",
      "venetian":        "vec",
      "venetian":        "vec",
      "veps":        "vep",
      "veps":        "vep",
      "vietnamese":        "vi",
      "vietnamese":        "vi",
      "flemish":        "vls",
      "flemish":        "vls",
      "mbabaram":        "vmb",
      "mbabaram":        "vmb",
      "volapük":        "vo",
      "volapük":        "vo",
      "volapuk":        "vo",
      "volapuk":        "vo",
      "votic":        "vot",
      "votic":        "vot",
      "walloon":        "wa",
      "walloon":        "wa",
      "wandamen":        "wad",
      "wandamen":        "wad",
      "walamo":        "wal",
      "walamo":        "wal",
      "waray-waray":        "war",
      "waray-waray":        "war",
      "waráy":        "war",
      "waráy":        "war",
      "winaray":        "war",
      "winaray":        "war",
      "waray":        "war",
      "waray":        "war",
      "warlpiri":        "wbp",
      "warlpiri":        "wbp",
      "wambaya":        "wmb",
      "wambaya":        "wmb",
      "wolof":        "wo",
      "wolof":        "wo",
      "bungu":        "wun",
      "bungu":        "wun",
      "wu":        "wuu",
      "wu":        "wuu",
      "\: wu":        "wuu",
      "\:wu":        "wuu",
      "kalmyk":        "xal",
      "kalmyk":        "xal",
      "ǀxam":        "xam",
      "ǀxam":        "xam",
      "kamassian":        "xas",
      "kamassian":        "xas",
      "kambera":        "xbr",
      "kambera":        "xbr",
      "old armenian":        "xcl",
      "oldarmenian":        "xcl",
      "xhosa":        "xh",
      "xhosa":        "xh",
      "mingrelian":        "xmf",
      "mingrelian":        "xmf",
      "kanakanabu":        "xnb",
      "kanakanabu":        "xnb",
      "phrygian":        "xpg",
      "phrygian":        "xpg",
      "pumpokol":        "xpm",
      "pumpokol":        "xpm",
      "sherpa":        "xsr",
      "sherpa":        "xsr",
      "saisiyat":        "xsy",
      "saisiyat":        "xsy",
      "tocharian a":        "xto",
      "tochariana":        "xto",
      "kunigami":        "xug",
      "kunigami":        "xug",
      "umbrian":        "xum",
      "umbrian":        "xum",
      "yaminahua":        "yaa",
      "yaminahua":        "yaa",
      "yagnobi":        "yai",
      "yagnobi":        "yai",
      "yao":        "yao",
      "yao":        "yao",
      "tarok":        "yer",
      "tarok":        "yer",
      "yiddish":        "yi",
      "yiddish":        "yi",
      "yidiny":        "yii",
      "yidiny":        "yii",
      "yoruba":        "yo",
      "yoruba":        "yo",
      "yonaguni":        "yoi",
      "yonaguni":        "yoi",
      "yareba":        "yrb",
      "yareba":        "yrb",
      "nenets":        "yrk",
      "nenets":        "yrk",
      "yucatec maya":        "yua",
      "yucatecmaya":        "yua",
      "chinese; cantonese":        "yue",
      "chinese;cantonese":        "yue",
      "bena":        "yun",
      "bena":        "yun",
      "yugh":        "yuu",
      "yugh":        "yuu",
      "zhuang":        "za",
      "zhuang":        "za",
      "isthmus zapotec":        "zai",
      "isthmuszapotec":        "zai",
      "zanaki":        "zak",
      "zanaki":        "zak",
      "yatzachi zapotec":        "zav",
      "yatzachizapotec":        "zav",
      "mitla zapotec":        "zaw",
      "mitlazapotec":        "zaw",
      "zeelandic":        "zea",
      "zeelandic":        "zea",
      "zenaga":        "zen",
      "zenaga":        "zen",
      "chinese":        "zh",
      "chinese":        "zh",
      "classical chinese":        "zh-classical",
      "classicalchinese":        "zh-classical",
      "min-nan":        "zh-min-nan",
      "min-nan":        "zh-min-nan",
      "\: min nan":        "zh-min-nan",
      "\:minnan":        "zh-min-nan",
      "minnan":        "zh-min-nan",
      "minnan":        "zh-min-nan",
      "min nan":        "zh-min-nan",
      "minnan":        "zh-min-nan",
      "zinza":        "zin",
      "zinza":        "zin",
      "zigula":        "ziw",
      "zigula":        "ziw",
      "maranunggu":        "zmr",
      "maranunggu":        "zmr",
      "amatlán zapotec":        "zpo",
      "amatlánzapotec":        "zpo",
      "záparo":        "zro",
      "záparo":        "zro",
      "zulu":        "zu",
      "zulu":        "zu",
      "zuni":        "zun",
      "zuni":        "zun",
      "old chinese":        "och",
      "oldchinese":        "och",
      "old japanese":        "ojp",
      "oldjapanese":        "ojp",
      "võro":        "fiu-vro",
      "võro":        "fiu-vro",
      "punjabi":        "pan",
      "punjabi":        "pan",
      "yue":        "zh-yue",
      "yue":        "zh-yue",
      "cantonese":        "zh-yue",
      "cantonese":        "zh-yue",
      "\: cantonese":        "zh-yue",
      "\:cantonese":        "zh-yue",
      "katcha-kadugli-miri":        "xtc",
      "katcha-kadugli-miri":        "xtc",
      "eastern lawa":        "lwl",
      "easternlawa":        "lwl",
      "nkoroo":        "nkx",
      "nkoroo":        "nkx",
      "sie":        "erg",
      "sie":        "erg",
      "kwamera":        "tnk",
      "kwamera":        "tnk",
      "horom":        "hoe",
      "horom":        "hoe",
      "ho":        "hoc",
      "ho":        "hoc",
      "forest enets":        "enf",
      "forestenets":        "enf",
      "hoava":        "hoa",
      "hoava":        "hoa",
      "enga":        "enq",
      "enga":        "enq",
      "enwan":        "enw",
      "enwan":        "enw",
      "hozo":        "hoz",
      "hozo":        "hoz",
      "laru":        "lan",
      "laru":        "lan",
      "lambya":        "lai",
      "lambya":        "lai",
      "lango":        "laj",
      "lango":        "laj",
      "pattani":        "lae",
      "pattani":        "lae",
      "lauje":        "law",
      "lauje":        "law",
      "fipa":        "fip",
      "fipa":        "fip",
      "ron":        "cla",
      "ron":        "cla",
      "fyer":        "fie",
      "fyer":        "fie",
      "maguindanao":        "mdh",
      "maguindanao":        "mdh",
      "mada":        "mda",
      "mada":        "mda",
      "gola":        "gol",
      "gola":        "gol",
      "gofa":        "gof",
      "gofa":        "gof",
      "guro":        "goa",
      "guro":        "goa",
      "bolinao":        "smk",
      "bolinao":        "smk",
      "marau":        "mvr",
      "marau":        "mvr",
      "manam":        "mva",
      "manam":        "mva",
      "korku":        "kfq",
      "korku":        "kfq",
      "konda":        "kfc",
      "konda":        "kfc",
      "kinnauri":        "kfk",
      "kinnauri":        "kfk",
      "papantla totonac":        "top",
      "papantlatotonac":        "top",
      "xinca":        "xin",
      "xinca":        "xin",
      "tonga‌":        "toi",
      "tonga‌":        "toi",
      "temiar":        "tea",
      "temiar":        "tea",
      "xipaya":        "xiy",
      "xipaya":        "xiy",
      "koshin":        "kid",
      "koshin":        "kid",
      "juǀ'hoan":        "ktz",
      "juǀ'hoan":        "ktz",
      "nzima":        "nzi",
      "nzima":        "nzi",
      "kalkatungu":        "ktg",
      "kalkatungu":        "ktg",
      "logooli":        "rag",
      "logooli":        "rag",
      "yangkam":        "bsx",
      "yangkam":        "bsx",
      "basketo":        "bst",
      "basketo":        "bst",
      "kyenga":        "tye",
      "kyenga":        "tye",
      "tauya":        "tya",
      "tauya":        "tya",
      "busami":        "bsm",
      "busami":        "bsm",
      "doura":        "don",
      "doura":        "don",
      "penrhyn":        "pnh",
      "penrhyn":        "pnh",
      "dobu":        "dob",
      "dobu":        "dob",
      "doe":        "doe",
      "doe":        "doe",
      "dompo":        "doy",
      "dompo":        "doy",
      "macushi":        "mbc",
      "macushi":        "mbc",
      "pakanha":        "pkn",
      "pakanha":        "pkn",
      "ocaina":        "oca",
      "ocaina":        "oca",
      "ogbah":        "ogc",
      "ogbah":        "ogc",
      "susu":        "sus",
      "susu":        "sus",
      "northern emberá":        "emp",
      "northernemberá":        "emp",
      "nuer":        "nus",
      "nuer":        "nus",
      "nupe-nupe-tako":        "nup",
      "nupe-nupe-tako":        "nup",
      "nung":        "nun",
      "nung":        "nun",
      "niuafo'ou":        "num",
      "niuafo'ou":        "num",
      "yuaga":        "nua",
      "yuaga":        "nua",
      "ir":        "irr",
      "ir":        "irr",
      "muyang":        "muy",
      "muyang":        "muy",
      "kamviri":        "xvi",
      "kamviri":        "xvi",
      "iraqw":        "irk",
      "iraqw":        "irk",
      "mbu'":        "muc",
      "mbu'":        "muc",
      "ilue":        "ilv",
      "ilue":        "ilv",
      "koreguaje":        "coe",
      "koreguaje":        "coe",
      "colorado":        "cof",
      "colorado":        "cof",
      "awa-cuaiquer":        "kwi",
      "awa-cuaiquer":        "kwi",
      "middle french":        "frm",
      "middlefrench":        "frm",
      "sharanahua":        "mcd",
      "sharanahua":        "mcd",
      "machiguenga":        "mcb",
      "machiguenga":        "mcb",
      "guanche":        "gnc",
      "guanche":        "gnc",
      "gumatj":        "gnn",
      "gumatj":        "gnn",
      "sáliba":        "slc",
      "sáliba":        "slc",
      "rukai":        "dru",
      "rukai":        "dru",
      "tzeltal":        "tzh",
      "tzeltal":        "tzh",
      "drehu":        "dhv",
      "drehu":        "dhv",
      "ngaju":        "nij",
      "ngaju":        "nij",
      "kisi":        "kiz",
      "kisi":        "kiz",
      "ninzo":        "nin",
      "ninzo":        "nin",
      "nilamba":        "nim",
      "nilamba":        "nim",
      "kimbu":        "kiv",
      "kimbu":        "kiv",
      "arin":        "xrn",
      "arin":        "xrn",
      "kiowa":        "kio",
      "kiowa":        "kio",
      "tofa":        "kim",
      "tofa":        "kim",
      "nimboran":        "nir",
      "nimboran":        "nir",
      "niuean":        "niu",
      "niuean":        "niu",
      "epena":        "sja",
      "epena":        "sja",
      "epie":        "epi",
      "epie":        "epi",
      "yendang":        "yen",
      "yendang":        "yen",
      "yeyi":        "yey",
      "yeyi":        "yey",
      "yeskwa":        "yes",
      "yeskwa":        "yes",
      "halang":        "hal",
      "halang":        "hal",
      "hangaza":        "han",
      "hangaza":        "han",
      "eleme":        "elm",
      "eleme":        "elm",
      "binisayâ":        "bns",
      "binisayâ":        "bns",
      "han":        "haa",
      "han":        "haa",
      "bantik":        "bnq",
      "bantik":        "bnq",
      "thracian":        "txh",
      "thracian":        "txh",
      "hatam":        "had",
      "hatam":        "had",
      "bangi":        "bni",
      "bangi":        "bni",
      "bunun":        "bnn",
      "bunun":        "bnn",
      "harari":        "har",
      "harari":        "har",
      "western lawa":        "lcp",
      "westernlawa":        "lcp",
      "oksapmin":        "opm",
      "oksapmin":        "opm",
      "rungwa":        "rnw",
      "rungwa":        "rnw",
      "yawuru":        "ywr",
      "yawuru":        "ywr",
      "botlikh":        "bph",
      "botlikh":        "bph",
      "woiwurrung":        "wwg",
      "woiwurrung":        "wwg",
      "northern qiang":        "cng",
      "northernqiang":        "cng",
      "lai":        "cnh",
      "lai":        "cnh",
      "asháninka":        "cni",
      "asháninka":        "cni",
      "palu'e":        "ple",
      "palu'e":        "ple",
      "macaguán":        "mbn",
      "macaguán":        "mbn",
      "qimant":        "ahg",
      "qimant":        "ahg",
      "àhàn":        "ahn",
      "àhàn":        "ahn",
      "papuma":        "ppm",
      "papuma":        "ppm",
      "temi":        "soz",
      "temi":        "soz",
      "wan":        "wan",
      "wan":        "wan",
      "waffa":        "waj",
      "waffa":        "waj",
      "south giziga":        "giz",
      "southgiziga":        "giz",
      "gidar":        "gid",
      "gidar":        "gid",
      "hinukh":        "gin",
      "hinukh":        "gin",
      "wageman":        "waq",
      "wageman":        "waq",
      "muong":        "mtq",
      "muong":        "mtq",
      "mota":        "mtt",
      "mota":        "mtt",
      "munggui":        "mth",
      "munggui":        "mth",
      "namia":        "nnm",
      "namia":        "nnm",
      "ngiemboon":        "nnh",
      "ngiemboon":        "nnh",
      "khowar":        "khw",
      "khowar":        "khw",
      "kuturmi":        "khj",
      "kuturmi":        "khj",
      "khotanese":        "kho",
      "khotanese":        "kho",
      "nukunu":        "nnv",
      "nukunu":        "nnv",
      "lü":        "khb",
      "lü":        "khb",
      "ningye":        "nns",
      "ningye":        "nns",
      "ngindo":        "nnq",
      "ngindo":        "nnq",
      "tiwi":        "tiw",
      "tiwi":        "tiw",
      "north ndebele":        "nd",
      "northndebele":        "nd",
      "ndonga":        "ng",
      "ndonga":        "ng",
      "tindi":        "tin",
      "tindi":        "tin",
      "south ndebele":        "nr",
      "southndebele":        "nr",
      "tigre":        "tig",
      "tigre":        "tig",
      "kove":        "kvc",
      "kove":        "kvc",
      "kendem":        "kvm",
      "kendem":        "kvm",
      "kwang":        "kvi",
      "kwang":        "kvi",
      "rotokas":        "roo",
      "rotokas":        "roo",
      "lau":        "llu",
      "lau":        "llu",
      "lele":        "llc",
      "lele":        "llc",
      "yavitero":        "yvt",
      "yavitero":        "yvt",
      "boko":        "bqc",
      "boko":        "bqc",
      "busa":        "bqp",
      "busa":        "bqp",
      "dime":        "dim",
      "dime":        "dim",
      "dinka":        "din",
      "dinka":        "din",
      "gurindji":        "gue",
      "gurindji":        "gue",
      "jehai":        "jhi",
      "jehai":        "jhi",
      "dieri":        "dif",
      "dieri":        "dif",
      "guayabero":        "guo",
      "guayabero":        "guo",
      "guambiano":        "gum",
      "guambiano":        "gum",
      "gunwinggu":        "gup",
      "gunwinggu":        "gup",
      "dimasa":        "dis",
      "dimasa":        "dis",
      "minica huitoto":        "hto",
      "minicahuitoto":        "hto",
      "turkic khalaj":        "klj",
      "turkickhalaj":        "klj",
      "pom":        "pmo",
      "pom":        "pmo",
      "tanimuca-retuarã":        "tnc",
      "tanimuca-retuarã":        "tnc",
      "roviana":        "rug",
      "roviana":        "rug",
      "ekari":        "ekg",
      "ekari":        "ekg",
      "ekit":        "eke",
      "ekit":        "eke",
      "ngombe":        "ngc",
      "ngombe":        "ngc",
      "bongo":        "bot",
      "bongo":        "bot",
      "bondei":        "bou",
      "bondei":        "bou",
      "bole":        "bol",
      "bole":        "bol",
      "berom":        "bom",
      "berom":        "bom",
      "bora":        "boa",
      "bora":        "boa",
      "mundabli":        "boe",
      "mundabli":        "boe",
      "ekpeye":        "ekp",
      "ekpeye":        "ekp",
      "caac":        "msq",
      "caac":        "msq",
      "zazaki":        "zza",
      "zazaki":        "zza",
      "car nicobarese":        "caq",
      "carnicobarese":        "caq",
      "akpes":        "ibe",
      "akpes":        "ibe",
      "ibani":        "iby",
      "ibani":        "iby",
      "kalispel-pend d'oreille":        "fla",
      "kalispel-pendd'oreille":        "fla",
      "ibuoro":        "ibr",
      "ibuoro":        "ibr",
      "selepet":        "spl",
      "selepet":        "spl",
      "sepa":        "spe",
      "sepa":        "spe",
      "nyakyusa":        "nyy",
      "nyakyusa":        "nyy",
      "nyawaygi":        "nyt",
      "nyawaygi":        "nyt",
      "nyankole":        "nyn",
      "nyankole":        "nyn",
      "nyoro":        "nyo",
      "nyoro":        "nyo",
      "sinaugoro":        "snc",
      "sinaugoro":        "snc",
      "siona":        "snn",
      "siona":        "snn",
      "ömie":        "aom",
      "ömie":        "aom",
      "bo-rukul":        "mae",
      "bo-rukul":        "mae",
      "maithili":        "mai",
      "maithili":        "mai",
      "mam":        "mam",
      "mam":        "mam",
      "uab meto":        "aoz",
      "uabmeto":        "aoz",
      "zande":        "zne",
      "zande":        "zne",
      "guhu-samane":        "ghs",
      "guhu-samane":        "ghs",
      "mangas":        "zns",
      "mangas":        "zns",
      "lusengo":        "lse",
      "lusengo":        "lse",
      "totoro":        "ttk",
      "totoro":        "ttk",
      "tooro":        "ttj",
      "tooro":        "ttj",
      "bu":        "jid",
      "bu":        "jid",
      "jibu":        "jib",
      "jibu":        "jib",
      "shuar":        "jiv",
      "shuar":        "jiv",
      "jita":        "jit",
      "jita":        "jit",
      "aukan":        "djk",
      "aukan":        "djk",
      "tunjung":        "tjg",
      "tunjung":        "tjg",
      "kaska":        "kkz",
      "kaska":        "kkz",
      "northern tujia":        "tji",
      "northerntujia":        "tji",
      "timucua":        "tjm",
      "timucua":        "tjm",
      "kir-balar":        "kkr",
      "kir-balar":        "kkr",
      "nyambo":        "now",
      "nyambo":        "now",
      "oyda":        "oyd",
      "oyda":        "oyd",
      "lydian":        "xld",
      "lydian":        "xld",
      "kamula":        "xla",
      "kamula":        "xla",
      "luwian":        "xlu",
      "luwian":        "xlu",
      "tai dam":        "blt",
      "taidam":        "blt",
      "baluan-pam":        "blq",
      "baluan-pam":        "blq",
      "oro":        "orx",
      "oro":        "orx",
      "oruma":        "orr",
      "oruma":        "orr",
      "hano":        "lml",
      "hano":        "lml",
      "oroqen":        "orh",
      "oroqen":        "orh",
      "orejón":        "ore",
      "orejón":        "ore",
      "pévé":        "lme",
      "pévé":        "lme",
      "east yugur":        "yuy",
      "eastyugur":        "yuy",
      "southern yukaghir":        "yux",
      "southernyukaghir":        "yux",
      "yukpa":        "yup",
      "yukpa":        "yup",
      "yurok":        "yur",
      "yurok":        "yur",
      "yopno":        "yut",
      "yopno":        "yut",
      "yurutí":        "yui",
      "yurutí":        "yui",
      "shanga":        "sho",
      "shanga":        "sho",
      "zaghawa":        "zag",
      "zaghawa":        "zag",
      "zayse-zergulla":        "zay",
      "zayse-zergulla":        "zay",
      "old nubian":        "onw",
      "oldnubian":        "onw",
      "iaai":        "iai",
      "iaai":        "iai",
      "ukwa":        "ukq",
      "ukwa":        "ukq",
      "yir-yoront":        "yiy",
      "yir-yoront":        "yiy",
      "pinyin":        "pny",
      "pinyin":        "pny",
      "huambisa":        "hub",
      "huambisa":        "hub",
      "hu":        "huo",
      "hu":        "huo",
      "pontic greek":        "pnt",
      "ponticgreek":        "pnt",
      "murui huitoto":        "huu",
      "muruihuitoto":        "huu",
      "huave":        "huv",
      "huave":        "huv",
      "hunzib":        "huz",
      "hunzib":        "huz",
      "obolo":        "ann",
      "obolo":        "ann",
      "paicî":        "pri",
      "paicî":        "pri",
      "parauk":        "prk",
      "parauk":        "prk",
      "saurashtra":        "saz",
      "saurashtra":        "saz",
      "sa":        "sax",
      "sa":        "sax",
      "sasak":        "sas",
      "sasak":        "sas",
      "gokana":        "gkn",
      "gokana":        "gkn",
      "marghi central":        "mrt",
      "marghicentral":        "mrt",
      "mangarevan":        "mrv",
      "mangarevan":        "mrv",
      "maranao":        "mrw",
      "maranao":        "mrw",
      "north marquesan":        "mrq",
      "northmarquesan":        "mrq",
      "mara":        "mrh",
      "mara":        "mrh",
      "tukudede":        "tkd",
      "tukudede":        "tkd",
      "tokelauan":        "tkl",
      "tokelauan":        "tkl",
      "tsakhur":        "tkr",
      "tsakhur":        "tkr",
      "tikopia":        "tkp",
      "tikopia":        "tkp",
      "tee":        "tkq",
      "tee":        "tkq",
      "meroitic":        "xmr",
      "meroitic":        "xmr",
      "karo":        "kxh",
      "karo":        "kxh",
      "sô":        "sss",
      "sô":        "sss",
      "western sisaala":        "ssl",
      "westernsisaala":        "ssl",
      "siroi":        "ssd",
      "siroi":        "ssd",
      "seimat":        "ssg",
      "seimat":        "ssg",
      "kui":        "kxu",
      "kui":        "kxu",
      "kuvi":        "kxv",
      "kuvi":        "kxv",
      "fas":        "fqs",
      "fas":        "fqs",
      "tumbuka":        "tum",
      "tumbuka":        "tum",
      "tunica":        "tun",
      "tunica":        "tun",
      "tuyuca":        "tue",
      "tuyuca":        "tue",
      "gweno":        "gwe",
      "gweno":        "gwe",
      "khmu":        "kjg",
      "khmu":        "kjg",
      "kalami":        "gwc",
      "kalami":        "gwc",
      "vunjo":        "vun",
      "vunjo":        "vun",
      "gwich’in":        "gwi",
      "gwich’in":        "gwi",
      "kham":        "kjl",
      "kham":        "kjl",
      "kurudu":        "kjr",
      "kurudu":        "kjr",
      "east kewa":        "kjs",
      "eastkewa":        "kjs",
      "kashaya":        "kju",
      "kashaya":        "kju",
      "haveke":        "hvk",
      "haveke":        "hvk",
      "pogolo":        "poy",
      "pogolo":        "poy",
      "potawatomi":        "pot",
      "potawatomi":        "pot",
      "sayula popoluca":        "pos",
      "sayulapopoluca":        "pos",
      "zoogocho zapotec":        "zpq",
      "zoogochozapotec":        "zpq",
      "santa maría quiegolani zapotec":        "zpi",
      "santamaríaquiegolanizapotec":        "zpi",
      "biem":        "bmc",
      "biem":        "bmc",
      "bagirmi":        "bmi",
      "bagirmi":        "bmi",
      "burum-mindik":        "bmu",
      "burum-mindik":        "bmu",
      "khinalug":        "kjj",
      "khinalug":        "kjj",
      "mbuko":        "mqb",
      "mbuko":        "mqb",
      "kunjen":        "kjn",
      "kunjen":        "kjn",
      "khasi":        "kha",
      "khasi":        "kha",
      "wari'":        "pav",
      "wari'":        "pav",
      "pacoh":        "pac",
      "pacoh":        "pac",
      "pe":        "pai",
      "pe":        "pai",
      "northern kissi":        "kqs",
      "northernkissi":        "kqs",
      "gwere":        "gwr",
      "gwere":        "gwr",
      "tanjijili":        "uji",
      "tanjijili":        "uji",
      "laal":        "gdm",
      "laal":        "gdm",
      "ghodoberi":        "gdo",
      "ghodoberi":        "gdo",
      "guruntum":        "grd",
      "guruntum":        "grd",
      "war-jaintia":        "aml",
      "war-jaintia":        "aml",
      "more":        "mos",
      "more":        "mos",
      "moro":        "mor",
      "moro":        "mor",
      "mwan":        "moa",
      "mwan":        "moa",
      "woi":        "wbw",
      "woi":        "wbw",
      "gojri":        "gju",
      "gojri":        "gju",
      "geji":        "gji",
      "geji":        "gji",
      "wakhi":        "wbl",
      "wakhi":        "wbl",
      "wanda":        "wbh",
      "wanda":        "wbh",
      "wanji":        "wbi",
      "wanji":        "wbi",
      "southeast ambrym":        "tvk",
      "southeastambrym":        "tvk",
      "tsuvadi":        "tvd",
      "tsuvadi":        "tvd",
      "kâte":        "kmg",
      "kâte":        "kmg",
      "southern dong":        "kmc",
      "southerndong":        "kmc",
      "kwoma":        "kmo",
      "kwoma":        "kmo",
      "guanano":        "gvc",
      "guanano":        "gvc",
      "kemtuik":        "kmt",
      "kemtuik":        "kmt",
      "tambas":        "tdk",
      "tambas":        "tdk",
      "sur":        "tdl",
      "sur":        "tdl",
      "emberá-tadó":        "tdc",
      "emberá-tadó":        "tdc",
      "tai nüa":        "tdd",
      "tainüa":        "tdd",
      "big nambas":        "nmb",
      "bignambas":        "nmb",
      "toro":        "tdv",
      "toro":        "tdv",
      "sora":        "srb",
      "sora":        "srb",
      "dazaga":        "dzg",
      "dazaga":        "dzg",
      "sarikoli":        "srh",
      "sarikoli":        "srh",
      "siriano":        "sri",
      "siriano":        "sri",
      "campidanese":        "sro",
      "campidanese":        "sro",
      "serer":        "srr",
      "serer":        "srr",
      "sirionó":        "srq",
      "sirionó":        "srq",
      "achuar-shiwiar":        "acu",
      "achuar-shiwiar":        "acu",
      "anglo-norman":        "xno",
      "anglo-norman":        "xno",
      "banjarese":        "bjn",
      "banjarese":        "bjn",
      "lou":        "loj",
      "lou":        "loj",
      "loko":        "lok",
      "loko":        "lok",
      "mongo":        "lol",
      "mongo":        "lol",
      "lopa":        "lop",
      "lopa":        "lop",
      "lotuko":        "lot",
      "lotuko":        "lot",
      "lozi":        "loz",
      "lozi":        "loz",
      "hehe":        "heh",
      "hehe":        "heh",
      "jurchen":        "juc",
      "jurchen":        "juc",
      "hupdë":        "jup",
      "hupdë":        "jup",
      "carapana":        "cbc",
      "carapana":        "cbc",
      "carijona":        "cbd",
      "carijona":        "cbd",
      "ngeq":        "ngt",
      "ngeq":        "ngt",
      "cashibo-cacataibo":        "cbr",
      "cashibo-cacataibo":        "cbr",
      "cashinahua":        "cbs",
      "cashinahua":        "cbs",
      "candoshi-shapra":        "cbu",
      "candoshi-shapra":        "cbu",
      "ebira":        "igb",
      "ebira":        "igb",
      "ignaciano":        "ign",
      "ignaciano":        "ign",
      "shina":        "scl",
      "shina":        "scl",
      "dongxiang":        "sce",
      "dongxiang":        "sce",
      "qawasqar":        "alc",
      "qawasqar":        "alc",
      "rennellese":        "mnv",
      "rennellese":        "mnv",
      "mon":        "mnw",
      "mon":        "mnw",
      "manipuri":        "mni",
      "manipuri":        "mni",
      "mandinka":        "mnk",
      "mandinka":        "mnk",
      "muna":        "mnb",
      "muna":        "mnb",
      "manda‌":        "zma",
      "manda‌":        "zma",
      "walmajarri":        "wmt",
      "walmajarri":        "wmt",
      "mpoto":        "mpa",
      "mpoto":        "mpa",
      "fanti":        "fat",
      "fanti":        "fat",
      "fang":        "fak",
      "fang":        "fak",
      "mian":        "mpt",
      "mian":        "mpt",
      "dadibi":        "mps",
      "dadibi":        "mps",
      "waskia":        "wsk",
      "waskia":        "wsk",
      "páez":        "pbb",
      "páez":        "pbb",
      "kpasam":        "pbn",
      "kpasam":        "pbn",
      "panare":        "pbh",
      "panare":        "pbh",
      "tehuelche":        "teh",
      "tehuelche":        "teh",
      "numana-nunku-gbantu-numbu":        "nbr",
      "numana-nunku-gbantu-numbu":        "nbr",
      "teressa":        "tef",
      "teressa":        "tef",
      "chang":        "nbc",
      "chang":        "nbc",
      "temein":        "teq",
      "temein":        "teq",
      "soo":        "teu",
      "soo":        "teu",
      "suena":        "sue",
      "suena":        "sue",
      "abkhaz":        "abk",
      "abkhaz":        "abk",
      "sukuma":        "suk",
      "sukuma":        "suk",
      "shubi":        "suj",
      "shubi":        "suj",
      "sumbwa":        "suw",
      "sumbwa":        "suw",
      "mwaghavul":        "sur",
      "mwaghavul":        "sur",
      "gban":        "ggu",
      "gban":        "ggu",
      "kenuzi-dongola":        "kzh",
      "kenuzi-dongola":        "kzh",
      "fwâi":        "fwa",
      "fwâi":        "fwa",
      "mamanwa":        "mmn",
      "mamanwa":        "mmn",
      "jarai":        "jra",
      "jarai":        "jra",
      "vinza":        "vin",
      "vinza":        "vin",
      "iduna":        "viv",
      "iduna":        "viv",
      "yawa":        "yva",
      "yawa":        "yva",
      "desano":        "des",
      "desano":        "des",
      "ga'anda":        "gqa",
      "ga'anda":        "gqa",
      "rumu":        "klq",
      "rumu":        "klq",
      "kalasha":        "kls",
      "kalasha":        "kls",
      "judeo-tat":        "jdt",
      "judeo-tat":        "jdt",
      "northern amami-oshima":        "ryn",
      "northernamami-oshima":        "ryn",
      "wayampi":        "oym",
      "wayampi":        "oym",
      "emilian":        "egl",
      "emilian":        "egl",
      "ega":        "ega",
      "ega":        "ega",
      "itonama":        "ito",
      "itonama":        "ito",
      "itu mbon uzo":        "itm",
      "itumbonuzo":        "itm",
      "beng":        "nhb",
      "beng":        "nhb",
      "waris":        "wrs",
      "waris":        "wrs",
      "picard":        "pcd",
      "picard":        "pcd",
      "rwa":        "rwk",
      "rwa":        "rwk",
      "okodia":        "okd",
      "okodia":        "okd",
      "yana":        "ynn",
      "yana":        "ynn",
      "izere":        "izr",
      "izere":        "izr",
      "sangu":        "sbp",
      "sangu":        "sbp",
      "ngambay":        "sba",
      "ngambay":        "sba",
      "mundat":        "mmf",
      "mundat":        "mmf",
      "botolan sambal":        "sbl",
      "botolansambal":        "sbl",
      "middle welsh":        "wlm",
      "middlewelsh":        "wlm",
      "wolio":        "wlo",
      "wolio":        "wlo",
      "koyukon":        "koy",
      "koyukon":        "koy",
      "jeh":        "jeh",
      "jeh":        "jeh",
      "dena'ina":        "tfn",
      "dena'ina":        "tfn",
      "ternate":        "tft",
      "ternate":        "tft",
      "central nicobarese":        "ncb",
      "centralnicobarese":        "ncb",
      "kosraean":        "kos",
      "kosraean":        "kos",
      "afade":        "aal",
      "afade":        "aal",
      "daur":        "dta",
      "daur":        "dta",
      "samtao":        "stu",
      "samtao":        "stu",
      "silt'e":        "stv",
      "silt'e":        "stv",
      "southeastern tepehuan":        "stp",
      "southeasterntepehuan":        "stp",
      "saanich":        "str",
      "saanich":        "str",
      "tebul ure dogon":        "dtu",
      "tebuluredogon":        "dtu",
      "paama":        "pma",
      "paama":        "pma",
      "limbu":        "lif",
      "limbu":        "lif",
      "ligbi":        "lig",
      "ligbi":        "lig",
      "lillooet":        "lil",
      "lillooet":        "lil",
      "efik":        "efi",
      "efik":        "efi",
      "efai":        "efa",
      "efai":        "efa",
      "banda-bambari":        "liy",
      "banda-bambari":        "liy",
      "xaasongaxango":        "kao",
      "xaasongaxango":        "kao",
      "basa":        "bzw",
      "basa":        "bzw",
      "!kung":        "knw",
      "!kung":        "knw",
      "babuza":        "bzg",
      "babuza":        "bzg",
      "tampuan":        "tpu",
      "tampuan":        "tpu",
      "bandi":        "bza",
      "bandi":        "bza",
      "mapos buang":        "bzh",
      "maposbuang":        "bzh",
      "ontong java":        "ojv",
      "ontongjava":        "ojv",
      "rotuman":        "rtm",
      "rotuman":        "rtm",
      "ratahan":        "rth",
      "ratahan":        "rth",
      "iamalele":        "yml",
      "iamalele":        "yml",
      "yucuna":        "ycn",
      "yucuna":        "ycn",
      "lamang":        "hia",
      "lamang":        "hia",
      "seychellois creole":        "crs",
      "seychelloiscreole":        "crs",
      "chaura":        "crv",
      "chaura":        "crv",
      "chrau":        "crw",
      "chrau":        "crw",
      "michif":        "crg",
      "michif":        "crg",
      "serui-laut":        "seu",
      "serui-laut":        "seu",
      "sentani":        "set",
      "sentani":        "set",
      "secoya":        "sey",
      "secoya":        "sey",
      "melo":        "mfx",
      "melo":        "mfx",
      "seneca":        "see",
      "seneca":        "see",
      "sedang":        "sed",
      "sedang":        "sed",
      "selkup":        "sel",
      "selkup":        "sel",
      "kott":        "zko",
      "kott":        "zko",
      "yidgha":        "ydg",
      "yidgha":        "ydg",
      "kaurna":        "zku",
      "kaurna":        "zku",
      "wogeo":        "woc",
      "wogeo":        "woc",
      "u":        "uuu",
      "u":        "uuu",
      "ikizu":        "ikz",
      "ikizu":        "ikz",
      "ik":        "ikx",
      "ik":        "ikx",
      "ura":        "uur",
      "ura":        "uur",
      "kulon-pazeh":        "uun",
      "kulon-pazeh":        "uun",
      "iko":        "iki",
      "iko":        "iki",
      "tangoa":        "tgp",
      "tangoa":        "tgp",
      "central tagbanwa":        "tgt",
      "centraltagbanwa":        "tgt",
      "tagish":        "tgx",
      "tagish":        "tgx",
      "yaqui":        "yaq",
      "yaqui":        "yaq",
      "sudest":        "tgo",
      "sudest":        "tgo",
      "dupaninan agta":        "duo",
      "dupaninanagta":        "duo",
      "comorian":        "swb",
      "comorian":        "swb",
      "xavánte":        "xav",
      "xavánte":        "xav",
      "duungooma":        "dux",
      "duungooma":        "dux",
      "xamtanga":        "xan",
      "xamtanga":        "xan",
      "andalusian":        "xaa",
      "andalusian":        "xaa",
      "sambe":        "xab",
      "sambe":        "xab",
      "sowa":        "sww",
      "sowa":        "sww",
      "gayo":        "gay",
      "gayo":        "gay",
      "gadsup":        "gaj",
      "gadsup":        "gaj",
      "alekano":        "gah",
      "alekano":        "gah",
      "warekena":        "gae",
      "warekena":        "gae",
      "futuna-aniwa":        "fut",
      "futuna-aniwa":        "fut",
      "manambu":        "mle",
      "manambu":        "mle",
      "east futuna":        "fud",
      "eastfutuna":        "fud",
      "moloko":        "mlw",
      "moloko":        "mlw",
      "riang":        "ril",
      "riang":        "ril",
      "nyaturu":        "rim",
      "nyaturu":        "rim",
      "tarifit":        "rif",
      "tarifit":        "rif",
      "ewondo":        "ewo",
      "ewondo":        "ewo",
      "bunoge dogon":        "dgb",
      "bunogedogon":        "dgb",
      "sukur":        "syk",
      "sukur":        "syk",
      "kono":        "kno",
      "kono":        "kno",
      "kuranko":        "knk",
      "kuranko":        "knk",
      "kanufi":        "kni",
      "kanufi":        "kni",
      "nefusa":        "jbn",
      "nefusa":        "jbn",
      "panoan katukína":        "knt",
      "panoankatukína":        "knt",
      "idun":        "ldb",
      "idun":        "ldb",
      "cuvok":        "cuv",
      "cuvok":        "cuv",
      "resígaro":        "rgr",
      "resígaro":        "rgr",
      "cubeo":        "cub",
      "cubeo":        "cub",
      "wik-mungkan":        "wim",
      "wik-mungkan":        "wim",
      "romagnol":        "rgn",
      "romagnol":        "rgn",
      "chuka":        "cuh",
      "chuka":        "cuh",
      "bikol":        "bik",
      "bikol":        "bik",
      "sebat bet gurage":        "sgw",
      "sebatbetgurage":        "sgw",
      "li'o":        "ljl",
      "li'o":        "ljl",
      "shughni":        "sgh",
      "shughni":        "sgh",
      "lampung api":        "ljp",
      "lampungapi":        "ljp",
      "southeast ijo":        "ijs",
      "southeastijo":        "ijs",
      "izon":        "ijc",
      "izon":        "ijc",
      "biseni":        "ije",
      "biseni":        "ije",
      "kalabari":        "ijn",
      "kalabari":        "ijn",
      "bonan":        "peh",
      "bonan":        "peh",
      "northern pomo":        "pej",
      "northernpomo":        "pej",
      "eastern pomo":        "peb",
      "easternpomo":        "peb",
      "luguru":        "ruf",
      "luguru":        "ruf",
      "rutul":        "rut",
      "rutul":        "rut",
      "nyâlayu":        "yly",
      "nyâlayu":        "yly",
      "idi":        "idi",
      "idi":        "idi",
      "yil":        "yll",
      "yil":        "yll",
      "sema":        "nsm",
      "sema":        "nsm",
      "nehan":        "nsn",
      "nehan":        "nsn",
      "tangsa":        "nst",
      "tangsa":        "nst",
      "miya":        "mkf",
      "miya":        "mkf",
      "makasae":        "mkz",
      "makasae":        "mkz",
      "wantoat":        "wnc",
      "wantoat":        "wnc",
      "sened":        "sds",
      "sened":        "sds",
      "paiwan":        "pwn",
      "paiwan":        "pwn",
      "kwanyama":        "kj",
      "kwanyama":        "kj",
      "suba":        "sxb",
      "suba":        "sxb",
      "saaroa":        "sxr",
      "saaroa":        "sxr",
      "southern nambikuára":        "nab",
      "southernnambikuára":        "nab",
      "min nan":        "nan",
      "minnan":        "nan",
      "kalagan":        "kqe",
      "kalagan":        "kqe",
      "svan":        "sva",
      "svan":        "sva",
      "central cagayan agta":        "agt",
      "centralcagayanagta":        "agt",
      "barein":        "bva",
      "barein":        "bva",
      "baan":        "bvj",
      "baan":        "bvj",
      "chaudangsi":        "cdn",
      "chaudangsi":        "cdn",
      "nubi":        "kcn",
      "nubi":        "kcn",
      "kalanga":        "kck",
      "kalanga":        "kck",
      "kanga":        "kcp",
      "kanga":        "kcp",
      "even":        "eve",
      "even":        "eve",
      "bankagooma":        "bxw",
      "bankagooma":        "bxw",
      "bukusu":        "bxk",
      "bukusu":        "bxk",
      "carib":        "car",
      "carib":        "car",
      "kokborok":        "trp",
      "kokborok":        "trp",
      "taushiro":        "trr",
      "taushiro":        "trr",
      "ongota":        "bxe",
      "ongota":        "bxe",
      "torwali":        "trw",
      "torwali":        "trw",
      "taroko":        "trv",
      "taroko":        "trv",
      "roro":        "rro",
      "roro":        "rro",
      "cara":        "cfd",
      "cara":        "cfd",
      "bunama":        "bdd",
      "bunama":        "bdd",
      "baldemu":        "bdn",
      "baldemu":        "bdn",
      "ulch":        "ulc",
      "ulch":        "ulc",
      "kahe":        "hka",
      "kahe":        "hka",
      "chitimacha":        "ctm",
      "chitimacha":        "ctm",
      "emberá-catío":        "cto",
      "emberá-catío":        "cto",
      "sursurunga":        "sgz",
      "sursurunga":        "sgz",
      "muduapa":        "wiv",
      "muduapa":        "wiv",
      "chinook jargon":        "chn",
      "chinookjargon":        "chn",
      "zia":        "zia",
      "zia":        "zia",
      "kryts":        "kry",
      "kryts":        "kry",
      "upper tanana":        "tau",
      "uppertanana":        "tau",
      "tatuyo":        "tav",
      "tatuyo":        "tav",
      "tamasheq":        "taq",
      "tamasheq":        "taq",
      "atayal":        "tay",
      "atayal":        "tay",
      "tariana":        "tae",
      "tariana":        "tae",
      "lower tanana":        "taa",
      "lowertanana":        "taa",
      "tabassaran":        "tab",
      "tabassaran":        "tab",
      "yami":        "tao",
      "yami":        "tao",
      "eastern tamang":        "taj",
      "easterntamang":        "taj",
      "dawro":        "dwr",
      "dawro":        "dwr",
      "siwa":        "siz",
      "siwa":        "siz",
      "ndogo":        "ndz",
      "ndogo":        "ndz",
      "walo kumbe dogon":        "dwl",
      "walokumbedogon":        "dwl",
      "monguor":        "mjg",
      "monguor":        "mjg",
      "malto":        "mjt",
      "malto":        "mjt",
      "martuthunira":        "vma",
      "martuthunira":        "vma",
      "duhwa":        "kbz",
      "duhwa":        "kbz",
      "makhuwa":        "vmw",
      "makhuwa":        "vmw",
      "kabiyé":        "kbp",
      "kabiyé":        "kbp",
      "kamano":        "kbq",
      "kamano":        "kbq",
      "gabadi":        "kbt",
      "gabadi":        "kbt",
      "berti":        "byt",
      "berti":        "byt",
      "luba-katanga":        "lu",
      "luba-katanga":        "lu",
      "purepecha":        "tsz",
      "purepecha":        "tsz",
      "tsou":        "tsu",
      "tsou":        "tsu",
      "dan":        "daf",
      "dan":        "daf",
      "laz":        "lzz",
      "laz":        "lzz",
      "taita":        "dav",
      "taita":        "dav",
      "dargwa":        "dar",
      "dargwa":        "dar",
      "ahwai":        "nfd",
      "ahwai":        "nfd",
      "karata":        "kpt",
      "karata":        "kpt",
      "kpelle":        "kpe",
      "kpelle":        "kpe",
      "kapingamarangi":        "kpg",
      "kapingamarangi":        "kpg",
      "ǃoǃung":        "oun",
      "ǃoǃung":        "oun",
      "rejang":        "rej",
      "rejang":        "rej",
      "kwere":        "cwe",
      "kwere":        "cwe",
      "kara":        "reg",
      "kara":        "reg",
      "southern bobo madaré":        "bwq",
      "southernbobomadaré":        "bwq",
      "bura-pabir":        "bwr",
      "bura-pabir":        "bwr",
      "bwatoo":        "bwa",
      "bwatoo":        "bwa",
      "k'iche'":        "quc",
      "k'iche'":        "quc",
      "vai":        "vai",
      "vai":        "vai",
      "baniwa":        "bwi",
      "baniwa":        "bwi",
      "zhang-zhung":        "xzh",
      "zhang-zhung":        "xzh",
      "khana":        "ogo",
      "khana":        "ogo",
      "uda":        "uda",
      "uda":        "uda",
      "udihe":        "ude",
      "udihe":        "ude",
      "uldeme":        "udl",
      "uldeme":        "udl",
      "bena":        "bez",
      "bena":        "bez",
      "hasha":        "ybj",
      "hasha":        "ybj",
      "west yugur":        "ybe",
      "westyugur":        "ybe",
      "abar":        "mij",
      "abar":        "mij",
      "sekani":        "sek",
      "sekani":        "sek",
      "mandaic":        "mid",
      "mandaic":        "mid",
      "mofu-gudur":        "mif",
      "mofu-gudur":        "mif",
      "puyuma":        "pyu",
      "puyuma":        "pyu",
      "fyam":        "pym",
      "fyam":        "pym",
      "cibak":        "ckl",
      "cibak":        "ckl",
      "urhobo":        "urh",
      "urhobo":        "urh",
      "kavalan":        "ckv",
      "kavalan":        "ckv",
      "dyirbal":        "dbl",
      "dyirbal":        "dbl",
      "bangi me":        "dba",
      "bangime":        "dba",
      "semelai":        "sza",
      "semelai":        "sza",
      "dogul dom dogon":        "dbg",
      "doguldomdogon":        "dbg",
      "daba":        "dbq",
      "daba":        "dbq",
      "s'gaw karen":        "ksw",
      "s'gawkaren":        "ksw",
      "jawe":        "jaz",
      "jawe":        "jaz",
      "borong":        "ksr",
      "borong":        "ksr",
      "ngoni":        "ngo",
      "ngoni":        "ngo",
      "nǀuu":        "ngh",
      "nǀuu":        "ngh",
      "ngizim":        "ngi",
      "ngizim":        "ngi",
      "ngie":        "ngj",
      "ngie":        "ngj",
      "kuni":        "kse",
      "kuni":        "kse",
      "ngulu":        "ngp",
      "ngulu":        "ngp",
      "shambala":        "ksb",
      "shambala":        "ksb",
      "hyam":        "jab",
      "hyam":        "jab",
      "lijili":        "mgi",
      "lijili":        "mgi",
      "mambae":        "mgm",
      "mambae":        "mgm",
      "manda‌‌":        "mgs",
      "manda‌‌":        "mgs",
      "mambwe-lungu":        "mgr",
      "mambwe-lungu":        "mgr",
      "malila":        "mgq",
      "malila":        "mgq",
      "eastern magar":        "mgp",
      "easternmagar":        "mgp",
      "matumbi":        "mgw",
      "matumbi":        "mgw",
      "matengo":        "mgv",
      "matengo":        "mgv",
      "tawala":        "tbo",
      "tawala":        "tbo",
      "takia":        "tbc",
      "takia":        "tbc",
      "shipibo-conibo":        "shp",
      "shipibo-conibo":        "shp",
      "chadian":        "shu",
      "chadian":        "shu",
      "galela":        "gbi",
      "galela":        "gbi",
      "shall-zwall":        "sha",
      "shall-zwall":        "sha",
      "tachelhit":        "shi",
      "tachelhit":        "shi",
      "gbari":        "gby",
      "gbari":        "gby",
      "ebughu":        "ebg",
      "ebughu":        "ebg",
      "embu":        "ebu",
      "embu":        "ebu",
      "yemsa":        "jnj",
      "yemsa":        "jnj",
      "mizo":        "lus",
      "mizo":        "lus",
      "lushootseed":        "lut",
      "lushootseed":        "lut",
      "jowulu":        "jow",
      "jowulu":        "jow",
      "tese":        "keg",
      "tese":        "keg",
      "kerewe":        "ked",
      "kerewe":        "ked",
      "kabuverdianu":        "kea",
      "kabuverdianu":        "kea",
      "west kewa":        "kew",
      "westkewa":        "kew",
      "ket":        "ket",
      "ket":        "ket",
      "eten":        "etx",
      "eten":        "etx",
      "khehek":        "tlx",
      "khehek":        "tlx",
      "tausug":        "tsg",
      "tausug":        "tsg",
      "tolomako":        "tlm",
      "tolomako":        "tlm",
      "tsamai":        "tsb",
      "tsamai":        "tsb",
      "batak toba":        "bbc",
      "bataktoba":        "bbc",
      "yapese":        "yap",
      "yapese":        "yap",
      "yalunka":        "yal",
      "yalunka":        "yal",
      "sumo":        "yan",
      "sumo":        "yan",
      "yazgulyam":        "yah",
      "yazgulyam":        "yah",
      "yagua":        "yad",
      "yagua":        "yad",
      "yámana":        "yag",
      "yámana":        "yag",
      "west central banda":        "bbp",
      "westcentralbanda":        "bbp",
      "old turkic":        "otk",
      "oldturkic":        "otk",
      "norman":        "roa-nor",
      "norman":        "roa-nor",
      "chamalal":        "cji",
      "chamalal":        "cji",
      "eastern cham":        "cjm",
      "easterncham":        "cjm",
      "northern thai":        "nod",
      "northernthai":        "nod",
      "chuave":        "cjv",
      "chuave":        "cjv",
      "movima":        "mzp",
      "movima":        "mzp",
      "phalura":        "phl",
      "phalura":        "phl",
      "ngarinyin":        "ung",
      "ngarinyin":        "ung",
      "wangaaybuwan-ngiyambaa":        "wyb",
      "wangaaybuwan-ngiyambaa":        "wyb",
      "wymysorys":        "wym",
      "wymysorys":        "wym",
      "hdi":        "xed",
      "hdi":        "xed",
      "toda":        "tcx",
      "toda":        "tcx",
      "tulu":        "tcy",
      "tulu":        "tcy",
      "wandala":        "mfi",
      "wandala":        "mfi",
      "nomatsiguenga":        "not",
      "nomatsiguenga":        "not",
      "marrithiyel":        "mfr",
      "marrithiyel":        "mfr",
      "malinaltepec tlapanec":        "tcf",
      "malinaltepectlapanec":        "tcf",
      "mabaan":        "mfz",
      "mabaan":        "mfz",
      "adnyamathanha":        "adt",
      "adnyamathanha":        "adt",
      "maia":        "sks",
      "maia":        "sks",
      "ske":        "ske",
      "ske":        "ske",
      "gamo":        "gmv",
      "gamo":        "gmv",
      "assan":        "xss",
      "assan":        "xss",
      "mogholi":        "mhj",
      "mogholi":        "mhj",
      "tinà sambal":        "xsb",
      "tinàsambal":        "xsb",
      "sio":        "xsi",
      "sio":        "xsi",
      "nzanyi":        "nja",
      "nzanyi":        "nja",
      "karamojong":        "kdj",
      "karamojong":        "kdj",
      "yankunytjatjara":        "kdd",
      "yankunytjatjara":        "kdd",
      "makonde":        "kde",
      "makonde":        "kde",
      "ao":        "njo",
      "ao":        "njo",
      "angami":        "njm",
      "angami":        "njm",
      "kuy":        "kdt",
      "kuy":        "kdt",
      "kaningdon-nindem":        "kdp",
      "kaningdon-nindem":        "kdp",
      "yup'ik":        "esu",
      "yup'ik":        "esu",
      "central siberian yupik":        "ess",
      "centralsiberianyupik":        "ess",
      "negerhollands":        "dcr",
      "negerhollands":        "dcr",
      "ndamba":        "ndj",
      "ndamba":        "ndj",
      "ndengereko":        "ndg",
      "ndengereko":        "ndg",
      "kurukh":        "kru",
      "kurukh":        "kru",
      "kinaray-a":        "krj",
      "kinaray-a":        "krj",
      "kerek":        "krk",
      "kerek":        "krk",
      "krio":        "kri",
      "krio":        "kri",
      "vanimo":        "vam",
      "vanimo":        "vam",
      "yaouré":        "yre",
      "yaouré":        "yre",
      "vayu":        "vay",
      "vayu":        "vay",
      "bokobaru":        "bus",
      "bokobaru":        "bus",
      "bushi":        "buc",
      "bushi":        "buc",
      "lavukaleve":        "lvk",
      "lavukaleve":        "lvk",
      "piapoco":        "pio",
      "piapoco":        "pio",
      "pirahã":        "myp",
      "pirahã":        "myp",
      "yine":        "pib",
      "yine":        "pib",
      "muyuw":        "myw",
      "muyuw":        "myw",
      "pije":        "piz",
      "pije":        "piz",
      "piratapuyo":        "pir",
      "piratapuyo":        "pir",
      "deg xinag":        "ing",
      "degxinag":        "ing",
      "manta":        "myg",
      "manta":        "myg",
      "pimbwe":        "piw",
      "pimbwe":        "piw",
      "oroch":        "oac",
      "oroch":        "oac",
      "orok":        "oaa",
      "orok":        "oaa",
      "jabem":        "jae",
      "jabem":        "jae",
      "bali (nigeria)":        "bcn",
      "bali(nigeria)":        "bcn",
      "lala":        "nrz",
      "lala":        "nrz",
      "hanunoo":        "hnn",
      "hanunoo":        "hnn",
      "dyula":        "dyu",
      "dyula":        "dyu",
      "bana":        "bcw",
      "bana":        "bcw",
      "bench":        "bcq",
      "bench":        "bcq",

   });
};

 if (typeof(edt2Langs) == 'undefined') { window.edt2Langs = {}; }
 
window.edt2LangsInitText = function() { 
   edtInitObject(edt2Langs, {
 
      'aau':        'Abau kalba',
      'abq':        'Abazų kalba',
      'ab':        'Abchazų kalba',
      'abe':        'Abenakų kalba',
      'abz':        'Abujų kalba',
      'kgr':        'Abunų kalba',
      'nah':        'Actekų kalba',
      'ady':        'Adygų kalba',
      'adz':        'Adzerų kalba',
      'aji':        'Adžijų kalba',
      'adi':        'Adžių kalba',
      'aa':        'Afarų kalba',
      'af':        'Afrikanų kalba',
      'afo':        'Afų kalba',
      'awn':        'Agovų kalba',
      'agx':        'Agulų kalba',
      'agr':        'Agvarunų kalba',
      'aht':        'Ahtna kalba',
      'aik':        'Aikių kalba',
      'ay':        'Aimarų kalba',
      'aib':        'Ainių kalba',
      'ain':        'Ainų kalba',
      'ga':        'Airių kalba',
      'nfl':        'Aivų kalba',
      'aye':        'Ajerų kalba',
      'ayu':        'Ajų kalba',
      'akk':        'Akadų kalba',
      'ak':        'Akanų kalba',
      'ake':        'Akavajų kalba',
      'akl':        'Aklanų kalba',
      'ahk':        'Akų kalba',
      'akz':        'Alabamiečių kalba',
      'amp':        'Alamblakų kalba',
      'aln':        'Albanų ghekų kalba',
      'sq':        'Albanų kalba',
      'als':        'Alemanų kalba',
      'ale':        'Aleutų kalba',
      'alq':        'Algonkinų kalba',
      'ems':        'Aliutikų kalba',
      'alr':        'Aliutorių kalba',
      'aes':        'Alsėjų kalba',
      'tut':        'Altajiečių kalba',
      'aab':        'Alumų-Tesų kalba',
      'alp':        'Alunų kalba',
      'ahs':        'Alų kalba',
      'arq':        'Alžyro arabų kalba',
      'amq':        'Amahajų kalba',
      'amc':        'Amahuakų kalba',
      'ame':        'Amajų kalba',
      'ams':        'Amamių kalba',
      'amn':        'Amanabų kalba',
      'amr':        'Amarakaerių kalba',
      'aie':        'Amarų kalba',
      'zpo':        'Amatlano zapotekų kalba',
      'amk':        'Ambajų kalba',
      'abt':        'Ambulasų kalba',
      'amj':        'Amdangų kalba',
      'ase':        'Amerikiečių ženklų kalba',
      'am':        'Amharų kalba',
      'ami':        'Amių kalba',
      'aoq':        'Amonitų kalba',
      'amu':        'Amuzgų kalba',
      'amm':        'Amų kalba',
      'dti':        'Anatingo dugonų kalba',
      'ani':        'Andžių kalba',
      'aty':        'Aneičių kalba',
      'ane':        'Anesų kalba',
      'anc':        'Angasų kalba',
      'en':        'Anglų kalba',
      'agg':        'Angorų kalba',
      'gcf':        'Antilų kreolų kalba',
      'aud':        'Anutų kalba',
      'apt':        'Apatanių kalba',
      'apach':        'Apačų kalba',
      'app':        'Apmų kalba',
      'arl':        'Arabelų kalba',
      'ar':        'Arabų kalba',
      'an':        'Aragosų kalba',
      'axx':        'Aragurų kalba',
      'akr':        'Arakių kalba',
      'arc':        'Aramėjų kalba',
      'aro':        'Araonų kalba',
      'arp':        'Arapahų kalba',
      'arv':        'Arborų kalba',
      'alu':        'Arearių kalba',
      'aiw':        'Arių kalba',
      'hy':        'Armėnų kalba',
      'roa-rup':        'Aromanų kalba',
      'rup':        'Aromanų kalba',
      'aia':        'Arosių kalba',
      'aph':        'Arčiarų kalba',
      'aqc':        'Arčių kalba',
      'as':        'Asamų kalba',
      'asb':        'Asiniboinų kalba',
      'ast':        'Asturianų kalba',
      'aqp':        'Atakapų kalba',
      'auj':        'Audžilų kalba',
      'aue':        'Auenų kalba',
      'auy':        'Aujanų kalba',
      'hsb':        'Aukštutinių sorbų kalba',
      'bar':        'Austrobavarų kalba',
      'awk':        'Avabakalų kalba',
      'awa':        'Avadhių kalba',
      'av':        'Avarų kalba',
      'ae':        'Avestianų kalba',
      'az':        'Azerbaidžaniečių kalba',
      'ace':        'Ačekų kalba',
      'ach':        'Ačolių kalba',
      'ask':        'Aškunių kalba',
      'akv':        'Ašvadų kalba',
      'abv':        'Bachreino šiitų arabų kalba',
      'bfq':        'Badagų kalba',
      'bdl':        'Badžių kalba',
      'bfj':        'Bafangų kalba',
      'bfd':        'Bafutų kalba',
      'kva':        'Bagvalinų kalba',
      'bdq':        'Bahnarų kalba',
      'ban':        'Balių kalba',
      'be':        'Baltarusių kalba',
      'lua':        'Balubų kalba',
      'bal':        'Baluchų kalba',
      'bft':        'Balčių kalba',
      'bm':        'Bambarų kalba',
      'bsn':        'Barasanų kalba',
      'bch':        'Bariajų kalba',
      'byr':        'Barujų kalba',
      'eu':        'Baskų kalba',
      'bas':        'Basų kalba',
      'bbl':        'Batsių kalba',
      'brg':        'Baurų kalba',
      'ba':        'Baškirų kalba',
      'bea':        'Beaverų kalba',
      'bej':        'Bedavijetų kalba',
      'bem':        'Bembų kalba',
      'bdp':        'Bendų kalba',
      'bn':        'Bengalų kalba',
      'bue':        'Beotukų kalba',
      'ber':        'Berberų kalba',
      'kap':        'Bežtinų kalba',
      'bho':        'Bhodžpurių kalba',
      'bh':        'Biharų kalba',
      'bcl':        'Bikolų kalba',
      'bi':        'Bislama kalba',
      'bpy':        'Bišnuprija manipuri kalba',
      'bee':        'Bjansių kalba',
      'brx':        'Bodo kalba',
      'bux':        'Bohomų kalba',
      'bs':        'Bosnių kalba',
      'dz':        'Botijų kalba',
      'pcc':        'Boujei kalba',
      'brh':        'Brahujų kalba',
      'br':        'Bretonų kalba',
      'bdk':        'Budugų kalba',
      'bug':        'Bugų kalba',
      'bg':        'Bulgarų kalba',
      'bwu':        'Bulių kalba',
      'wun':        'Bungų kalba',
      'bck':        'Bunubų kalba',
      'bua':        'Buriatų kalba',
      'bsk':        'Burušaskių kalba',
      'poo':        'Centrinė pomų kalba',
      'ddo':        'Cezų kalba',
      'xam':        'Cham kalba',
      'cmi':        'Chamių kalba',
      'kca':        'Chantų kalba',
      'kmz':        'Chorasano tiurkų kalba',
      'khv':        'Chvaršių kalba',
      'cia':        'Cia-Cia kalba',
      'tzo':        'Cocilių kalba',
      'cbk':        'Čabakano kalba',
      'chg':        'Čagatajų kalba',
      'cbt':        'Čajahuitų kalba',
      'ccc':        'Čamikurų kalba',
      'cbi':        'Čačių kalba',
      'cbk-zam':        'Čebakano kalba',
      'cs':        'Čekų kalba',
      'ch':        'Čemorų kalba',
      'chr':        'Čerokių kalba',
      'chb':        'Čibčių kalba',
      'rom':        'Čigonų kalba',
      'chy':        'Čijenų kalba',
      'cic':        'Čikasų kalba',
      'cax':        'Čikvitanų kalba',
      'apm':        'Čirikahų kalba',
      'ckt':        'Čiukčių kalba',
      'cv':        'Čiuvašų kalba',
      'ny':        'Čičevų kalba',
      'cho':        'Čoktavų kalba',
      'caa':        'Čorčių kalba',
      'ce':        'Čėčėnų kalba',
      'dgz':        'Dagų kalba',
      'dal':        'Dahalo kalba',
      'ada':        'Dangmių kalba',
      'da':        'Danų kalba',
      'gbz':        'Dari kalba',
      'afn':        'Defakų kalba',
      'deg':        'Degemų kalba',
      'dlg':        'Dolganų kalba',
      'dsb':        'Dolnoserbų kalba',
      'dva':        'Duau kalba',
      'dus':        'Dumių kalba',
      'dng':        'Dunganų kalba',
      'yao':        'Džao kalba',
      'jig':        'Džingilių kalba',
      'za':        'Džuangų kalba',
      'egy':        'Egiptiečių kalba',
      'arz':        'Egipto arabų kalba',
      'ego':        'Egonų kalba',
      'ext':        'Ekstremadūrų kalba',
      'eml':        'Emiliano romanolų kalba',
      'end':        'Endžių kalba',
      'enn':        'Engenių kalba',
      'myv':        'Erzinų kalba',
      'ags':        'Esimbų kalba',
      'eo':        'Esperanto kalba',
      'et':        'Estų kalba',
      'ett':        'Etruskų kalba',
      'evn':        'Evenkių kalba',
      'ee':        'Evų kalba',
      'esh':        'Eštehardžių kalba',
      'fo':        'Farerų kalba',
      'ddg':        'Fataluku kalba',
      'hif':        'Fidžio hindi kalba',
      'fj':        'Fidžių kalba',
      'fil':        'Filipinų kalba',
      'phn':        'Finikiečių kalba',
      'vls':        'Flamandų kalba',
      'frp':        'Franko-Provensalio dialektas',
      'frk':        'Frankų kalba',
      'xpg':        'Frygų kalba',
      'fy':        'Fryzų kalba',
      'fuf':        'Fulbų kalba',
      'ff':        'Fulų kalba',
      'fur':        'Furilų kalba',
      'gaa':        'Ga kalba',
      'gag':        'Gagaūzų kalba',
      'gl':        'Galisų kalba',
      'kld':        'Gamilarojų kalba',
      'gan':        'Gano kalba',
      'cab':        'Garifunų kalba',
      'gasc':        'Gaskonų kalba',
      'nlg':        'Gelų kalba',
      'PGE':        'Germanų prokalbė',
      'gez':        'Gezo kalba',
      'gha':        'Ghadamų kalba',
      'glk':        'Gilakų kalba',
      'ank':        'Goemajų kalba',
      'got':        'Gotų kalba',
      'el':        'Graikų kalba',
      'kl':        'Grenlandų kalba',
      'grs':        'Gresių kalba',
      'ka':        'Gruzinų kalba',
      'gu':        'Gudžaratų kalba',
      'kky':        'Gugu jimityrų kalba',
      'guz':        'Guzių kalba',
      'gn':        'Gvaranių kalba',
      'gni':        'Gūnijandžių kalba',
      'aek':        'Haekų kalba',
      'hai':        'Haidų kalba',
      'ht':        'Haičio kreolų kalba',
      'kjh':        'Hakasų kalba',
      'hak':        'Hakka kalba',
      'hla':        'Halių kalba',
      'amf':        'Hamerų kalba',
      'ha':        'Hausų kalba',
      'haw':        'Havajiečių kalba',
      'he':        'Hebrajų kalba',
      'hz':        'Hererų kalba',
      'hi':        'Hindi kalba',
      'ho':        'Hiri motu kalba',
      'hit':        'Hititų kalba',
      'hmn':        'Hmongų kalba',
      'hop':        'Hopių kalba',
      'hot':        'Hočių kalba',
      'hup':        'Hupų kalba',
      'iba':        'Ibanų kalba',
      'ibn':        'Ibenų kalba',
      'io':        'Ido kalba',
      'ig':        'Igbų kalba',
      'iqu':        'Ikvitų kalba',
      'ilo':        'Ilokanų kalba',
      'hil':        'Ilongų kalba',
      'imn':        'Imondų kalba',
      'smn':        'Inario samių kalba',
      'PIE':        'Indoeuropiečių prokalbė',
      'id':        'Indoneziečių kalba',
      'inh':        'Ingušų kalba',
      'inb':        'Ingų kalba',
      'ia':        'Interlingua kalba',
      'ie':        'Interlingue kalba',
      'iu':        'Inuktikuto kalba',
      'ik':        'Inupiakų kalba',
      'ksi':        'Isakų kalba',
      'is':        'Islandų kalba',
      'es':        'Ispanų kalba',
      'ruo':        'Istrorumunų kalba',
      'it':        'Italų kalba',
      'itl':        'Itelmenų kalba',
      'isk':        'Iškašimių kalba',
      'izh':        'Ižorų kalba',
      'rys':        'Jaejamų kalba',
      'yai':        'Jagnobių kalba',
      'sah':        'Jakutų kalba',
      'jam':        'Jamaikos kreolų kalba',
      'gon':        'Jamanų kalba',
      'yaa':        'Jaminahua kalba',
      'dym':        'Jandadomo dagonų kalba',
      'jao':        'Janjuvų kalba',
      'ja':        'Japonų kalba',
      'yrb':        'Jarebų kalba',
      'zav':        'Jatzačio zapotekų kalba',
      'jv':        'Javiečių kalba',
      'yii':        'Jidinių kalba',
      'yi':        'Jidiš kalba',
      'apj':        'Jikarilų kalba',
      'yoi':        'Jonagunių kalba',
      'yo':        'Jorubų kalba',
      'sud':        'Jotvingių (sudūvių) kalba',
      'yuu':        'Jugų kalba',
      'yua':        'Jukatekų majų kalba',
      'bla':        'Juodakojų kalba',
      'yuc':        'Jučių kalba',
      'kbd':        'Kabardų kalba',
      'kab':        'Kabilų kalba',
      'kgp':        'Kaingangų kalba',
      'gbb':        'Kaitečių kalba',
      'kke':        'Kakabių kalba',
      'kln':        'Kalendžinų kalba',
      'xal':        'Kalmukų kalba',
      'ape':        'Kalnų arapešų kalba',
      'kms':        'Kamasajų kalba',
      'xas':        'Kamasinų kalba',
      'xbr':        'Kamberų kalba',
      'kam':        'Kambų kalba',
      'kn':        'Kanadų kalba',
      'xnb':        'Kanakanabu kalba',
      'ksk':        'Kansų kalba',
      'yue':        'Kantono kalba',
      'kr':        'Kanurų kalba',
      'kdr':        'Karaimų kalba',
      'kpj':        'Karajų kalba',
      'kaa':        'Karakalpakų kalba',
      'krc':        'Karačajų-balkarų kalba',
      'krl':        'Karelų kalba',
      'ca':        'Katalonų kalba',
      'kk':        'Kazachų kalba',
      'kac':        'Kačinų kalba',
      'ks':        'Kašmyrų kalba',
      'csb':        'Kašubų kalba',
      'nmn':        'Kcho kalba',
      'kec':        'Keigų kalba',
      'cam':        'Kemuhių kalba',
      'qu':        'Kečujų kalba',
      'km':        'Khmerų kalba',
      'ki':        'Kikujų kalba',
      'kya':        'Kikvajų kalba',
      'sjd':        'Kildino samių kalba',
      'rw':        'Kinjaruanda kalba',
      'zh':        'Kinų kalba',
      'zh-classical':        'Kinų klasikinė kalba',
      'cmn':        'Kinų mandarino kalba',
      'ky':        'Kirgizų kalba',
      'gi':        'Kiribačių kalba',
      'gil':        'Kiribačių kalba',
      'okr':        'Kirikių kalba',
      'rn':        'Kirundi kalba',
      'kis':        'Kis kalba',
      'thk':        'Kitharakų kalba',
      'clm':        'Klalamų kalba',
      'nci':        'Klasikinė actekų kalba',
      'kib':        'Koalibų kalba',
      'kkk':        'Kokotų kalba',
      'com':        'Komančių kalba',
      'kv':        'Komių kalba',
      'kg':        'Kongiečių kalba',
      'kok':        'Konkanų kalba',
      'cop':        'Koptų kalba',
      'kpy':        'Koriakų kalba',
      'kw':        'Kornų kalba',
      'co':        'Korsikiečių kalba',
      'ko':        'Korėjiečių kalba',
      'crn':        'Korų kalba',
      'xh':        'Kosų kalba',
      'bzj':        'Kreolų kalba',
      'cr':        'Krijų kalba',
      'mus':        'Krikų kalba',
      'hr':        'Kroatų kalba',
      'crh':        'Krymo totorių kalba',
      'cui':        'Kuibų kalba',
      'kul':        'Kulerių kalba',
      'nee':        'Kumakų kalba',
      'kum':        'Kumikų kalba',
      'kun':        'Kunamų kalba',
      'xug':        'Kunigamių kalba',
      'cuk':        'Kunų kalba',
      'kug':        'Kupų kalba',
      'kud':        'Kuradų kalba',
      'ku':        'Kurdų kalba',
      'kuj':        'Kurijų kalba',
      'xcu':        'Kuršių kalba',
      'kgg':        'Kusundų kalba',
      'kwk':        'Kvakiutlų kalba',
      'kwn':        'Kvangalių kalba',
      'lbj':        'Ladakų kalba',
      'lld':        'Ladinų kalba',
      'lki':        'Lakių kalba',
      'lkt':        'Lakotų kalba',
      'lbe':        'Lakų kalba',
      'lo':        'Laosiečių (lao) kalba',
      'ltg':        'Latgalių kalba',
      'lv':        'Latvių kalba',
      'lre':        'Laurynų kalba',
      'lgr':        'Lengų kalba',
      'pl':        'Lenkų kalba',
      'lez':        'Lezgų kalba',
      'ayl':        'Libano arabų kalba',
      'lt':        'Lietuvių kalba',
      'lij':        'Ligurų kalba',
      'li':        'Limburgiečių kalba',
      'ln':        'Lingala kalba',
      'lfn':        'Lingua Franca Nova kalba',
      'apl':        'Lipano apačių kalba',
      'lb':        'Liuksemburgiečių kalba',
      'src':        'Logudoriečių kalba',
      'jbo':        'Lojban kalba',
      'lmo':        'Lombardų kalba',
      'los':        'Lonių kalba',
      'la':        'Lotynų kalba',
      'lg':        'Lugandų kalba',
      'luy':        'Luhių kalba',
      'luo':        'Luo kalba',
      'apk':        'Lygumų apačių kalba',
      'liv':        'Lyvių kalba',
      'mde':        'Mabų kalba',
      'mad':        'Madurių kalba',
      'mk':        'Makedonų kalba',
      'myy':        'Makunų kalba',
      'mg':        'Malagasių kalba',
      'ml':        'Malajalių kalba',
      'ms':        'Malajų kalba',
      'dv':        'Maldyvų kalba',
      'gut':        'Maleku kalba',
      'mt':        'Maltiečių kalba',
      'mdr':        'Mandarų kalba',
      'mha':        'Mandų kalba',
      'mnc':        'Mandžiūrų kalba',
      'mqy':        'Mangarų kalba',
      'mnx':        'Manikionų kalba',
      'mns':        'Mansių kalba',
      'mev':        'Manų kalba',
      'mi':        'Maorių kalba',
      'arn':        'Mapudunganų kalba',
      'zmr':        'Maranungu kalba',
      'mr':        'Marathų kalba',
      'mrc':        'Marikopų kalba',
      'chm':        'Marių kalba',
      'rkm':        'Markų kalba',
      'ary':        'Maroko arabų kalba',
      'mwr':        'Marvarių kalba',
      'mh':        'Maršaliečių kalba',
      'myx':        'Masabų kalba',
      'mas':        'Masajų kalba',
      'met':        'Matų kalba',
      'mph':        'Maungų kalba',
      'mfe':        'Mauricijaus kreolų kalba',
      'jms':        'Mašių kalba',
      'vmb':        'Mbarabamų kalba',
      'mna':        'Mbulų kalba',
      'kmb':        'Mbundų kalba',
      'mej':        'Mejahų kalba',
      'mek':        'Mekejų kalba',
      'men':        'Mendejų kalba',
      'mee':        'Mengenų kalba',
      'gv':        'Menksiečių kalba',
      'ulk':        'Meriamų kalba',
      'meq':        'Merėjų kalba',
      'mer':        'Merų kalba',
      'acm':        'Mesopotamijos arabų kalba',
      'ium':        'Mienų kalba',
      'mvi':        'Mijakų kalba',
      'mic':        'Mikmakų kalba',
      'gmy':        'Mikėnų graikų kalba',
      'cdo':        'Min Dong kalba',
      'min':        'Minangkabau kalba',
      'xmf':        'Mingrelianų kalba',
      'mwl':        'Mirandesų kalba',
      'miq':        'Miskitų kalba',
      'zaw':        'Mitlos zapotekų kalba',
      'my':        'Mjanmų kalba',
      'awb':        'Mobutų kalba',
      'ruq':        'Moglenų kalba',
      'moh':        'Mohaukų kalba',
      'species':        'Mokslinė kalba',
      'mdf':        'Mokšų kalba',
      'mo':        'Moldavų kalba',
      'mn':        'Mongolų kalba',
      'mxk':        'Monumbo kalba',
      'meu':        'Motų kalba',
      'old':        'Mošių kalba',
      'unr':        'Mundarių kalba',
      'myu':        'Munduruku kalba',
      'mnj':        'Mundžių kalba',
      'nnb':        'Munų kalba',
      'nak':        'Nakanajų kalba',
      'naq':        'Namų kalba',
      'gld':        'Nanajų kalba',
      'nam':        'Nangikurungurų kalba',
      'and':        'Nansusų kalba',
      'nnt':        'Nantikokų kalba',
      'ais':        'Nataorų amių kalba',
      'nn':        'Naujoji norvegų kalba',
      'na':        'Nauriečių kalba',
      'nv':        'Navahų kalba',
      'ncz':        'Načezų kalba',
      'ndh':        'Ndalių kalba',
      'nml':        'Ndemlių kalba',
      'ndo':        'Ndongų kalba',
      'nap':        'Neapoliečių kalba',
      'neg':        'Negidalų kalba',
      'nem':        'Nemių kalba',
      'yrk':        'Nencų kalba',
      'nen':        'Nengonų kalba',
      'ne':        'Nepalų kalba',
      'new':        'Nevarų kalba',
      'nez':        'Nezpercų kalba',
      'nxg':        'Ngadų kalba',
      'nio':        'Nganasanų kalba',
      'nay':        'Ngarindžerių kalba',
      'nym':        'Niamvezių kalba',
      'nia':        'Niasų kalba',
      'nll':        'Nihalių kalba',
      'niv':        'Nivchių kalba',
      'nih':        'Njihų kalba',
      'fia':        'Nobiinų kalba',
      'nog':        'Nogajų kalba',
      'nrm':        'Normanų kalba',
      'no':        'Norvegų kalba',
      'ii':        'Nosių dzi kalba',
      'nwy':        'Notovėjaus-Meherino kalba',
      'nov':        'Novial kalba',
      'nkr':        'Nukuoro kalba',
      'nl':        'Nyderlandų kalba',
      'oj':        'Odžibvės kalba',
      'ryu':        'Okinavų kalba',
      'oc':        'Oksitanų kalba',
      'ood':        'Oodhamų kalba',
      'or':        'Orijų kalba',
      'om':        'Oromų kalba',
      'os':        'Osetinų kalba',
      'osc':        'Oskų kalba',
      'ota':        'Osmanų turkų kalba',
      'pau':        'Palauiečių kalba',
      'pi':        'Pali kalba',
      'pam':        'Pampangų kalba',
      'pag':        'Pangasinų kalba',
      'pbr':        'Pangvų kalba',
      'pap':        'Papiamento kalba',
      'simple':        'Paprastoji anglų kalba',
      'tpi':        'Papua pidžinų kalba',
      'pbi':        'Parkvų kalba',
      'paw':        'Paunių kalba',
      'pa':        'Pendžabų kalba',
      'pdc':        'Pensilvanijos vokiečių kalba',
      'afb':        'Persijos ilankos arabų kalba',
      'fa':        'Persų kalba',
      'alt':        'Pietų Altajaus kalba',
      'zh-min-nan':        'Pietų minų kalba',
      'st':        'Pietų sotų kalba',
      'ppl':        'Pipilų kalba',
      'pjt':        'Pitjantjatjara kalba',
      'pih':        'Pitkerniečių kalba',
      'pms':        'Pjemonto kalba',
      'pdt':        'Plautdietšų kalba',
      'pox':        'Polabų kalba',
      'pon':        'Ponapės kalba',
      'pt':        'Portugalų kalba',
      'pim':        'Povotanų kalba',
      'fr':        'Prancūzų kalba',
      'prg':        'Prūsų kalba',
      'xpm':        'Pumpokolių kalba',
      'ps':        'Puštūnų kalba',
      'rap':        'Rapanujų kalba',
      'rar':        'Rarotongų kalba',
      'rm':        'Retoromanų kalba',
      'ksh':        'Ripuarų kalba',
      'rhg':        'Rohingų kalba',
      'rmy':        'Romanų kalba',
      'rui':        'Rufidžių kalba',
      'cgg':        'Rukigų kalba',
      'ro':        'Rumunų kalba',
      'bxr':        'Rusijos buriatų kalba',
      'ru':        'Rusų kalba',
      'aer':        'Rytų arandų kalba',
      'bru':        'Rytų bru kalba',
      'tzj':        'Rytų cutuchilių kalba',
      'sbk':        'Safvų kalba',
      'xsy':        'Saisijatų kalba',
      'slr':        'Salarų kalba',
      'sm':        'Samojiečių kalba',
      'dnn':        'Samorų kalba',
      'sad':        'Sandavių kalba',
      'sxn':        'Sangirų kalba',
      'sa':        'Sanskrito kalba',
      'sat':        'Santalų kalba',
      'sc':        'Sardiniečių kalba',
      'srs':        'Sarsių kalba',
      'stq':        'Saterlandų kalba',
      'ceb':        'Sebuanų kalba',
      'shs':        'Sechvepmechų kalba',
      'sos':        'Seeku kalba',
      'lad':        'Sefardžių kalba',
      'sea':        'Semajų kalba',
      'PSE':        'Semitų prokalbė',
      'sga':        'Senoji airių kalba',
      'ang':        'Senoji anglų kalba',
      'xcl':        'Senoji armėnų kalba',
      'goh':        'Senoji aukštųjų vokiečių kalba',
      'be-x-old':        'Senoji baltarusių kalba',
      'cu':        'Senoji bažnytinė slavų kalba',
      'osp':        'Senoji ispanų kalba',
      'oko':        'Senoji korėjiečių kalba',
      'old-lt':        'Senoji lietuvių kalba',
      'peo':        'Senoji persų kalba',
      'fro':        'Senoji prancūzų kalba',
      'osx':        'Senoji saksų kalba',
      'tpw':        'Senoji tupių kalba',
      'ofs':        'Senovės fryzų kalba',
      'grc':        'Senovės graikų kalba',
      'non':        'Senovės skandinavų kalba',
      'sr':        'Serbų kalba',
      'sh':        'Serbų-kroatų kalba',
      'sei':        'Serių kalba',
      'sze':        'Sezių kalba',
      'sjo':        'Sibinų kalba',
      'scn':        'Siciliečių kalba',
      'szl':        'Sileziečių kalba',
      'sd':        'Sindhų kalba',
      'si':        'Sinhalų kalba',
      'sms':        'Skolto samių kalba',
      'PS':        'Slavų prokalbė',
      'sk':        'Slovakų kalba',
      'sl':        'Slovėnų kalba',
      'swn':        'Soknų kalba',
      'so':        'Somalių kalba',
      'sg':        'Songo kalba',
      'snk':        'Soninkių kalba',
      'sov':        'Sonsorolų kalba',
      'su':        'Sudaniečių kalba',
      'apd':        'Sudano arabų kalba',
      'fi':        'Suomių kalba',
      'srn':        'Surinamiečių kalba',
      'sw':        'Svahilių kalba',
      'ss':        'Svazių kalba',
      'shn':        'Šanų kalba',
      'sn':        'Šanų kalba',
      'sth':        'Šeltos kalba',
      'xsr':        'Šerpų kalba',
      'apc':        'Šiaurės Levanto arabų kalba',
      'nso':        'Šiaurės Soto kalba',
      'frr':        'Šiaurės fryzų kalba',
      'yun':        'Šiaurės malaviečių kalba',
      'se':        'Šiaurės samių kalba',
      'sco':        'Škotų kalba',
      'gd':        'Škotų, gėlų kalba',
      'sna':        'Šonų kalba',
      'cjs':        'Šorų kalba',
      'shh':        'Šošonų kalba',
      'sux':        'Šumerų kalba',
      'swg':        'Švabų kalba',
      'sv':        'Švedų kalba',
      'gsw':        'Šveicarijos vokiečių kalba',
      'scw':        'Šų kalba',
      'zai':        'Sąsmaukos zapotekų kalba',
      'xsv':        'Sūduvių kalba',
      'mzn':        'Tabarų kalba',
      'dsq':        'Tadaksahakų kalba',
      'tg':        'Tadžikų kalba',
      'tl':        'Tagalų kalba',
      'ty':        'Taitiečių kalba',
      'th':        'Tajų kalba',
      'tzm':        'Tamaziktų kalba',
      'ta':        'Tamilų kalba',
      'ssf':        'Tao kalba',
      'twf':        'Taosų kalba',
      'yer':        'Tarokų kalba',
      'xx':        'Tarptautiniai',
      'tuq':        'Tedagų kalba',
      'te':        'Telugų kalba',
      'sjt':        'Terio samių kalba',
      'tet':        'Tetunų kalba',
      'bo':        'Tibetiečių kalba',
      'ti':        'Tigrinų kalba',
      'tiv':        'Tivų kalba',
      'tli':        'Tlingitų kalba',
      'tox':        'Tobių kalba',
      'xto':        'Tocharų A kalba',
      'txb':        'Tocharų B kalba',
      'tog':        'Tongų (Malavis) kalba',
      'to':        'Tongų (Tonga) kalba',
      'tqw':        'Tonkavų kalba',
      'tt':        'Totorių kalba',
      'neb':        'Tourų kalba',
      'trn':        'Trinitarijų kalba',
      'ts':        'Tsongų kalba',
      'tn':        'Tsvanų kalba',
      'two':        'Tsvapongų kalba',
      'tuo':        'Tukanų kalba',
      'ctu':        'Tumbalo cholų kalba',
      'tbr':        'Tumtumų kalba',
      'tpn':        'Tupinambų kalba',
      'sai':        'Tupių kalba',
      'tuv':        'Turkanų kalba',
      'tk':        'Turkmėnų kalba',
      'tr':        'Turkų kalba',
      'ttm':        'Tutchonų kalba',
      'tta':        'Tutelų kalba',
      'tvl':        'Tuvalų kalba',
      'tyv':        'Tuvių kalba',
      'tw':        'Tvi kalba',
      'uby':        'Ubychų kalba',
      'udm':        'Udmurtų kalba',
      'udi':        'Udžių kalba',
      'uga':        'Ugaritų kalba',
      'ug':        'Uigūrų kalba',
      'uk':        'Ukrainiečių kalba',
      'uli':        'Uličių kalba',
      'xum':        'Umbrių kalba',
      'umb':        'Umbundu kalba',
      'unm':        'Unamių kalba',
      'PUR':        'Uralo prokalbė',
      'ur':        'Urdų kalba',
      'uum':        'Urumų kalba',
      'uz':        'Uzbekų kalba',
      'guc':        'Vajų kalba',
      'apw':        'Vakarų apačių kalba',
      'pnb':        'Vakarų pandžabų kalba',
      'wbp':        'Valpurų kalba',
      'cy':        'Valų kalba',
      'wmb':        'Vambajų kalba',
      'wad':        'Vandamenų kalba',
      'war':        'Varajų kalba',
      've':        'Vendų kalba',
      'vec':        'Venetų kalba',
      'hu':        'Vengrų kalba',
      'bav':        'Vengų kalba',
      'vep':        'Vepsų kalba',
      'vro':        'Verų kalba',
      'enm':        'Vidurinioji anglų kalba',
      'dum':        'Vidurinioji olandų kalba',
      'pal':        'Vidurinioji persų kalba',
      'gmh':        'Vidurio aukštųjų vokiečių kalba',
      'gml':        'Vidurio žemųjų vokiečių kalba',
      'vi':        'Vietnamiečių kalba',
      'vot':        'Vodų kalba',
      'de':        'Vokiečių kalba',
      'wal':        'Volaitų kalba',
      'vo':        'Volapiuko kalba',
      'wo':        'Volofų kalba',
      'wa':        'Voloniečių kalba',
      'wuu':        'Vu kalba',
      'zak':        'Zanakių kalba',
      'zro':        'Zaparo kalba',
      'diq':        'Zazakų kalba',
      'zea':        'Zelandiečių kalba',
      'zen':        'Zenagų kalba',
      'ziw':        'Zigulų kalba',
      'zin':        'Zinzų kalba',
      'gnd':        'Zulgų-gemzekų kalba',
      'zu':        'Zulų kalba',
      'zun':        'Zunių kalba',
      'cpp':        'Žaliojo Kyšulio kreolų kalba',
      'bat-smg':        'Žemaičių kalba',
      'nds':        'Žemutinių saksonų kalba',
      'nds-nl':        'Žemutinių saksų kalba',
 
   });
};
 
$(function () {
 
    var prefs = new Preferences('EditorJs');
    edtLangsInitText();
    edt2LangsInitText();
 
    if (prefs.get('enabled', 'true') == 'true')
    {
        if (! window.loadedEditor)
        {
            window.loadedEditor = true;
            var editor = new Editor();
            TranslationAdders(editor);
            TranslationBalancers(editor);
        }
    }
 
    // The enable-disable button on WT:EDIT
    var node = document.getElementById('editor-js-disable-button');
 
    if (node)
    {
        node.innerHTML = "";
        var toggle = newNode('span', {click: function ()
        {
            if (prefs.get('enabled', 'true') == 'true')
            {
                toggle.innerHTML = "Enable";
                prefs.set('enabled', 'false');
            }
            else
            {
                toggle.innerHTML = "Disable";
                prefs.set('enabled', 'true');
            }
 
        } }, (prefs.get('enabled', 'true') == 'true' ? 'Disable' : 'Enable'))
 
        node.appendChild(toggle);
    }
})