LANG_CODES = { " ": "Undefined", "aa": "Afar", "aar": "Afar", "ab": "Abkhazian", "abk": "Abkhazian", "ae": "Avestan", "af": "Afrikaans", "afr": "Afrikaans", "ak": "Akan", "aka": "Akan", "alb": "Albanian", "am": "Amharic", "amh": "Amharic", "an": "Aragonese", "ar": "Arabic", "ara": "Arabic", "arb": "Arabic", "arg": "Aragonese", "arm": "Armenian", "as": "Assamese", "asm": "Assamese", "av": "Avaric", "ava": "Avaric", "ave": "Avestan", "ay": "Aymara", "aym": "Aymara", "az": "Azerbaijani", "aze": "Azerbaijani", "ba": "Bashkir", "bak": "Bashkir", "bam": "Bambara", "baq": "Basque", "be": "Belarusian", "bel": "Belarusian", "bg": "Bulgarian", "bi": "Bislama", "bis": "Bislama", "bm": "Bambara", "bn": "Bengali", "bo": "Tibetan", "bod": "Tibetan", "bos": "Bosnian", "br": "Breton", "bre": "Breton", "bs": "Bosnian", "bul": "Bulgarian", "ca": "Catalan", "cat": "Catalan", "ce": "Chechen", "ces": "Czech", "ch": "Chamorro", "cha": "Chamorro", "che": "Chechen", "chi": "Chinese", "chu": "Church Slavonic", "chv": "Chuvash", "cmn": "Mandarin Chinese", "co": "Corsican", "cor": "Cornish", "cos": "Corsican", "cr": "Cree", "cre": "Cree", "cs": "Czech", "cu": "Church Slavonic", "cv": "Chuvash", "cw": "Cornish", "cy": "Welsh", "cym": "Welsh", "cze": "Czech", "da": "Danish", "dan": "Danish", "de": "German", "deu": "German", "div": "Divehi", "dv": "Divehi", "dz": "Dzongkha", "dzo": "Dzongkha", "ee": "Ewe", "el": "Greek", "ell": "Greek", "en": "English", "eng": "English", "eo": "Esperanto", "epo": "Esperanto", "es": "Spanish", "est": "Estonian", "et": "Estonian", "eu": "Basque", "eus": "Basque", "ewe": "Ewe", "fa": "Persian", "fao": "Faroese", "fas": "Persian", "fat": "Fanti", "ff": "Fulah", "fi": "Finnish", "fil": "Filipino", "fin": "Finnish", "fj": "Fijian", "fij": "Fijian", "fo": "Faroese", "fr": "French", "fra": "French", "fre": "French", "fry": "Western Frisian", "ful": "Fulah", "fy": "Western Frisian", "ga": "Irish", "gd": "Scottish Gaelic", "geo": "Georgian", "ger": "German", "gl": "Galician", "gla": "Scottish Gaelic", "glg": "Galician", "glv": "Manx", "gn": "Guarani", "gre": "Greek", "grn": "Guarani", "gu": "Gujarati", "guj": "Gujarati", "gv": "Manx", "ha": "Hausa", "hat": "Haitian Creole", "hau": "Hausa", "he": "Hebrew", "heb": "Hebrew", "her": "Herero", "hi": "Hindi", "hin": "Hindi", "hmo": "Hiri Motu", "ho": "Hiri Motu", "hr": "Croatian", "hrv": "Croatian", "ht": "Haitian Creole", "hu": "Hungarian", "hun": "Hungarian", "hy": "Armenian", "hye": "Armenian", "hz": "Herero", "ia": "Interlingua", "ice": "Icelandic", "id": "Indonesian", "ido": "Ido", "ie": "Interlingue", "ig": "Igbo", "ii": "Sichuan Yi", "ik": "Inupiaq", "iku": "Inuktitut", "ile": "Interlingue", "ina": "Interlingua", "ind": "Indonesian", "io": "Ido", "ipk": "Inupiaq", "is": "Icelandic", "isl": "Icelandic", "it": "Italian", "ita": "Italian", "iu": "Inuktitut", "ja": "Japanese", "jav": "Javanese", "jpn": "Japanese", "jv": "Javanese", "ka": "Georgian", "kal": "Kalaallisut", "kan": "Kannada", "kas": "Kashmiri", "kat": "Georgian", "kau": "Kanuri", "kaz": "Kazakh", "kg": "Kongo", "khm": "Central Khmer", "ki": "Kikuyu", "kik": "Kikuyu", "kin": "Kinyarwanda", "kir": "Kyrgyz", "kj": "Kuanyama", "kk": "Kazakh", "kl": "Kalaallisut", "km": "Central Khmer", "kn": "Kannada", "ko": "Korean", "kom": "Komi", "kon": "Kongo", "kor": "Korean", "kr": "Kanuri", "ks": "Kashmiri", "ku": "Kurdish", "kua": "Kuanyama", "kur": "Kurdish", "kv": "Komi", "kw": "Cornish", "ky": "Kyrgyz", "la": "Latin", "lao": "Lao", "lat": "Latin", "lb": "Luxembourgish", "lg": "Ganda", "li": "Limburgan", "lim": "Limburgan", "lin": "Lingala", "lit": "Lithuanian", "lo": "Lao", "lt": "Lithuanian", "ltz": "Luxembourgish", "lu": "Luba-Katanga", "lub": "Luba-Katanga", "lug": "Ganda", "lv": "Latvian", "mac": "Macedonian", "mao": "Maori", "may": "Malay", "mg": "Malagasy", "mh": "Marshallese", "mi": "Maori", "mk": "Macedonian", "mkd": "Macedonian", "ml": "Malayalam", "mlg": "Malagasy", "mlt": "Maltese", "mn": "Mongolian", "mon": "Mongolian", "mr": "Marathi", "mri": "Maori", "ms": "Malay", "msa": "Malay", "mt": "Maltese", "my": "Burmese", "mya": "Burmese", "na": "Nauru", "nau": "Nauru", "nav": "Navajo", "nb": "Norwegian Bokmål", "nd": "North Ndebele", "nde": "North Ndebele", "ndo": "Ndonga", "ne": "Nepali", "nep": "Nepali", "ng": "Ndonga", "nl": "Dutch", "nn": "Norwegian Nynorsk", "nno": "Norwegian Nynorsk", "no": "Norwegian", "nob": "Norwegian Bokmål", "nor": "Norwegian", "nr": "South Ndebele", "nv": "Navajo", "ny": "Chichewa", "nya": "Chichewa", "oc": "Occitan", "oci": "Occitan", "oj": "Ojibwa", "oji": "Ojibwa", "om": "Oromo", "or": "Oriya", "ori": "Oriya", "orm": "Oromo", "os": "Ossetian", "oss": "Ossetian", "pa": "Punjabi", "pan": "Punjabi", "per": "Persian", "pi": "Pali", "pl": "Polish", "pli": "Pali", "pol": "Polish", "por": "Portuguese", "ps": "Pashto", "pt": "Portuguese", "pus": "Pashto", "qu": "Quechua", "que": "Quechua", "rm": "Romansh", "rn": "Rundi", "ro": "Romanian", "roh": "Romansh", "ron": "Romanian", "ru": "Russian", "rum": "Romanian", "run": "Rundi", "rus": "Russian", "rw": "Kinyarwanda", "sa": "Sanskrit", "sag": "Sango", "san": "Sanskrit", "sc": "Sardinian", "sd": "Sindhi", "se": "Northern Sami", "sg": "Sango", "si": "Sinhala", "sin": "Sinhala", "sk": "Slovak", "sl": "Slovenian", "slk": "Slovak", "slo": "Slovak", "slv": "Slovenian", "sm": "Samoan", "sme": "Northern Sami", "smo": "Samoan", "sn": "Shona", "sna": "Shona", "so": "Somali", "som": "Somali", "sq": "Albanian", "sqi": "Albanian", "sr": "Serbian", "srd": "Sardinian", "srp": "Serbian", "ss": "Swati", "ssw": "Swati", "st": "Southern Sotho", "su": "Sundanese", "sun": "Sundanese", "sv": "Swedish", "sw": "Swahili", "swa": "Swahili", "swe": "Swedish", "ta": "Tamil", "tam": "Tamil", "tat": "Tatar", "te": "Telugu", "tel": "Telugu", "tg": "Tajik", "tgk": "Tajik", "tgl": "Tagalog", "th": "Thai", "tha": "Thai", "tib": "Tibetan", "ti": "Tigrinya", "tir": "Tigrinya", "tk": "Turkmen", "tl": "Tagalog", "tn": "Tswana", "to": "Tongan", "ton": "Tongan", "tr": "Turkish", "ts": "Tsonga", "tsn": "Tswana", "tso": "Tsonga", "tt": "Tatar", "tuk": "Turkmen", "ty": "Tahitian", "ug": "Uighur", "uig": "Uighur", "uk": "Ukrainian", "ukr": "Ukrainian", "und": "Undefined", "ur": "Urdu", "urd": "Urdu", "uz": "Uzbek", "uzb": "Uzbek", "ve": "Venda", "ven": "Venda", "vi": "Vietnamese", "vie": "Vietnamese", "vo": "Volapük", "vol": "Volapük", "wa": "Walloon", "wel": "Welsh", "wln": "Walloon", "wo": "Wolof", "wol": "Wolof", "xh": "Xhosa", "xho": "Xhosa", "yi": "Yiddish", "yid": "Yiddish", "yo": "Yoruba", "yor": "Yoruba", "yue": "Cantonese", "za": "Zhuang", "zha": "Zhuang", "zh": "Chinese", "zho": "Chinese", "zu": "Zulu", "zul": "Zulu", } REVERSE_LANG_CODES = { "Afar": "aa", "Abkhazian": "ab", "Avestan": "ae", "Afrikaans": "af", "Akan": "ak", "Amharic": "am", "Aragonese": "an", "Arabic": "ar", "Assamese": "as", "Avaric": "av", "Aymara": "ay", "Azerbaijani": "az", "Bashkir": "ba", "Bambara": "bm", "Belarusian": "be", "Bulgarian": "bg", "Bislama": "bi", "Bengali": "bn", "Tibetan": "bo", "Breton": "br", "Bosnian": "bs", "Catalan": "ca", "Chechen": "ce", "Chamorro": "ch", "Chinese": "zh", "Church Slavonic": "cu", "Chuvash": "cv", "Cornish": "kw", "Corsican": "co", "Cree": "cr", "Czech": "cs", "Danish": "da", "German": "de", "Divehi": "dv", "Dzongkha": "dz", "Ewe": "ee", "Greek": "el", "English": "en", "Esperanto": "eo", "Spanish": "es", "Estonian": "et", "Basque": "eu", "Persian": "fa", "Faroese": "fo", "Fanti": "fat", "Fulah": "ff", "Finnish": "fi", "Filipino": "fil", "Fijian": "fj", "French": "fr", "Western Frisian": "fy", "Irish": "ga", "Scottish Gaelic": "gd", "Galician": "gl", "Manx": "gv", "Guarani": "gn", "Gujarati": "gu", "Hausa": "ha", "Haitian Creole": "ht", "Hebrew": "he", "Herero": "hz", "Hindi": "hi", "Hiri Motu": "ho", "Croatian": "hr", "Hungarian": "hu", "Armenian": "hy", "Interlingua": "ia", "Indonesian": "id", "Ido": "io", "Interlingue": "ie", "Igbo": "ig", "Sichuan Yi": "ii", "Inupiaq": "ik", "Inuktitut": "iu", "Icelandic": "is", "Italian": "it", "Japanese": "ja", "Javanese": "jv", "Georgian": "ka", "Kalaallisut": "kl", "Kannada": "kn", "Kashmiri": "ks", "Kanuri": "kr", "Kazakh": "kk", "Kongo": "kg", "Central Khmer": "km", "Kikuyu": "ki", "Kinyarwanda": "rw", "Kyrgyz": "ky", "Kuanyama": "kj", "Lao": "lo", "Latin": "la", "Luxembourgish": "lb", "Ganda": "lg", "Limburgan": "li", "Lingala": "ln", "Lithuanian": "lt", "Luba-Katanga": "lu", "Latvian": "lv", "Macedonian": "mk", "Malagasy": "mg", "Marshallese": "mh", "Maori": "mi", "Malayalam": "ml", "Maltese": "mt", "Mongolian": "mn", "Marathi": "mr", "Malay": "ms", "Burmese": "my", "Nauru": "na", "Navajo": "nv", "Norwegian Bokmål": "nb", "North Ndebele": "nd", "Ndonga": "ng", "Nepali": "ne", "Norwegian Nynorsk": "nn", "Norwegian": "no", "South Ndebele": "nr", "Chichewa": "ny", "Occitan": "oc", "Ojibwa": "oj", "Oromo": "om", "Oriya": "or", "Ossetian": "os", "Punjabi": "pa", "Pali": "pi", "Polish": "pl", "Portuguese": "pt", "Pashto": "ps", "Quechua": "qu", "Romansh": "rm", "Rundi": "rn", "Romanian": "ro", "Russian": "ru", "Sanskrit": "sa", "Sango": "sg", "Sardinian": "sc", "Sindhi": "sd", "Northern Sami": "se", "Sinhala": "si", "Slovak": "sk", "Slovenian": "sl", "Samoan": "sm", "Shona": "sn", "Somali": "so", "Albanian": "sq", "Serbian": "sr", "Swati": "ss", "Southern Sotho": "st", "Sundanese": "su", "Swedish": "sv", "Swahili": "sw", "Tamil": "ta", "Tatar": "tt", "Telugu": "te", "Tajik": "tg", "Tagalog": "tl", "Thai": "th", "Tigrinya": "ti", "Turkmen": "tk", "Tswana": "tn", "Tongan": "to", "Turkish": "tr", "Tsonga": "ts", "Tahitian": "ty", "Uighur": "ug", "Ukrainian": "uk", "Urdu": "ur", "Uzbek": "uz", "Venda": "ve", "Vietnamese": "vi", "Volapük": "vo", "Walloon": "wa", "Welsh": "cy", "Wolof": "wo", "Xhosa": "xh", "Yiddish": "yi", "Yoruba": "yo", "Cantonese": "yue", "Mandarin Chinese": "cmn", "Zhuang": "za", "Zulu": "zu", "Undefined": "und" }