Country.fromCode constructor

Country.fromCode(
  1. String code, [
  2. String? languageCode
])

Factory constructor to create a Country from a 2-letter country code. Optionally specify a language code.

Implementation

factory Country.fromCode(String code, [String? languageCode]) {
  code = code.toUpperCase();
  languageCode ??= kCountryLanguageCodes[code];
  languageCode = languageCode?.toLowerCase();

  // Special handling for Chinese variants
  if (["CN", "TW"].contains(code)) {
    languageCode = "zh_$code";
  }

  return Country._(
    code,
    codeInIso3: kCountryCodesInIso3[code],
    currencyCode: kCountryCurrencyCodes[code],
    currencyName: kCountryCurrencyNamesInEnglish[code],
    currencyNameInNative: kCountryCurrencyNamesInNative[code],
    currencySymbol: kCountryCurrencySymbols[code],
    flag: kCountryFlags[code],
    languageCode: languageCode,
    languageName: kLanguageNamesInEnglish[languageCode],
    languageNameInNative: kLanguageNamesInNative[languageCode],
    languageNumericalDigits: kDigits[languageCode],
    name: kCountryNamesInEnglish[code],
    nameInNative: kCountryNamesInNative[code],
    nationality: kCountryNationalitiesInEnglish[code],
    nationalityInNative: kCountryNationalitiesInNative[code],
    phoneCode: kCountryPhoneCodes[code],
  );
}