fromName static method

LanguageMode fromName(
  1. String? name,
  2. List<I18nLang> langs, {
  3. required String systemLabel,
  4. String? fallbackLocale,
})

Implementation

static LanguageMode fromName(
  String? name,
  List<I18nLang> langs, {
  required String systemLabel,
  String? fallbackLocale,
}) {
  final normalizedName = I18n.normalizeLocaleKey(name);
  final normalizedFallback = I18n.normalizeLocaleKey(fallbackLocale);
  if (normalizedName == null || normalizedName == 'system') {
    return LanguageMode.system(systemLabel);
  }

  final match = langs.firstWhere(
    (l) => l.locale == normalizedName,
    orElse: () => langs.firstWhere(
      (l) => l.locale == normalizedFallback,
      orElse: () => langs.first,
    ),
  );
  return LanguageMode.locale(match);
}