# List of locales for LocalizationEditor : MIT License
# @author Vladimir Petrenko
class_name LocalizationLocalesList

const LOCALES = {
	"aa": "Afar",
	"aa_DJ": "Afar (Djibouti)",
	"aa_ER": "Afar (Eritrea)",
	"aa_ET": "Afar (Ethiopia)",
	"af": "Afrikaans",
	"af_ZA": "Afrikaans (South Africa)",
	"agr_PE": "Aguaruna (Peru)",
	"ak_GH": "Akan (Ghana)",
	"am_ET": "Amharic (Ethiopia)",
	"an_ES": "Aragonese (Spain)",
	"anp_IN": "Angika (India)",
	"ar": "Arabic",
	"ar_AE": "Arabic (United Arab Emirates)",
	"ar_BH": "Arabic (Bahrain)",
	"ar_DZ": "Arabic (Algeria)",
	"ar_EG": "Arabic (Egypt)",
	"ar_IN": "Arabic (India)",
	"ar_IQ": "Arabic (Iraq)",
	"ar_JO": "Arabic (Jordan)",
	"ar_KW": "Arabic (Kuwait)",
	"ar_LB": "Arabic (Lebanon)",
	"ar_LY": "Arabic (Libya)",
	"ar_MA": "Arabic (Morocco)",
	"ar_OM": "Arabic (Oman)",
	"ar_QA": "Arabic (Qatar)",
	"ar_SA": "Arabic (Saudi Arabia)",
	"ar_SD": "Arabic (Sudan)",
	"ar_SS": "Arabic (South Soudan)",
	"ar_SY": "Arabic (Syria)",
	"ar_TN": "Arabic (Tunisia)",
	"ar_YE": "Arabic (Yemen)",
	"as_IN": "Assamese (India)",
	"ast_ES": "Asturian (Spain)",
	"ayc_PE": "Southern Aymara (Peru)",
	"ay_PE": "Aymara (Peru)",
	"az_AZ": "Azerbaijani (Azerbaijan)",
	"be": "Belarusian",
	"be_BY": "Belarusian (Belarus)",
	"bem_ZM": "Bemba (Zambia)",
	"ber_DZ": "Berber languages (Algeria)",
	"ber_MA": "Berber languages (Morocco)",
	"bg": "Bulgarian",
	"bg_BG": "Bulgarian (Bulgaria)",
	"bhb_IN": "Bhili (India)",
	"bho_IN": "Bhojpuri (India)",
	"bi_TV": "Bislama (Tuvalu)",
	"bn": "Bengali",
	"bn_BD": "Bengali (Bangladesh)",
	"bn_IN": "Bengali (India)",
	"bo": "Tibetan",
	"bo_CN": "Tibetan (China)",
	"bo_IN": "Tibetan (India)",
	"br_FR": "Breton (France)",
	"brx_IN": "Bodo (India)",
	"bs_BA": "Bosnian (Bosnia and Herzegovina)",
	"byn_ER": "Bilin (Eritrea)",
	"ca": "Catalan",
	"ca_AD": "Catalan (Andorra)",
	"ca_ES": "Catalan (Spain)",
	"ca_FR": "Catalan (France)",
	"ca_IT": "Catalan (Italy)",
	"ce_RU": "Chechen (Russia)",
	"chr_US": "Cherokee (United States)",
	"cmn_TW": "Mandarin Chinese (Taiwan)",
	"crh_UA": "Crimean Tatar (Ukraine)",
	"csb_PL": "Kashubian (Poland)",
	"cs": "Czech",
	"cs_CZ": "Czech (Czech Republic)",
	"cv_RU": "Chuvash (Russia)",
	"cy_GB": "Welsh (United Kingdom)",
	"da": "Danish",
	"da_DK": "Danish (Denmark)",
	"de": "German",
	"de_AT": "German (Austria)",
	"de_BE": "German (Belgium)",
	"de_CH": "German (Switzerland)",
	"de_DE": "German (Germany)",
	"de_IT": "German (Italy)",
	"de_LU": "German (Luxembourg)",
	"doi_IN": "Dogri (India)",
	"dv_MV": "Dhivehi (Maldives)",
	"dz_BT": "Dzongkha (Bhutan)",
	"el": "Greek",
	"el_CY": "Greek (Cyprus)",
	"el_GR": "Greek (Greece)",
	"en": "English",
	"en_AG": "English (Antigua and Barbuda)",
	"en_AU": "English (Australia)",
	"en_BW": "English (Botswana)",
	"en_CA": "English (Canada)",
	"en_DK": "English (Denmark)",
	"en_GB": "English (United Kingdom)",
	"en_HK": "English (Hong Kong)",
	"en_IE": "English (Ireland)",
	"en_IL": "English (Israel)",
	"en_IN": "English (India)",
	"en_NG": "English (Nigeria)",
	"en_NZ": "English (New Zealand)",
	"en_PH": "English (Philippines)",
	"en_SG": "English (Singapore)",
	"en_US": "English (United States)",
	"en_ZA": "English (South Africa)",
	"en_ZM": "English (Zambia)",
	"en_ZW": "English (Zimbabwe)",
	"eo": "Esperanto",
	"es": "Spanish",
	"es_AR": "Spanish (Argentina)",
	"es_BO": "Spanish (Bolivia)",
	"es_CL": "Spanish (Chile)",
	"es_CO": "Spanish (Colombia)",
	"es_CR": "Spanish (Costa Rica)",
	"es_CU": "Spanish (Cuba)",
	"es_DO": "Spanish (Dominican Republic)",
	"es_EC": "Spanish (Ecuador)",
	"es_ES": "Spanish (Spain)",
	"es_GT": "Spanish (Guatemala)",
	"es_HN": "Spanish (Honduras)",
	"es_MX": "Spanish (Mexico)",
	"es_NI": "Spanish (Nicaragua)",
	"es_PA": "Spanish (Panama)",
	"es_PE": "Spanish (Peru)",
	"es_PR": "Spanish (Puerto Rico)",
	"es_PY": "Spanish (Paraguay)",
	"es_SV": "Spanish (El Salvador)",
	"es_US": "Spanish (United States)",
	"es_UY": "Spanish (Uruguay)",
	"es_VE": "Spanish (Venezuela)",
	"et": "Estonian",
	"et_EE": "Estonian (Estonia)",
	"eu": "Basque",
	"eu_ES": "Basque (Spain)",
	"fa": "Persian",
	"fa_IR": "Persian (Iran)",
	"ff_SN": "Fulah (Senegal)",
	"fi": "Finnish",
	"fi_FI": "Finnish (Finland)",
	"fil": "Filipino",
	"fil_PH": "Filipino (Philippines)",
	"fo_FO": "Faroese (Faroe Islands)",
	"fr": "French",
	"fr_BE": "French (Belgium)",
	"fr_CA": "French (Canada)",
	"fr_CH": "French (Switzerland)",
	"fr_FR": "French (France)",
	"fr_LU": "French (Luxembourg)",
	"fur_IT": "Friulian (Italy)",
	"fy_DE": "Western Frisian (Germany)",
	"fy_NL": "Western Frisian (Netherlands)",
	"ga": "Irish",
	"ga_IE": "Irish (Ireland)",
	"gd_GB": "Scottish Gaelic (United Kingdom)",
	"gez_ER": "Geez (Eritrea)",
	"gez_ET": "Geez (Ethiopia)",
	"gl_ES": "Galician (Spain)",
	"gu_IN": "Gujarati (India)",
	"gv_GB": "Manx (United Kingdom)",
	"hak_TW": "Hakka Chinese (Taiwan)",
	"ha_NG": "Hausa (Nigeria)",
	"he": "Hebrew",
	"he_IL": "Hebrew (Israel)",
	"hi": "Hindi",
	"hi_IN": "Hindi (India)",
	"hne_IN": "Chhattisgarhi (India)",
	"hr": "Croatian",
	"hr_HR": "Croatian (Croatia)",
	"hsb_DE": "Upper Sorbian (Germany)",
	"ht_HT": "Haitian (Haiti)",
	"hu": "Hungarian",
	"hu_HU": "Hungarian (Hungary)",
	"hus_MX": "Huastec (Mexico)",
	"hy_AM": "Armenian (Armenia)",
	"ia_FR": "Interlingua (France)",
	"id": "Indonesian",
	"id_ID": "Indonesian (Indonesia)",
	"ig_NG": "Igbo (Nigeria)",
	"ik_CA": "Inupiaq (Canada)",
	"is": "Icelandic",
	"is_IS": "Icelandic (Iceland)",
	"it": "Italian",
	"it_CH": "Italian (Switzerland)",
	"it_IT": "Italian (Italy)",
	"iu_CA": "Inuktitut (Canada)",
	"ja": "Japanese",
	"ja_JP": "Japanese (Japan)",
	"kab_DZ": "Kabyle (Algeria)",
	"ka": "Georgian",
	"ka_GE": "Georgian (Georgia)",
	"kk_KZ": "Kazakh (Kazakhstan)",
	"kl_GL": "Kalaallisut (Greenland)",
	"km_KH": "Central Khmer (Cambodia)",
	"kn_IN": "Kannada (India)",
	"kok_IN": "Konkani (India)",
	"ko": "Korean",
	"ko_KR": "Korean (South Korea)",
	"ks_IN": "Kashmiri (India)",
	"ku": "Kurdish",
	"ku_TR": "Kurdish (Turkey)",
	"kw_GB": "Cornish (United Kingdom)",
	"ky_KG": "Kirghiz (Kyrgyzstan)",
	"lb_LU": "Luxembourgish (Luxembourg)",
	"lg_UG": "Ganda (Uganda)",
	"li_BE": "Limburgan (Belgium)",
	"li_NL": "Limburgan (Netherlands)",
	"lij_IT": "Ligurian (Italy)",
	"ln_CD": "Lingala (Congo)",
	"lo_LA": "Lao (Laos)",
	"lt": "Lithuanian",
	"lt_LT": "Lithuanian (Lithuania)",
	"lv": "Latvian",
	"lv_LV": "Latvian (Latvia)",
	"lzh_TW": "Literary Chinese (Taiwan)",
	"mag_IN": "Magahi (India)",
	"mai_IN": "Maithili (India)",
	"mg_MG": "Malagasy (Madagascar)",
	"mh_MH": "Marshallese (Marshall Islands)",
	"mhr_RU": "Eastern Mari (Russia)",
	"mi": "Māori",
	"mi_NZ": "Māori (New Zealand)",
	"miq_NI": "Mískito (Nicaragua)",
	"mk": "Macedonian",
	"mk_MK": "Macedonian (Macedonia)",
	"ml": "Malayalam",
	"ml_IN": "Malayalam (India)",
	"mni_IN": "Manipuri (India)",
	"mn_MN": "Mongolian (Mongolia)",
	"mr_IN": "Marathi (India)",
	"ms": "Malay",
	"ms_MY": "Malay (Malaysia)",
	"mt": "Maltese",
	"mt_MT": "Maltese (Malta)",
	"my_MM": "Burmese (Myanmar)",
	"myv_RU": "Erzya (Russia)",
	"nah_MX": "Nahuatl languages (Mexico)",
	"nan_TW": "Min Nan Chinese (Taiwan)",
	"nb": "Norwegian Bokmål",
	"nb_NO": "Norwegian Bokmål (Norway)",
	"nds_DE": "Low German (Germany)",
	"nds_NL": "Low German (Netherlands)",
	"ne_NP": "Nepali (Nepal)",
	"nhn_MX": "Central Nahuatl (Mexico)",
	"niu_NU": "Niuean (Niue)",
	"niu_NZ": "Niuean (New Zealand)",
	"nl": "Dutch",
	"nl_AW": "Dutch (Aruba)",
	"nl_BE": "Dutch (Belgium)",
	"nl_NL": "Dutch (Netherlands)",
	"nn": "Norwegian Nynorsk",
	"nn_NO": "Norwegian Nynorsk (Norway)",
	"nr_ZA": "South Ndebele (South Africa)",
	"nso_ZA": "Pedi (South Africa)",
	"oc_FR": "Occitan (France)",
	"om": "Oromo",
	"om_ET": "Oromo (Ethiopia)",
	"om_KE": "Oromo (Kenya)",
	"or_IN": "Oriya (India)",
	"os_RU": "Ossetian (Russia)",
	"pa_IN": "Panjabi (India)",
	"pap": "Papiamento",
	"pap_AN": "Papiamento (Netherlands Antilles)",
	"pap_AW": "Papiamento (Aruba)",
	"pap_CW": "Papiamento (Curaçao)",
	"pa_PK": "Panjabi (Pakistan)",
	"pl": "Polish",
	"pl_PL": "Polish (Poland)",
	"pr": "Pirate",
	"ps_AF": "Pushto (Afghanistan)",
	"pt": "Portuguese",
	"pt_BR": "Portuguese (Brazil)",
	"pt_PT": "Portuguese (Portugal)",
	"quy_PE": "Ayacucho Quechua (Peru)",
	"quz_PE": "Cusco Quechua (Peru)",
	"raj_IN": "Rajasthani (India)",
	"ro": "Romanian",
	"ro_RO": "Romanian (Romania)",
	"ru": "Russian",
	"ru_RU": "Russian (Russia)",
	"ru_UA": "Russian (Ukraine)",
	"rw_RW": "Kinyarwanda (Rwanda)",
	"sa_IN": "Sanskrit (India)",
	"sat_IN": "Santali (India)",
	"sc_IT": "Sardinian (Italy)",
	"sco": "Scots",
	"sd_IN": "Sindhi (India)",
	"se_NO": "Northern Sami (Norway)",
	"sgs_LT": "Samogitian (Lithuania)",
	"shs_CA": "Shuswap (Canada)",
	"sid_ET": "Sidamo (Ethiopia)",
	"si": "Sinhala",
	"si_LK": "Sinhala (Sri Lanka)",
	"sk": "Slovak",
	"sk_SK": "Slovak (Slovakia)",
	"sl": "Slovenian",
	"sl_SI": "Slovenian (Slovenia)",
	"so": "Somali",
	"so_DJ": "Somali (Djibouti)",
	"so_ET": "Somali (Ethiopia)",
	"so_KE": "Somali (Kenya)",
	"so_SO": "Somali (Somalia)",
	"son_ML": "Songhai languages (Mali)",
	"sq": "Albanian",
	"sq_AL": "Albanian (Albania)",
	"sq_KV": "Albanian (Kosovo)",
	"sq_MK": "Albanian (Macedonia)",
	"sr": "Serbian",
	"sr_Cyrl": "Serbian (Cyrillic)",
	"sr_Latn": "Serbian (Latin)",
	"sr_ME": "Serbian (Montenegro)",
	"sr_RS": "Serbian (Serbia)",
	"ss_ZA": "Swati (South Africa)",
	"st_ZA": "Southern Sotho (South Africa)",
	"sv": "Swedish",
	"sv_FI": "Swedish (Finland)",
	"sv_SE": "Swedish (Sweden)",
	"sw_KE": "Swahili (Kenya)",
	"sw_TZ": "Swahili (Tanzania)",
	"szl_PL": "Silesian (Poland)",
	"ta": "Tamil",
	"ta_IN": "Tamil (India)",
	"ta_LK": "Tamil (Sri Lanka)",
	"tcy_IN": "Tulu (India)",
	"te": "Telugu",
	"te_IN": "Telugu (India)",
	"tg_TJ": "Tajik (Tajikistan)",
	"the_NP": "Chitwania Tharu (Nepal)",
	"th": "Thai",
	"th_TH": "Thai (Thailand)",
	"ti": "Tigrinya",
	"ti_ER": "Tigrinya (Eritrea)",
	"ti_ET": "Tigrinya (Ethiopia)",
	"tig_ER": "Tigre (Eritrea)",
	"tk_TM": "Turkmen (Turkmenistan)",
	"tl_PH": "Tagalog (Philippines)",
	"tn_ZA": "Tswana (South Africa)",
	"tr": "Turkish",
	"tr_CY": "Turkish (Cyprus)",
	"tr_TR": "Turkish (Turkey)",
	"ts_ZA": "Tsonga (South Africa)",
	"tt_RU": "Tatar (Russia)",
	"ug_CN": "Uighur (China)",
	"uk": "Ukrainian",
	"uk_UA": "Ukrainian (Ukraine)",
	"unm_US": "Unami (United States)",
	"ur": "Urdu",
	"ur_IN": "Urdu (India)",
	"ur_PK": "Urdu (Pakistan)",
	"uz": "Uzbek",
	"uz_UZ": "Uzbek (Uzbekistan)",
	"ve_ZA": "Venda (South Africa)",
	"vi": "Vietnamese",
	"vi_VN": "Vietnamese (Vietnam)",
	"wa_BE": "Walloon (Belgium)",
	"wae_CH": "Walser (Switzerland)",
	"wal_ET": "Wolaytta (Ethiopia)",
	"wo_SN": "Wolof (Senegal)",
	"xh_ZA": "Xhosa (South Africa)",
	"yi_US": "Yiddish (United States)",
	"yo_NG": "Yoruba (Nigeria)",
	"yue_HK": "Yue Chinese (Hong Kong)",
	"zh": "Chinese",
	"zh_CN": "Chinese (China)",
	"zh_HK": "Chinese (Hong Kong)",
	"zh_SG": "Chinese (Singapore)",
	"zh_TW": "Chinese (Taiwan)",
	"zu_ZA": "Zulu (South Africa)"
}

static func label_by_code(code: String) -> String:
	if LOCALES.has(code.to_lower()):
		return code + " " + LOCALES[code.to_lower()]
	return ""

static func has_code(code: String) -> bool:
	for locale in LOCALES:
		var locale_code_lower = locale.to_lower()
		var code_lower = code.to_lower()
		if locale_code_lower.contains(code_lower):
			return true
	return false
