resolveLocale function

Locale resolveLocale({
  1. required List<Locale> supportedLocales,
  2. required List<Locale> preferredLocales,
})

Implementation

Locale resolveLocale({
  required List<Locale> supportedLocales,
  required List<Locale> preferredLocales,
}) {
  for (final preferred in preferredLocales) {
    for (final supported in supportedLocales) {
      final langMatched = preferred.languageCode == supported.languageCode;
      final countryMatched = preferred.countryCode == supported.countryCode;
      if (langMatched && countryMatched) {
        return supported;
      }
    }
  }
  for (final preferred in preferredLocales) {
    for (final supported in supportedLocales) {
      final langMatched = preferred.languageCode == supported.languageCode;
      if (langMatched) {
        return supported;
      }
    }
  }
  return supportedLocales.first;
}