localeResolutionCallback static method

Locale? localeResolutionCallback(
  1. Locale? locale,
  2. Iterable<Locale> supportedLocales
)

Get the best matching locale for a given locale

Implementation

static Locale? localeResolutionCallback(
  Locale? locale,
  Iterable<Locale> supportedLocales,
) {
  if (locale == null) {
    return supportedLocales.first;
  }

  // Check if the exact locale is supported
  for (final supportedLocale in supportedLocales) {
    if (supportedLocale.languageCode == locale.languageCode &&
        supportedLocale.countryCode == locale.countryCode) {
      return supportedLocale;
    }
  }

  // Check if the language is supported (ignore country)
  for (final supportedLocale in supportedLocales) {
    if (supportedLocale.languageCode == locale.languageCode) {
      return supportedLocale;
    }
  }

  // Return default locale (English)
  return supportedLocales.first;
}