CODES = {
    'abk' : 'Abkhazian',
    'ace' : 'Achinese',
    'ach' : 'Acoli',
    'ada' : 'Adangme',
    'ady' : 'Adygei',
    'ady' : 'Adyghe',
    'aar' : 'Afar',
    'afh' : 'Afrihili',
    'afr' : 'Afrikaans',
    'afa' : 'Afro-Asiatic languages',
    'ain' : 'Ainu',
    'aka' : 'Akan',
    'akk' : 'Akkadian',
    'sqi' : 'Albanian',
    'alb' : 'Albanian',
    'gsw' : 'Alemannic',
    'ale' : 'Aleut',
    'alg' : 'Algonquian languages',
    'gsw' : 'Alsatian',
    'tut' : 'Altaic languages',
    'amh' : 'Amharic',
    'anp' : 'Angika',
    'apa' : 'Apache languages',
    'ara' : 'Arabic',
    'arg' : 'Aragonese',
    'arp' : 'Arapaho',
    'arw' : 'Arawak',
    'arm' : 'Armenian',
    'arm' : 'Armenian',
    'rup' : 'Aromanian',
    'art' : 'Artificial languages',
    'rup' : 'Arumanian',
    'asm' : 'Assamese',
    'ast' : 'Asturian',
    'ast' : 'Asturleonese',
    'ath' : 'Athapascan languages',
    'aus' : 'Australian languages',
    'map' : 'Austronesian languages',
    'ava' : 'Avaric',
    'ave' : 'Avestan',
    'awa' : 'Awadhi',
    'aym' : 'Aymara',
    'aze' : 'Azerbaijani',
    'ast' : 'Bable',
    'ban' : 'Balinese',
    'bat' : 'Baltic languages',
    'bal' : 'Baluchi',
    'bam' : 'Bambara',
    'bai' : 'Bamileke languages',
    'bad' : 'Banda languages',
    'bnt' : 'Bantu languages',
    'bas' : 'Basa',
    'bak' : 'Bashkir',
    'eus' : 'Basque',
    'baq' : 'Basque',
    'btk' : 'Batak languages',
    'bej' : 'Bedawiyet',
    'bej' : 'Beja',
    'bel' : 'Belarusian',
    'bem' : 'Bemba',
    'ben' : 'Bengali',
    'ber' : 'Berber languages',
    'bho' : 'Bhojpuri',
    'bih' : 'Bihari languages',
    'bik' : 'Bikol',
    'byn' : 'Bilin',
    'bin' : 'Bini',
    'bis' : 'Bislama',
    'byn' : 'Blin',
    'zbl' : 'Bliss',
    'zbl' : 'Blissymbolics',
    'zbl' : 'Blissymbols',
    'nob' : 'Bokmål, Norwegian',
    'bos' : 'Bosnian',
    'bra' : 'Braj',
    'bre' : 'Breton',
    'bug' : 'Buginese',
    'bul' : 'Bulgarian',
    'bua' : 'Buriat',
    'bur' : 'Burmese',
    'mya' : 'Burmese',
    'cad' : 'Caddo',
    'spa' : 'Castilian',
    'cat' : 'Catalan',
    'cau' : 'Caucasian languages',
    'ceb' : 'Cebuano',
    'cel' : 'Celtic languages',
    'cai' : 'Central American Indian languages',
    'khm' : 'Central Khmer',
    'chg' : 'Chagatai',
    'cmc' : 'Chamic languages',
    'cha' : 'Chamorro',
    'che' : 'Chechen',
    'chr' : 'Cherokee',
    'nya' : 'Chewa',
    'chy' : 'Cheyenne',
    'chb' : 'Chibcha',
    'nya' : 'Chichewa',
    'chi' : 'Chinese',
    'zho' : 'Chinese',
    'chn' : 'Chinook jargon',
    'chp' : 'Chipewyan',
    'cho' : 'Choctaw',
    'zha' : 'Chuang',
    'chu' : 'Church Slavic',
    'chu' : 'Church Slavonic',
    'chk' : 'Chuukese',
    'chv' : 'Chuvash',
    'nwc' : 'Classical Nepal Bhasa',
    'nwc' : 'Classical Newari',
    'syc' : 'Classical Syriac',
    'rar' : 'Cook Islands Maori',
    'cop' : 'Coptic',
    'cor' : 'Cornish',
    'cos' : 'Corsican',
    'cre' : 'Cree',
    'mus' : 'Creek',
    'crp' : 'Creoles and pidgins',
    'cpe' : 'Creoles and pidgins, English based',
    'cpf' : 'Creoles and pidgins, French-based',
    'cpp' : 'Creoles and pidgins, Portuguese-based',
    'crh' : 'Crimean Tatar',
    'crh' : 'Crimean Turkish',
    'hrv' : 'Croatian',
    'cus' : 'Cushitic languages',
    'cze' : 'Czech',
    'cze' : 'Czech',
    'dak' : 'Dakota',
    'dan' : 'Danish',
    'dar' : 'Dargwa',
    'del' : 'Delaware',
    'chp' : 'Dene Suline',
    'div' : 'Dhivehi',
    'zza' : 'Dimili',
    'zza' : 'Dimli',
    'din' : 'Dinka',
    'div' : 'Divehi',
    'doi' : 'Dogri',
    'dgr' : 'Dogrib',
    'dra' : 'Dravidian languages',
    'dua' : 'Duala',
    'dut' : 'Dutch',
    'nld' : 'Dutch',
    'dum' : 'Dutch, Middle (ca.1050-1350)',
    'dyu' : 'Dyula',
    'dzo' : 'Dzongkha',
    'frs' : 'Eastern Frisian',
    'bin' : 'Edo',
    'efi' : 'Efik',
    'egy' : 'Egyptian (Ancient)',
    'eka' : 'Ekajuk',
    'elx' : 'Elamite',
    'eng' : 'English',
    'enm' : 'English, Middle (1100-1500)',
    'ang' : 'English, Old (ca.450-1100)',
    'myv' : 'Erzya',
    'epo' : 'Esperanto',
    'est' : 'Estonian',
    'ewe' : 'Ewe',
    'ewo' : 'Ewondo',
    'fan' : 'Fang',
    'fat' : 'Fanti',
    'fao' : 'Faroese',
    'fij' : 'Fijian',
    'fil' : 'Filipino',
    'fin' : 'Finnish',
    'fiu' : 'Finno-Ugrian languages',
    'nld' : 'Flemish',
    'dut' : 'Flemish',
    'fon' : 'Fon',
    'fra' : 'French',
    'fre' : 'French',
    'frm' : 'French, Middle (ca.1400-1600)',
    'fro' : 'French, Old (842-ca.1400)',
    'fur' : 'Friulian',
    'ful' : 'Fulah',
    'gaa' : 'Ga',
    'gla' : 'Gaelic',
    'car' : 'Galibi Carib',
    'glg' : 'Galician',
    'lug' : 'Ganda',
    'gay' : 'Gayo',
    'gba' : 'Gbaya',
    'gez' : 'Geez',
    'geo' : 'Georgian',
    'kat' : 'Georgian',
    'deu' : 'German',
    'ger' : 'German',
    'nds' : 'German, Low',
    'gmh' : 'German, Middle High (ca.1050-1500)',
    'goh' : 'German, Old High (ca.750-1050)',
    'gem' : 'Germanic languages',
    'kik' : 'Gikuyu',
    'gil' : 'Gilbertese',
    'gon' : 'Gondi',
    'gor' : 'Gorontalo',
    'got' : 'Gothic',
    'grb' : 'Grebo',
    'grc' : 'Ancient Greek', # 'Greek, Ancient (to 1453)',
    'ell' : 'Modern Greek',  # 'Greek, Modern (1453-)',
    'gre' : 'Modern Greek',  # 'Greek, Modern (1453-)',
    'kal' : 'Greenlandic',
    'grn' : 'Guarani',
    'guj' : 'Gujarati',
    'gwi' : 'Gwich\'in',
    'hai' : 'Haida',
    'hat' : 'Haitian',
    'hat' : 'Haitian Creole',
    'hau' : 'Hausa',
    'haw' : 'Hawaiian',
    'heb' : 'Hebrew',
    'her' : 'Herero',
    'hil' : 'Hiligaynon',
    'him' : 'Himachali languages',
    'hin' : 'Hindi',
    'hmo' : 'Hiri Motu',
    'hit' : 'Hittite',
    'hmn' : 'Hmong',
    'hun' : 'Hungarian',
    'hup' : 'Hupa',
    'iba' : 'Iban',
    'ice' : 'Icelandic',
    'isl' : 'Icelandic',
    'ido' : 'Ido',
    'ibo' : 'Igbo',
    'ijo' : 'Ijo languages',
    'ilo' : 'Iloko',
    'arc' : 'Imperial Aramaic (700-300 BCE)',
    'smn' : 'Inari Sami',
    'inc' : 'Indic languages',
    'ine' : 'Indo-European languages',
    'ind' : 'Indonesian',
    'inh' : 'Ingush',
    'ina' : 'Interlingua (International Auxiliary Language Association)',
    'ile' : 'Interlingue',
    'iku' : 'Inuktitut',
    'ipk' : 'Inupiaq',
    'ira' : 'Iranian languages',
    'gle' : 'Irish',
    'mga' : 'Irish, Middle (900-1200)',
    'sga' : 'Irish, Old (to 900)',
    'iro' : 'Iroquoian languages',
    'ita' : 'Italian',
    'jpn' : 'Japanese',
    'jav' : 'Javanese',
    'kac' : 'Jingpho',
    'jrb' : 'Judeo-Arabic',
    'jpr' : 'Judeo-Persian',
    'kbd' : 'Kabardian',
    'kab' : 'Kabyle',
    'kac' : 'Kachin',
    'kal' : 'Kalaallisut',
    'xal' : 'Kalmyk',
    'kam' : 'Kamba',
    'kan' : 'Kannada',
    'kau' : 'Kanuri',
    'pam' : 'Kapampangan',
    'kaa' : 'Kara-Kalpak',
    'krc' : 'Karachay-Balkar',
    'krl' : 'Karelian',
    'kar' : 'Karen languages',
    'kas' : 'Kashmiri',
    'csb' : 'Kashubian',
    'kaw' : 'Kawi',
    'kaz' : 'Kazakh',
    'kha' : 'Khasi',
    'khi' : 'Khoisan languages',
    'kho' : 'Khotanese',
    'kik' : 'Kikuyu',
    'kmb' : 'Kimbundu',
    'kin' : 'Kinyarwanda',
    'zza' : 'Kirdki',
    'kir' : 'Kirghiz',
    'zza' : 'Kirmanjki',
    'tlh' : 'Klingon',
    'kom' : 'Komi',
    'kon' : 'Kongo',
    'kok' : 'Konkani',
    'kor' : 'Korean',
    'kos' : 'Kosraean',
    'kpe' : 'Kpelle',
    'kro' : 'Kru languages',
    'kua' : 'Kuanyama',
    'kum' : 'Kumyk',
    'kur' : 'Kurdish',
    'kru' : 'Kurukh',
    'kut' : 'Kutenai',
    'kua' : 'Kwanyama',
    'kir' : 'Kyrgyz',
    'lad' : 'Ladino',
    'lah' : 'Lahnda',
    'lam' : 'Lamba',
    'day' : 'Land Dayak languages',
    'lao' : 'Lao',
    'lat' : 'Latin',
    'lav' : 'Latvian',
    'ast' : 'Leonese',
    'ltz' : 'Letzeburgesch',
    'lez' : 'Lezghian',
    'lim' : 'Limburgan',
    'lim' : 'Limburger',
    'lim' : 'Limburgish',
    'lin' : 'Lingala',
    'lit' : 'Lithuanian',
    'jbo' : 'Lojban',
    'nds' : 'Low German',
    'nds' : 'Low Saxon',
    'dsb' : 'Lower Sorbian',
    'loz' : 'Lozi',
    'lub' : 'Luba-Katanga',
    'lua' : 'Luba-Lulua',
    'lui' : 'Luiseno',
    'smj' : 'Lule Sami',
    'lun' : 'Lunda',
    'luo' : 'Luo (Kenya and Tanzania)',
    'lus' : 'Lushai',
    'ltz' : 'Luxembourgish',
    'rup' : 'Macedo-Romanian',
    'mkd' : 'Macedonian',
    'mac' : 'Macedonian',
    'mad' : 'Madurese',
    'mag' : 'Magahi',
    'mai' : 'Maithili',
    'mak' : 'Makasar',
    'mlg' : 'Malagasy',
    'may' : 'Malay',
    'msa' : 'Malay',
    'mal' : 'Malayalam',
    'div' : 'Maldivian',
    'mlt' : 'Maltese',
    'mnc' : 'Manchu',
    'mdr' : 'Mandar',
    'man' : 'Mandingo',
    'mni' : 'Manipuri',
    'mno' : 'Manobo languages',
    'glv' : 'Manx',
    'mao' : 'Maori',
    'mri' : 'Maori',
    'arn' : 'Mapuche',
    'arn' : 'Mapudungun',
    'mar' : 'Marathi',
    'chm' : 'Mari',
    'mah' : 'Marshallese',
    'mwr' : 'Marwari',
    'mas' : 'Masai',
    'myn' : 'Mayan languages',
    'men' : 'Mende',
    'mic' : 'Mi\'kmaq',
    'mic' : 'Micmac',
    'min' : 'Minangkabau',
    'mwl' : 'Mirandese',
    'moh' : 'Mohawk',
    'mdf' : 'Moksha',
    'ron' : 'Moldavian',
    'rum' : 'Moldavian',
    'mkh' : 'Mon-Khmer languages',
    'hmn' : 'Mong',
    'lol' : 'Mongo',
    'mon' : 'Mongolian',
    'cnr' : 'Montenegrin',
    'mos' : 'Mossi',
    'mul' : 'Multiple languages',
    'mun' : 'Munda languages',
    'nqo' : 'N\'Ko',
    'nah' : 'Nahuatl languages',
    'nau' : 'Nauru',
    'nav' : 'Navaho',
    'nav' : 'Navajo',
    'nde' : 'Ndebele, North',
    'nbl' : 'Ndebele, South',
    'ndo' : 'Ndonga',
    'nap' : 'Neapolitan',
    'new' : 'Nepal Bhasa',
    'nep' : 'Nepali',
    'new' : 'Newari',
    'nia' : 'Nias',
    'nic' : 'Niger-Kordofanian languages',
    'ssa' : 'Nilo-Saharan languages',
    'niu' : 'Niuean',
    'zxx' : 'No linguistic content',
    'nog' : 'Nogai',
    'non' : 'Norse, Old',
    'nai' : 'North American Indian languages',
    'nde' : 'North Ndebele',
    'frr' : 'Northern Frisian',
    'sme' : 'Northern Sami',
    'nso' : 'Northern Sotho',
    'nor' : 'Norwegian',
    'nob' : 'Norwegian Bokmål',
    'nno' : 'Norwegian Nynorsk',
    'zxx' : 'Not applicable',
    'nub' : 'Nubian languages',
    'iii' : 'Nuosu',
    'nym' : 'Nyamwezi',
    'nya' : 'Nyanja',
    'nyn' : 'Nyankole',
    'nno' : 'Nynorsk, Norwegian',
    'nyo' : 'Nyoro',
    'nzi' : 'Nzima',
    'ile' : 'Occidental',
    'oci' : 'Occitan (post 1500)',
    'pro' : 'Occitan, Old (to 1500)',
    'arc' : 'Official Aramaic (700-300 BCE)',
    'xal' : 'Oirat',
    'oji' : 'Ojibwa',
    'chu' : 'Old Bulgarian',
    'chu' : 'Old Church Slavonic',
    'nwc' : 'Old Newari',
    'chu' : 'Old Slavonic',
    'ori' : 'Oriya',
    'orm' : 'Oromo',
    'osa' : 'Osage',
    'oss' : 'Ossetian',
    'oss' : 'Ossetic',
    'oto' : 'Otomian languages',
    'pal' : 'Pahlavi',
    'pau' : 'Palauan',
    'pli' : 'Pali',
    'pam' : 'Pampanga',
    'pag' : 'Pangasinan',
    'pan' : 'Panjabi',
    'pap' : 'Papiamento',
    'paa' : 'Papuan languages',
    'pus' : 'Pashto',
    'nso' : 'Pedi',
    'per' : 'Persian',
    'fas' : 'Persian',
    'peo' : 'Persian, Old (ca.600-400 B.C.)',
    'phi' : 'Philippine languages',
    'phn' : 'Phoenician',
    'fil' : 'Pilipino',
    'pon' : 'Pohnpeian',
    'pol' : 'Polish',
    'por' : 'Portuguese',
    'pra' : 'Prakrit languages',
    'pro' : 'Provençal, Old (to 1500)',
    'pan' : 'Punjabi',
    'pus' : 'Pushto',
    'que' : 'Quechua',
    'raj' : 'Rajasthani',
    'rap' : 'Rapanui',
    'rar' : 'Rarotongan',
    'qaa-qtz' : 'Reserved for local use',
    'roa' : 'Romance languages',
    'ron' : 'Romanian',
    'rum' : 'Romanian',
    'roh' : 'Romansh',
    'rom' : 'Romany',
    'run' : 'Rundi',
    'rus' : 'Russian',
    'kho' : 'Sakan',
    'sal' : 'Salishan languages',
    'sam' : 'Samaritan Aramaic',
    'smi' : 'Sami languages',
    'smo' : 'Samoan',
    'sad' : 'Sandawe',
    'sag' : 'Sango',
    'san' : 'Sanskrit',
    'sat' : 'Santali',
    'srd' : 'Sardinian',
    'sas' : 'Sasak',
    'nds' : 'Saxon, Low',
    'sco' : 'Scots',
    'gla' : 'Scottish Gaelic',
    'sel' : 'Selkup',
    'sem' : 'Semitic languages',
    'nso' : 'Sepedi',
    'srp' : 'Serbian',
    'srr' : 'Serer',
    'shn' : 'Shan',
    'sna' : 'Shona',
    'iii' : 'Sichuan Yi',
    'scn' : 'Sicilian',
    'sid' : 'Sidamo',
    'sgn' : 'Sign Languages',
    'bla' : 'Siksika',
    'snd' : 'Sindhi',
    'sin' : 'Sinhala',
    'sin' : 'Sinhalese',
    'sit' : 'Sino-Tibetan languages',
    'sio' : 'Siouan languages',
    'sms' : 'Skolt Sami',
    'den' : 'Slave (Athapascan)',
    'sla' : 'Slavic languages',
    'slo' : 'Slovak',
    'slk' : 'Slovak',
    'slv' : 'Slovenian',
    'sog' : 'Sogdian',
    'som' : 'Somali',
    'son' : 'Songhai languages',
    'snk' : 'Soninke',
    'wen' : 'Sorbian languages',
    'nso' : 'Sotho, Northern',
    'sot' : 'Sotho, Southern',
    'sai' : 'South American Indian languages',
    'nbl' : 'South Ndebele',
    'alt' : 'Southern Altai',
    'sma' : 'Southern Sami',
    'spa' : 'Spanish',
    'srn' : 'Sranan Tongo',
    'zgh' : 'Standard Moroccan Tamazight',
    'suk' : 'Sukuma',
    'sux' : 'Sumerian',
    'sun' : 'Sundanese',
    'sus' : 'Susu',
    'swa' : 'Swahili',
    'ssw' : 'Swati',
    'swe' : 'Swedish',
    'gsw' : 'Swiss German',
    'syr' : 'Syriac',
    'tgl' : 'Tagalog',
    'tah' : 'Tahitian',
    'tai' : 'Tai languages',
    'tgk' : 'Tajik',
    'tmh' : 'Tamashek',
    'tam' : 'Tamil',
    'tat' : 'Tatar',
    'tel' : 'Telugu',
    'ter' : 'Tereno',
    'tet' : 'Tetum',
    'tha' : 'Thai',
    'tib' : 'Tibetan',
    'bod' : 'Tibetan',
    'tig' : 'Tigre',
    'tir' : 'Tigrinya',
    'tem' : 'Timne',
    'tiv' : 'Tiv',
    'tlh' : 'tlhIngan-Hol',
    'tli' : 'Tlingit',
    'tpi' : 'Tok Pisin',
    'tkl' : 'Tokelau',
    'tog' : 'Tonga (Nyasa)',
    'ton' : 'Tonga (Tonga Islands)',
    'tsi' : 'Tsimshian',
    'tso' : 'Tsonga',
    'tsn' : 'Tswana',
    'tum' : 'Tumbuka',
    'tup' : 'Tupi languages',
    'tur' : 'Turkish',
    'ota' : 'Turkish, Ottoman (1500-1928)',
    'tuk' : 'Turkmen',
    'tvl' : 'Tuvalu',
    'tyv' : 'Tuvinian',
    'twi' : 'Twi',
    'udm' : 'Udmurt',
    'uga' : 'Ugaritic',
    'uig' : 'Uighur',
    'ukr' : 'Ukrainian',
    'umb' : 'Umbundu',
    'mis' : 'Uncoded languages',
    'und' : 'Undetermined',
    'hsb' : 'Upper Sorbian',
    'urd' : 'Urdu',
    'uig' : 'Uyghur',
    'uzb' : 'Uzbek',
    'vai' : 'Vai',
    'cat' : 'Valencian',
    'ven' : 'Venda',
    'vie' : 'Vietnamese',
    'vol' : 'Volapük',
    'vot' : 'Votic',
    'wak' : 'Wakashan languages',
    'wln' : 'Walloon',
    'war' : 'Waray',
    'was' : 'Washo',
    'cym' : 'Welsh',
    'wel' : 'Welsh',
    'fry' : 'Western Frisian',
    'him' : 'Western Pahari languages',
    'wal' : 'Wolaitta',
    'wal' : 'Wolaytta',
    'wol' : 'Wolof',
    'xho' : 'Xhosa',
    'sah' : 'Yakut',
    'yao' : 'Yao',
    'yap' : 'Yapese',
    'yid' : 'Yiddish',
    'yor' : 'Yoruba',
    'ypk' : 'Yupik languages',
    'znd' : 'Zande languages',
    'zap' : 'Zapotec',
    'zza' : 'Zaza',
    'zza' : 'Zazaki',
    'zen' : 'Zenaga',
    'zha' : 'Zhuang',
    'zul' : 'Zulu',
    'zun' : 'Zuni',
}

def convert_language_code(code:str) -> str:
    if code in CODES:
        return CODES[code]
    
    return code