#!/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