Naudotojas:Vpovilaitis/editor.js
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);
}
})