languageToCountry top-level property
Map language to country, (and -optionally- a custom flag).
Keys are in lowerCase!, can be just language or full locale name. Value is a list of: country code, language name and (optionally) flag widget.
You can also use LocaleManager.reassignFlags to update these values.
Do not remove first two keys!
Ref: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
Implementation
// todo use record instead of list
final Map<String, List<dynamic>> languageToCountry = {
/// special entry name for [LocaleSwitcher.supportedLocaleNames] - OS locale
systemLocale: [
'System',
'OS locale',
// if (!kIsWeb && Platform.isAndroid) const Icon(Icons.android),
// if (!kIsWeb && Platform.isIOS) const Icon(Icons.phone_iphone),
const Icon(Icons.language),
],
/// special entry name for [LocaleSwitcher.supportedLocaleNames]
showOtherLocales: [
'Other',
'Show other locales',
const Icon(Icons.expand_more)
],
// Bengali
'bn': ['BD', 'বাঙালি'],
// Greek
'el': ['GR', 'Ελληνικά'],
// Afrikaans
'af': ['ZA', 'Afrikaans'],
// Akan
'ak': ['GH', 'Akan'],
// Amharic
'am': ['ET', 'Amharic'],
// Arabic (Iraq)
'ar_iq': ['IQ', 'Arabic (Iraq)'],
// Arabic
'ar': ['SA', 'العربية'],
// Aymara
'ay': ['BO', 'Aymara'],
// Azerbaijani
'az': ['AZ', 'Azerbaijani'],
// Belarusian
'be': ['BY', 'Belarusian'],
// Bulgarian
'bg': ['BG', 'Bulgarian'],
// Bislama
'bi': ['VU', 'Bislama'],
// Bambara
'bm': ['ML', 'Bambara'],
// Bosnian
'bs': ['BA', 'Bosnian'],
// Catalan
'ca': ['ES', 'Catalan'],
// Cebuano
'ceb': ['PH', 'Cebuano'],
// Chamorro
'ch': ['GU', 'Chamorro'],
// Mari
'chm': ['RU', 'Mari'],
// Corsican
'co': ['FR', 'Corsican'],
// Czech
'cs': ['CZ', 'Czech'],
// Welsh
'cy': ['GB', 'Welsh'],
// Danish
'da': ['DK', 'Danish'],
// German
'de': ['DE', 'Deutsch'],
// Divehi
'dv': ['MV', 'Divehi'],
// Dzongkha
'dz': ['BT', 'Dzongkha'],
// English (Australia)
'en_au': ['AU', 'English (Australia)'],
// English (Canada)
'en_ca': ['CA', 'English (Canada)'],
// English (India)
'en_in': ['IN', 'English (India)'],
// English (Nigeria)
'en_ng': ['NG', 'English (Nigeria)'],
// English (New Zealand)
'en_nz': ['NZ', 'English (New Zealand)'],
// English (South Africa)
'en_za': ['ZA', 'English (South Africa)'],
// English
'en': ['US', 'English'],
// English Great Britain
'en_gb': ['GB', 'English(Britain)'],
// Hindi
'hi': ['IN', 'हिन्दी'],
// Bhojpuri
'bho': ['IN', 'Bhojpuri'],
// Assamese
'as': ['IN', 'Assamese'],
// Punjabi
'pa': ['IN', 'Punjabi'],
// Tamil
'ta': ['IN', 'Tamil'],
// Telugu
'te': ['IN', 'Telugu'],
// Gujarati
'gu': ['IN', 'Gujarati'],
// Kannada
'kn': ['IN', 'Kannada'],
// Malayalam
'ml': ['IN', 'Malayalam'],
// Marathi
'mr': ['IN', 'Marathi'],
// Spanish
'es': ['ES', 'Español'],
// Estonian
'et': ['EE', 'Estonian'],
// Basque - Spain and France
'eu': ['ES', 'Basque'],
// Persian
'fa': ['IR', 'Persian'],
// Finnish
'fi': ['FI', 'Suomi'],
// Filipino
'fil': ['PH', 'Filipino'],
// Fijian
'fj': ['FJ', 'Fijian'],
// Faroese
'fo': ['FO', 'Faroese'],
// French
'fr': ['FR', 'Français'],
// Irish
'ga': ['IE', 'Irish'],
// Galician
'gl': ['ES', 'Galician'],
// Guarani
'gn': ['PY', 'Guarani'],
// Manx
'gv': ['IM', 'Manx'],
// Hausa
'ha': ['NG', 'Hausa'],
// Hawaiian
'haw': ['US', 'Hawaiian'],
// Hebrew
'he': ['IL', 'Hebrew'],
// Hiri Motu
'ho': ['PG', 'Hiri Motu'],
// Croatian
'hr': ['HR', 'Croatian'],
// Haitian
'ht': ['HT', 'Haitian'],
// Hungarian
'hu': ['HU', 'Hungarian'],
// Armenian
'hy': ['AM', 'Armenian'],
// Indonesian
'id': ['ID', 'Bahasa Indonesia'],
// Igbo
'ig': ['NG', 'Igbo'],
// Iloko
'ilo': ['PH', 'Iloko'],
// Icelandic +
'icl': ['IS', 'Icelandic'],
// Italian
'it': ['IT', 'Italiano'],
// Japanese
'ja': ['JP', '日本語'],
// Javanese
'jv': ['ID', 'Javanese'],
// Georgian
'ka': ['GE', 'Georgian'],
// Kazakh
'kk': ['KZ', 'Kazakh'],
// Kalaallisut
'kl': ['GL', 'Kalaallisut'],
// Central Khmer
'km': ['KH', 'Central Khmer'],
// Korean
'ko': ['KR', '한국어'],
// Krio
'kri': ['SL', 'Krio'],
// Kurdish
'ku': ['TR', 'Kurdish'],
// Kirghiz
'ky': ['KG', 'Kirghiz'],
// Latin
'la': ['VA', 'Latin'],
// Luxembourgish
'lb': ['LU', 'Luxembourgish'],
// Ganda
'lg': ['UG', 'Ganda'],
// Lingala
'ln': ['CD', 'Lingala'],
// Lao
'lo': ['LA', 'Lao'],
// Lithuanian
'lt': ['LT', 'Lithuanian'],
// Luba-Katanga
'lu': ['CD', 'Luba-Katanga'],
// Latvian
'lv': ['LV', 'Latvian'],
// Malagasy
'mg': ['MG', 'Malagasy'],
// Marshallese
'mh': ['MH', 'Marshallese'],
// Maori
'mi': ['NZ', 'Maori'],
// Macedonian
'mk': ['MK', 'Macedonian'],
// Mongolian
'mn': ['MN', 'Mongolian'],
// Malay
'ms': ['MY', 'Malay'],
// Maltese
'mt': ['MT', 'Maltese'],
// Burmese
'my': ['MM', 'Burmese'],
// Nauru
'na': ['NR', 'Nauru'],
// North Ndebele
'nd': ['ZW', 'North Ndebele'],
// Nepali
'ne': ['NP', 'Nepali'],
// Nederlands
// Belgium
// Suriname
// France (Nord)
'nl': ['NL', 'Dutch'],
// Norwegian
'no': ['NO', 'Norsk'],
// Norwegian Bokmål
'nb': ['NO', 'Norwegian Bokmål'],
// Norwegian Nynorsk
'nn': ['NO', 'Norwegian Nynorsk'],
// South Ndebele
'nr': ['ZA', 'South Ndebele'],
// Chichewa
'ny': ['MW', 'Chichewa'],
// Papiamento
'pap': ['AW', 'Papiamento'],
// Polish
'pl': ['PL', 'Polski'],
// Pashto
'ps': ['AF', 'Pashto'],
// Portuguese (Brazil)
'pt_br': ['BR', 'Português (Brazil)'],
// Portuguese
'pt': ['PT', 'Português'],
// Rundi
'rn': ['BI', 'Rundi'],
// Romanian
'ro': ['RO', 'Romanian'],
// Russian
'ru': ['RU', 'Русский'],
// Western Mari
'mrj': ['RU', 'Western Mari'],
// Kinyarwanda
'rw': ['RW', 'Kinyarwanda'],
// Sindhi
'sd': ['PK', 'Sindhi'],
// Sango
'sg': ['CF', 'Sango'],
// Sinhala
'si': ['LK', 'Sinhala'],
// Slovak
'sk': ['SK', 'Slovak'],
// Slovenian
'sl': ['SI', 'Slovenian'],
// Samoan
'sm': ['WS', 'Samoan'],
// Shona
'sn': ['ZW', 'Shona'],
// Somali
'so': ['SO', 'Somali'],
// Albanian
'sq': ['AL', 'Albanian'],
// Serbian
'sr': ['RS', 'Serbian'],
// Swati
'ss': ['SZ', 'Swati'],
// Southern Sotho
'st': ['LS', 'Southern Sotho'],
// Sundanese
'su': ['ID', 'Sundanese'],
// Swedish
'sv': ['SE', 'Svenska'],
// Swahili
'sw': ['TZ', 'Swahili'],
// Tajik
'tg': ['TJ', 'Tajik'],
// Thai
'th': ['TH', 'ไทย'],
// Turkmen
'tk': ['TM', 'Turkmen'],
// Tagalog
'tl': ['PH', 'Tagalog'],
// Tswana
'tn': ['BW', 'Tswana'],
// Tonga
'to': ['TO', 'Tonga'],
// Turkish
'tr': ['TR', 'Türkçe'],
// Tahitian
'ty': ['PF', 'Tahitian'],
// Ukrainian
'uk': ['UA', 'Українська'],
// Urdu
'ur': ['PK', 'Urdu'],
// Uzbek
'uz': ['UZ', 'Uzbek'],
// Vietnamese
'vi': ['VN', 'Tiếng Việt'],
// Xhosa
'xh': ['ZA', 'Xhosa'],
// Unknown Language
'xx': ['XX', 'Unknown Language'],
// Yiddish
'yi': ['US', 'Yiddish'],
// Yoruba
'yo': ['NG', 'Yoruba'],
// Yucateco
'yua': ['MX', 'Yucateco'],
// Chinese - Traditional
'zh_tw': ['TW', 'Chinese - Traditional'],
// Chinese
'zh': ['CN', '中文'],
// Zulu
'zu': ['ZA', 'Zulu']
};