locale property

Locale get locale

The current Locale

Implementation

static Locale get locale {
  Locale locale;
  if (_appLocale != null) {
    locale = _appLocale!;
  } else {
    final preferredLocales =
        WidgetsBinding.instance.platformDispatcher.locales;
    if (preferredLocales.isNotEmpty) {
      locale = preferredLocales.first;
      _appLocale = locale;
      _prevLocale ??= locale;
    } else {
      locale = const Locale('en', 'US');
    }
  }
  return locale;
}
set locale (Locale? locale)

Assign a new Locale

Implementation

static set locale(Locale? locale) {
  //
  if (locale == null) {
    return;
  }
  // Has to be among the supported Locales
//    if (_localesSupported.isEmpty || _localesSupported.contains(locale)) {
  if (_appLocale == null) {
    _appLocale = locale;
    // Record the 'previous' assigned Locale
    _prevLocale ??= locale;
  } else {
    // We're changing the Locale
    if (locale != _appLocale) {
      // Important to reset to false to find any new translations.
      _localeSet = false;
      _prevLocale = _appLocale;
      _appLocale = locale;
    }
    // else, if they're the same, don't change anything.
  }
//    }
}