getLocaleName function
Returns the name of a locale code.
Implementation
String getLocaleName(String locale,
{String? defaultName,
bool nativeName = false,
String? nativeLocale,
bool preserveLatinNames = true}) {
locale = Intl.canonicalizedLocale(locale);
var localeShort = Intl.shortLocale(locale);
var name = _allLocales[locale];
name ??= _allLocales[localeShort];
if (nativeName && name != null) {
var nameGlobal = name;
if (nativeLocale == '*') {
if (_nativeLocalesNames.containsKey(locale)) {
name = _nativeLocalesNames[locale];
}
} else {
if (nativeLocale == null || nativeLocale == '.') {
nativeLocale = getCurrentLocale();
}
var nativeLocaleShort = Intl.shortLocale(nativeLocale);
if (nativeLocale == locale || localeShort == nativeLocaleShort) {
name = _nativeLocalesNames[locale];
}
}
if (name != nameGlobal && !_latinLanguages.contains(localeShort)) {
var nameShort = _allLocales[localeShort];
name = '$name -- $nameShort';
}
}
return name ?? defaultName!;
}