language_order = [
    "en",
    "ru",
    "es",
    "fr",
    "de",
    "ja",
    "tr",
    "pt",
    "fa",
    "it",
    "zh",
    "zh-Hans",
    "nl",
    "vi",
    "pl",
    "ar",
    "ko",
    "cs",
    "id",
    "uk",
    "el",
    "he",
    "th",
    "sv",
    "ro",
    "hu",
    "da",
    "fi",
    "sk",
    "bg",
    "sr",
    "sr-Cyrl",
    "nb",
    "hr",
    "lt",
    "sl",
    "ca",
    "et",
    "lv",
    "hi",
    "bn",
    "ur",
    "sw",
    "pa-Arab",
    "te",
    "mr",
    "ta",
    "yue",
    "fil",
    "gu",
    "kn",
    "ps",
    "zh-Hant",
    "ml",
    "or",
    "my",
    "pa",
    "pa-Guru",
    "am",
    "om",
    "ha",
    "uz",
    "uz-Latn",
    "yo",
    "ms",
    "ig",
    "mg",
    "ne",
    "as",
    "so",
    "si",
    "km",
    "zu",
    "sn",
    "kk",
    "rw",
    "ckb",
    "qu",
    "ak",
    "be",
    "ti",
    "az",
    "az-Latn",
    "af",
    "sr-Latn",
    "ii",
    "bm",
    "ki",
    "gsw",
    "ug",
    "zgh",
    "ff",
    "rn",
    "sq",
    "ks",
    "hy",
    "luy",
    "lg",
    "lo",
    "bem",
    "kok",
    "luo",
    "uz-Cyrl",
    "ka",
    "ee",
    "mzn",
    "bs-Cyrl",
    "bs",
    "bs-Latn",
    "kln",
    "kam",
    "gl",
    "tzm",
    "dje",
    "kab",
    "bo",
    "shi-Latn",
    "shi",
    "shi-Tfng",
    "mn",
    "ln",
    "ky",
    "sg",
    "nyn",
    "guz",
    "cgg",
    "xog",
    "lrc",
    "mer",
    "lu",
    "teo",
    "brx",
    "nd",
    "mk",
    "uz-Arab",
    "mas",
    "nn",
    "kde",
    "mfe",
    "seh",
    "mgh",
    "az-Cyrl",
    "ga",
    "eu",
    "yi",
    "ce",
    "ksb",
    "bez",
    "ewo",
    "fy",
    "ebu",
    "nus",
    "ast",
    "asa",
    "ses",
    "os",
    "br",
    "cy",
    "kea",
    "lag",
    "sah",
    "mt",
    "vun",
    "rof",
    "jmc",
    "lb",
    "dav",
    "dyo",
    "dz",
    "nnh",
    "is",
    "khq",
    "bas",
    "naq",
    "mua",
    "ksh",
    "saq",
    "se",
    "dua",
    "rwk",
    "mgo",
    "sbp",
    "to",
    "jgo",
    "ksf",
    "fo",
    "gd",
    "kl",
    "rm",
    "fur",
    "agq",
    "haw",
    "chr",
    "hsb",
    "wae",
    "nmg",
    "lkt",
    "twq",
    "dsb",
    "yav",
    "kw",
    "gv",
    "smn",
    "eo",
    "tl",
]

language_map = {
    "af": ["af"],
    "agq": ["agq"],
    "ak": ["ak"],
    "am": ["am"],
    "ar": ["ar"],
    "as": ["as"],
    "asa": ["asa"],
    "ast": ["ast"],
    "az": ["az", "az-Cyrl", "az-Latn"],
    "bas": ["bas"],
    "be": ["be"],
    "bem": ["bem"],
    "bez": ["bez"],
    "bg": ["bg"],
    "bm": ["bm"],
    "bn": ["bn"],
    "bo": ["bo"],
    "br": ["br"],
    "brx": ["brx"],
    "bs": ["bs", "bs-Cyrl", "bs-Latn"],
    "ca": ["ca"],
    "ce": ["ce"],
    "cgg": ["cgg"],
    "chr": ["chr"],
    "ckb": ["ckb"],
    "cs": ["cs"],
    "cy": ["cy"],
    "da": ["da"],
    "dav": ["dav"],
    "de": ["de"],
    "dje": ["dje"],
    "dsb": ["dsb"],
    "dua": ["dua"],
    "dyo": ["dyo"],
    "dz": ["dz"],
    "ebu": ["ebu"],
    "ee": ["ee"],
    "el": ["el"],
    "en": ["en"],
    "eo": ["eo"],
    "es": ["es"],
    "et": ["et"],
    "eu": ["eu"],
    "ewo": ["ewo"],
    "fa": ["fa"],
    "ff": ["ff"],
    "fi": ["fi"],
    "fil": ["fil"],
    "fo": ["fo"],
    "fr": ["fr"],
    "fur": ["fur"],
    "fy": ["fy"],
    "ga": ["ga"],
    "gd": ["gd"],
    "gl": ["gl"],
    "gsw": ["gsw"],
    "gu": ["gu"],
    "guz": ["guz"],
    "gv": ["gv"],
    "ha": ["ha"],
    "haw": ["haw"],
    "he": ["he"],
    "hi": ["hi"],
    "hr": ["hr"],
    "hsb": ["hsb"],
    "hu": ["hu"],
    "hy": ["hy"],
    "id": ["id"],
    "ig": ["ig"],
    "ii": ["ii"],
    "is": ["is"],
    "it": ["it"],
    "ja": ["ja"],
    "jgo": ["jgo"],
    "jmc": ["jmc"],
    "ka": ["ka"],
    "kab": ["kab"],
    "kam": ["kam"],
    "kde": ["kde"],
    "kea": ["kea"],
    "khq": ["khq"],
    "ki": ["ki"],
    "kk": ["kk"],
    "kl": ["kl"],
    "kln": ["kln"],
    "km": ["km"],
    "kn": ["kn"],
    "ko": ["ko"],
    "kok": ["kok"],
    "ks": ["ks"],
    "ksb": ["ksb"],
    "ksf": ["ksf"],
    "ksh": ["ksh"],
    "kw": ["kw"],
    "ky": ["ky"],
    "lag": ["lag"],
    "lb": ["lb"],
    "lg": ["lg"],
    "lkt": ["lkt"],
    "ln": ["ln"],
    "lo": ["lo"],
    "lrc": ["lrc"],
    "lt": ["lt"],
    "lu": ["lu"],
    "luo": ["luo"],
    "luy": ["luy"],
    "lv": ["lv"],
    "mas": ["mas"],
    "mer": ["mer"],
    "mfe": ["mfe"],
    "mg": ["mg"],
    "mgh": ["mgh"],
    "mgo": ["mgo"],
    "mk": ["mk"],
    "ml": ["ml"],
    "mn": ["mn"],
    "mr": ["mr"],
    "ms": ["ms"],
    "mt": ["mt"],
    "mua": ["mua"],
    "my": ["my"],
    "mzn": ["mzn"],
    "naq": ["naq"],
    "nb": ["nb"],
    "nd": ["nd"],
    "ne": ["ne"],
    "nl": ["nl"],
    "nmg": ["nmg"],
    "nn": ["nn"],
    "nnh": ["nnh"],
    "nus": ["nus"],
    "nyn": ["nyn"],
    "om": ["om"],
    "or": ["or"],
    "os": ["os"],
    "pa": ["pa", "pa-Arab", "pa-Guru"],
    "pl": ["pl"],
    "ps": ["ps"],
    "pt": ["pt"],
    "qu": ["qu"],
    "rm": ["rm"],
    "rn": ["rn"],
    "ro": ["ro"],
    "rof": ["rof"],
    "ru": ["ru"],
    "rw": ["rw"],
    "rwk": ["rwk"],
    "sah": ["sah"],
    "saq": ["saq"],
    "sbp": ["sbp"],
    "se": ["se"],
    "seh": ["seh"],
    "ses": ["ses"],
    "sg": ["sg"],
    "shi": ["shi", "shi-Latn", "shi-Tfng"],
    "si": ["si"],
    "sk": ["sk"],
    "sl": ["sl"],
    "smn": ["smn"],
    "sn": ["sn"],
    "so": ["so"],
    "sq": ["sq"],
    "sr": ["sr", "sr-Cyrl", "sr-Latn"],
    "sv": ["sv"],
    "sw": ["sw"],
    "ta": ["ta"],
    "te": ["te"],
    "teo": ["teo"],
    "th": ["th"],
    "ti": ["ti"],
    "tl": ["tl"],
    "to": ["to"],
    "tr": ["tr"],
    "twq": ["twq"],
    "tzm": ["tzm"],
    "ug": ["ug"],
    "uk": ["uk"],
    "ur": ["ur"],
    "uz": ["uz", "uz-Arab", "uz-Cyrl", "uz-Latn"],
    "vi": ["vi"],
    "vun": ["vun"],
    "wae": ["wae"],
    "xog": ["xog"],
    "yav": ["yav"],
    "yi": ["yi"],
    "yo": ["yo"],
    "yue": ["yue"],
    "zgh": ["zgh"],
    "zh": ["zh", "zh-Hans", "zh-Hant"],
    "zu": ["zu"],
}

language_locale_dict = {
    "en": [
        "en-001",
        "en-150",
        "en-AG",
        "en-AI",
        "en-AS",
        "en-AT",
        "en-AU",
        "en-BB",
        "en-BE",
        "en-BI",
        "en-BM",
        "en-BS",
        "en-BW",
        "en-BZ",
        "en-CA",
        "en-CC",
        "en-CH",
        "en-CK",
        "en-CM",
        "en-CX",
        "en-CY",
        "en-DE",
        "en-DG",
        "en-DK",
        "en-DM",
        "en-ER",
        "en-FI",
        "en-FJ",
        "en-FK",
        "en-FM",
        "en-GB",
        "en-GD",
        "en-GG",
        "en-GH",
        "en-GI",
        "en-GM",
        "en-GU",
        "en-GY",
        "en-HK",
        "en-IE",
        "en-IL",
        "en-IM",
        "en-IN",
        "en-IO",
        "en-JE",
        "en-JM",
        "en-KE",
        "en-KI",
        "en-KN",
        "en-KY",
        "en-LC",
        "en-LR",
        "en-LS",
        "en-MG",
        "en-MH",
        "en-MO",
        "en-MP",
        "en-MS",
        "en-MT",
        "en-MU",
        "en-MW",
        "en-MY",
        "en-NA",
        "en-NF",
        "en-NG",
        "en-NL",
        "en-NR",
        "en-NU",
        "en-NZ",
        "en-PG",
        "en-PH",
        "en-PK",
        "en-PN",
        "en-PR",
        "en-PW",
        "en-RW",
        "en-SB",
        "en-SC",
        "en-SD",
        "en-SE",
        "en-SG",
        "en-SH",
        "en-SI",
        "en-SL",
        "en-SS",
        "en-SX",
        "en-SZ",
        "en-TC",
        "en-TK",
        "en-TO",
        "en-TT",
        "en-TV",
        "en-TZ",
        "en-UG",
        "en-UM",
        "en-VC",
        "en-VG",
        "en-VI",
        "en-VU",
        "en-WS",
        "en-ZA",
        "en-ZM",
        "en-ZW",
    ],
    "ru": ["ru-BY", "ru-KG", "ru-KZ", "ru-MD", "ru-UA"],
    "es": [
        "es-419",
        "es-AR",
        "es-BO",
        "es-BR",
        "es-BZ",
        "es-CL",
        "es-CO",
        "es-CR",
        "es-CU",
        "es-DO",
        "es-EA",
        "es-EC",
        "es-GQ",
        "es-GT",
        "es-HN",
        "es-IC",
        "es-MX",
        "es-NI",
        "es-PA",
        "es-PE",
        "es-PH",
        "es-PR",
        "es-PY",
        "es-SV",
        "es-US",
        "es-UY",
        "es-VE",
    ],
    "fr": [
        "fr-BE",
        "fr-BF",
        "fr-BI",
        "fr-BJ",
        "fr-BL",
        "fr-CA",
        "fr-CD",
        "fr-CF",
        "fr-CG",
        "fr-CH",
        "fr-CI",
        "fr-CM",
        "fr-DJ",
        "fr-DZ",
        "fr-GA",
        "fr-GF",
        "fr-GN",
        "fr-GP",
        "fr-GQ",
        "fr-HT",
        "fr-KM",
        "fr-LU",
        "fr-MA",
        "fr-MC",
        "fr-MF",
        "fr-MG",
        "fr-ML",
        "fr-MQ",
        "fr-MR",
        "fr-MU",
        "fr-NC",
        "fr-NE",
        "fr-PF",
        "fr-PM",
        "fr-RE",
        "fr-RW",
        "fr-SC",
        "fr-SN",
        "fr-SY",
        "fr-TD",
        "fr-TG",
        "fr-TN",
        "fr-VU",
        "fr-WF",
        "fr-YT",
    ],
    "de": ["de-AT", "de-BE", "de-CH", "de-IT", "de-LI", "de-LU"],
    "ja": [],
    "tr": ["tr-CY"],
    "pt": [
        "pt-AO",
        "pt-CH",
        "pt-CV",
        "pt-GQ",
        "pt-GW",
        "pt-LU",
        "pt-MO",
        "pt-MZ",
        "pt-PT",
        "pt-ST",
        "pt-TL",
    ],
    "fa": ["fa-AF"],
    "it": ["it-CH", "it-SM", "it-VA"],
    "zh": [],
    "zh-Hans": ["zh-Hans-HK", "zh-Hans-MO", "zh-Hans-SG"],
    "nl": ["nl-AW", "nl-BE", "nl-BQ", "nl-CW", "nl-SR", "nl-SX"],
    "vi": [],
    "pl": [],
    "ar": [
        "ar-AE",
        "ar-BH",
        "ar-DJ",
        "ar-DZ",
        "ar-EG",
        "ar-EH",
        "ar-ER",
        "ar-IL",
        "ar-IQ",
        "ar-JO",
        "ar-KM",
        "ar-KW",
        "ar-LB",
        "ar-LY",
        "ar-MA",
        "ar-MR",
        "ar-OM",
        "ar-PS",
        "ar-QA",
        "ar-SA",
        "ar-SD",
        "ar-SO",
        "ar-SS",
        "ar-SY",
        "ar-TD",
        "ar-TN",
        "ar-YE",
    ],
    "ko": ["ko-KP"],
    "cs": [],
    "id": [],
    "uk": [],
    "el": ["el-CY"],
    "he": [],
    "th": [],
    "sv": ["sv-AX", "sv-FI"],
    "ro": ["ro-MD"],
    "hu": [],
    "da": ["da-GL"],
    "fi": [],
    "sk": [],
    "bg": [],
    "sr": [],
    "sr-Cyrl": ["sr-Cyrl-BA", "sr-Cyrl-ME", "sr-Cyrl-XK"],
    "nb": ["nb-SJ"],
    "hr": ["hr-BA"],
    "lt": [],
    "sl": [],
    "ca": ["ca-AD", "ca-FR", "ca-IT"],
    "et": [],
    "lv": [],
    "hi": [],
    "bn": ["bn-IN"],
    "ur": ["ur-IN"],
    "sw": ["sw-CD", "sw-KE", "sw-UG"],
    "pa-Arab": [],
    "te": [],
    "mr": [],
    "ta": ["ta-LK", "ta-MY", "ta-SG"],
    "yue": [],
    "fil": [],
    "gu": [],
    "kn": [],
    "ps": [],
    "zh-Hant": ["zh-Hant-HK", "zh-Hant-MO"],
    "ml": [],
    "or": [],
    "my": [],
    "pa": [],
    "pa-Guru": [],
    "am": [],
    "om": ["om-KE"],
    "ha": ["ha-GH", "ha-NE"],
    "uz": [],
    "uz-Latn": [],
    "yo": ["yo-BJ"],
    "ms": ["ms-BN", "ms-SG"],
    "ig": [],
    "mg": [],
    "ne": ["ne-IN"],
    "as": [],
    "so": ["so-DJ", "so-ET", "so-KE"],
    "si": [],
    "km": [],
    "zu": [],
    "sn": [],
    "kk": [],
    "rw": [],
    "ckb": ["ckb-IR"],
    "qu": ["qu-BO", "qu-EC"],
    "ak": [],
    "be": [],
    "ti": ["ti-ER"],
    "az": [],
    "az-Latn": [],
    "af": ["af-NA"],
    "sr-Latn": ["sr-Latn-BA", "sr-Latn-ME", "sr-Latn-XK"],
    "ii": [],
    "bm": [],
    "ki": [],
    "gsw": ["gsw-FR", "gsw-LI"],
    "ug": [],
    "zgh": [],
    "ff": ["ff-CM", "ff-GN", "ff-MR"],
    "rn": [],
    "sq": ["sq-MK", "sq-XK"],
    "ks": [],
    "hy": [],
    "luy": [],
    "lg": [],
    "lo": [],
    "bem": [],
    "kok": [],
    "luo": [],
    "uz-Cyrl": [],
    "ka": [],
    "ee": ["ee-TG"],
    "mzn": [],
    "bs-Cyrl": [],
    "bs": [],
    "bs-Latn": [],
    "kln": [],
    "kam": [],
    "gl": [],
    "tzm": [],
    "dje": [],
    "kab": [],
    "bo": ["bo-IN"],
    "shi-Latn": [],
    "shi": [],
    "shi-Tfng": [],
    "mn": [],
    "ln": ["ln-AO", "ln-CF", "ln-CG"],
    "ky": [],
    "sg": [],
    "nyn": [],
    "guz": [],
    "cgg": [],
    "xog": [],
    "lrc": ["lrc-IQ"],
    "mer": [],
    "lu": [],
    "teo": ["teo-KE"],
    "brx": [],
    "nd": [],
    "mk": [],
    "uz-Arab": [],
    "mas": ["mas-TZ"],
    "nn": [],
    "kde": [],
    "mfe": [],
    "seh": [],
    "mgh": [],
    "az-Cyrl": [],
    "ga": [],
    "eu": [],
    "yi": [],
    "ce": [],
    "ksb": [],
    "bez": [],
    "ewo": [],
    "fy": [],
    "ebu": [],
    "nus": [],
    "ast": [],
    "asa": [],
    "ses": [],
    "os": ["os-RU"],
    "br": [],
    "cy": [],
    "kea": [],
    "lag": [],
    "sah": [],
    "mt": [],
    "vun": [],
    "rof": [],
    "jmc": [],
    "lb": [],
    "dav": [],
    "dyo": [],
    "dz": [],
    "nnh": [],
    "is": [],
    "khq": [],
    "bas": [],
    "naq": [],
    "mua": [],
    "ksh": [],
    "saq": [],
    "se": ["se-FI", "se-SE"],
    "dua": [],
    "rwk": [],
    "mgo": [],
    "sbp": [],
    "to": [],
    "jgo": [],
    "ksf": [],
    "fo": ["fo-DK"],
    "gd": [],
    "kl": [],
    "rm": [],
    "fur": [],
    "agq": [],
    "haw": [],
    "chr": [],
    "hsb": [],
    "wae": [],
    "nmg": [],
    "lkt": [],
    "twq": [],
    "dsb": [],
    "yav": [],
    "kw": [],
    "gv": [],
    "smn": [],
    "eo": [],
    "tl": [],
}
