import random


class LocaleGenerator:
    """
    https://zh.wikipedia.org/wiki/%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE
    """
    locales = (
        "af",
        "af-ZA",
        "am",
        "am-ET",
        "sq",
        "ar",
        "ar-AE",
        "ar-BH",
        "ar-DZ",
        "ar-EG",
        "ar-IQ",
        "ar-JO",
        "ar-KW",
        "ar-LB",
        "ar-LY",
        "ar-MA",
        "arn",
        "arn-CL",
        "ar-OM",
        "ar-QA",
        "ar-SA",
        "ar-SY",
        "ar-TN",
        "ar-YE",
        "as",
        "as-IN",
        "hy",
        "az",
        "az-Latn",
        "az-Cyrl",
        "az-Latn-AZ",
        "az-Cyrl-AZ",
        "ba",
        "ba-RU",
        "eu",
        "be",
        "be-BY",
        "bg",
        "bg-BG",
        "bn",
        "bg-BD",
        "bg-IN",
        "bo",
        "bo-CN",
        "bo",
        "br-FR",
        "bs",
        "bs-Cyrl",
        "bs-Cyrl-BA",
        "bs-Latn",
        "bs-Latn-BA",
        "ca",
        "ca-ES",
        "zh",
        "zh-CN",
        "zh-CN_stroke",
        "zh-Hans",
        "zh-Hant",
        "zh-HK",
        "zh-HK_radstr",
        "zh-MO",
        "zh-MO_radstr",
        "zh-MO_stroke",
        "zh-SG",
        "zh-SG_stroke",
        "zh-TW",
        "zh-TW",
        "zh-TW_pronun",
        "zh-TW_radstr",
        "hr",
        "CO",
        "co-FR",
        "CS",
        "cs-CZ",
        "cy",
        "cy-GB",
        "da",
        "da-DK",
        "nl-nl",
        "nl-be",
        "en-029",
        "en-AU",
        "en-BZ",
        "en-CA",
        "en-CB",
        "en-IN",
        "en-IE",
        "en-JM",
        "en-MY",
        "en-NZ",
        "en-PH",
        "en-SG",
        "en-ZA",
        "en-TT",
        "en-GB",
        "en-US",
        "en-ZW",
        "et",
        "fa",
        "fi",
        "fo.",
        "fr-fr",
        "fr-be",
        "fr-ca",
        "fr-lu",
        "fr-ch",
        "gd-ie",
        "gd",
        "de-DE",
        "de-DE_phoneb",
        "de-AT",
        "de-LI",
        "de-LU",
        "de-CH",
        "dsb",
        "dsb_DE",
        "dy",
        "dv_MF",
        "el",
        "el-GR",
        "he",
        "hi",
        "hu",
        "js",
        "id",
        "it-it",
        "it-ch",
        "ja",
        "ko",
        "lv",
        "lt",
        "mk",
        "ms-my",
        "ms-bn",
        "mt",
        "mn",
        "np-no",
        "nn-no",
        "pl",
        "pt-pt",
        "pt-br",
        "rm",
        "ro",
        "ro-mo",
        "ru",
        "ru-mo",
        "sa",
        "sr-sp",
        "sr-sp",
        "tn",
        "sl",
        "sk",
        "sb",
        "es-es",
        "es-ar",
        "es-bo",
        "es-cl",
        "es-co",
        "es-cr",
        "es-do",
        "es-ec",
        "es-gt",
        "es-hn",
        "es-mx",
        "es-ni",
        "es-pa",
        "es-pe",
        "es-pr",
        "es-py",
        "es-SV",
        "es-uy",
        "es-ve",
        "st",
        "SW",
        "sv-se",
        "sv-fi",
        "ta",
        "tt",
        "th",
        "tr",
        "ts",
        "uk",
        "ur",
        "uz-uz",
        "uz-uz",
        "vi",
        "xh",
        "yi",
        "zu",
    )

    def gen(self, *args, **kwargs):
        return random.choice(self.locales)
