init method

Future<void> init({
  1. LocaleType localeType = LocaleType.asDefined,
  2. required String languageCode,
  3. String assetsDirectory = 'lang/',
})

Initialize NyLocalization with the specified configuration.

Implementation

Future<void> init({
  LocaleType localeType = LocaleType.asDefined,
  required String languageCode,
  String assetsDirectory = 'lang/',
}) async {
  if (!assetsDirectory.endsWith('/')) {
    assetsDirectory = '$assetsDirectory/';
  }
  _assetsDir = assetsDirectory;
  _localeType = localeType;

  _locale = Locale(languageCode);

  if (_localeType == LocaleType.device) {
    final deviceLocale = PlatformDispatcher.instance.locale;
    _locale = Locale(deviceLocale.languageCode);
  }

  // Get the current language from the language switcher if available.
  // Skip in test mode to avoid storage hangs.
  if (!Nylo.isTestMode) {
    final savedLanguage = await LanguageSwitcher.currentLanguage();
    if (savedLanguage != null) {
      _locale = Locale(savedLanguage.entries.first.key);
    }
  }

  _values = await _loadLanguageFile(
    _locale!.languageCode,
    fallbackLanguageCode: languageCode,
  );
}