#!/usr/bin/env luajit local M = {} local map = { ["ab"] = "abk", ["aa"] = "aar", ["af"] = "afr", ["ak"] = "aka", ["sq"] = "sqi", ["am"] = "amh", ["ar"] = "ara", ["an"] = "arg", ["hy"] = "hye", ["as"] = "asm", ["av"] = "ava", ["ae"] = "ave", ["ay"] = "aym", ["az"] = "aze", ["bm"] = "bam", ["ba"] = "bak", ["eu"] = "eus", ["be"] = "bel", ["bn"] = "ben", ["bi"] = "bis", ["bs"] = "bos", ["br"] = "bre", ["bg"] = "bul", ["my"] = "mya", ["ca"] = "cat", ["ch"] = "cha", ["ce"] = "che", ["ny"] = "nya", ["zh"] = "zho", ["cu"] = "chu", ["cv"] = "chv", ["kw"] = "cor", ["co"] = "cos", ["cr"] = "cre", ["hr"] = "hrv", ["cs"] = "ces", ["da"] = "dan", ["dv"] = "div", ["nl"] = "nld", ["dz"] = "dzo", ["en"] = "eng", ["eo"] = "epo", ["et"] = "est", ["ee"] = "ewe", ["fo"] = "fao", ["fj"] = "fij", ["fi"] = "fin", ["fr"] = "fra", ["fy"] = "fry", ["ff"] = "ful", ["gd"] = "gla", ["gl"] = "glg", ["lg"] = "lug", ["ka"] = "kat", ["de"] = "deu", ["el"] = "ell", ["kl"] = "kal", ["gn"] = "grn", ["gu"] = "guj", ["ht"] = "hat", ["ha"] = "hau", ["he"] = "heb", ["hz"] = "her", ["hi"] = "hin", ["ho"] = "hmo", ["hu"] = "hun", ["is"] = "isl", ["io"] = "ido", ["ig"] = "ibo", ["id"] = "ind", ["ia"] = "ina", ["ie"] = "ile", ["iu"] = "iku", ["ik"] = "ipk", ["ga"] = "gle", ["it"] = "ita", ["ja"] = "jpn", ["jv"] = "jav", ["kn"] = "kan", ["kr"] = "kau", ["ks"] = "kas", ["kk"] = "kaz", ["km"] = "khm", ["ki"] = "kik", ["rw"] = "kin", ["ky"] = "kir", ["kv"] = "kom", ["kg"] = "kon", ["ko"] = "kor", ["kj"] = "kua", ["ku"] = "kur", ["lo"] = "lao", ["la"] = "lat", ["lv"] = "lav", ["li"] = "lim", ["ln"] = "lin", ["lt"] = "lit", ["lu"] = "lub", ["lb"] = "ltz", ["mk"] = "mkd", ["mg"] = "mlg", ["ms"] = "msa", ["ml"] = "mal", ["mt"] = "mlt", ["gv"] = "glv", ["mi"] = "mri", ["mr"] = "mar", ["mh"] = "mah", ["mn"] = "mon", ["na"] = "nau", ["nv"] = "nav", ["nd"] = "nde", ["nr"] = "nbl", ["ng"] = "ndo", ["ne"] = "nep", ["no"] = "nor", ["nb"] = "nob", ["nn"] = "nno", ["ii"] = "iii", ["oc"] = "oci", ["oj"] = "oji", ["or"] = "ori", ["om"] = "orm", ["os"] = "oss", ["pi"] = "pli", ["ps"] = "pus", ["fa"] = "fas", ["pl"] = "pol", ["pt"] = "por", ["pa"] = "pan", ["qu"] = "que", ["ro"] = "ron", ["rm"] = "roh", ["rn"] = "run", ["ru"] = "rus", ["se"] = "sme", ["sm"] = "smo", ["sg"] = "sag", ["sa"] = "san", ["sc"] = "srd", ["sr"] = "srp", ["sn"] = "sna", ["sd"] = "snd", ["si"] = "sin", ["sk"] = "slk", ["sl"] = "slv", ["so"] = "som", ["st"] = "sot", ["es"] = "spa", ["su"] = "sun", ["sw"] = "swa", ["ss"] = "ssw", ["sv"] = "swe", ["tl"] = "tgl", ["ty"] = "tah", ["tg"] = "tgk", ["ta"] = "tam", ["tt"] = "tat", ["te"] = "tel", ["th"] = "tha", ["bo"] = "bod", ["ti"] = "tir", ["to"] = "ton", ["ts"] = "tso", ["tn"] = "tsn", ["tr"] = "tur", ["tk"] = "tuk", ["tw"] = "twi", ["ug"] = "uig", ["uk"] = "ukr", ["ur"] = "urd", ["uz"] = "uzb", ["ve"] = "ven", ["vi"] = "vie", ["vo"] = "vol", ["wa"] = "wln", ["cy"] = "cym", ["wo"] = "wol", ["xh"] = "xho", ["yi"] = "yid", ["yo"] = "yor", ["za"] = "zha", ["zu"] = "zul", } M.toset2 = function(iso639_lang) if iso639_lang:len() == 2 then -- convert to set1 to set2 return map[iso639_lang] elseif iso639_lang:len() == 3 then -- retun as it is if arg is already set 2. -- we blindly trust it's valid if there's 3 chars return iso639_lang end end return M