resolveLocaleList method

E resolveLocaleList(
  1. List<Locale> preferredLocales
)

Resolves the best matching locale from a list of preferredLocales (e.g. the device locales sorted by preference).

Implementation

E resolveLocaleList(List<Locale> preferredLocales) {
  for (final locale in preferredLocales) {
    final tag = locale.toLanguageTag();
    final resolved = parse(tag);

    if (resolved != baseLocale) {
      // a non-base locale is always an actual match
      return resolved;
    }

    if (locale.languageCode == baseLocale.languageCode) {
      // the base locale was matched on purpose (same language)
      return resolved;
    }
  }
  return baseLocale;
}