load method

Future<void> load(
  1. String currentLocale, {
  2. String currentFlavor = defaultFlavorName,
})

Init Intl with the currentLocale and currentFlavor, it will call dataLoader to load the locale data needed to do the translations

Implementation

Future<void> load(String currentLocale,
    {String currentFlavor = defaultFlavorName}) async {
  Intl.defaultLocale = currentLocale;
  this._currentFlavor = currentFlavor;
  await initializeDateFormatting(Intl.defaultLocale);

  try {
    final data = await dataLoader(defaultLocale, defaultFlavor);
    _parseMetaData(data);
    if (currentFlavor != defaultFlavor && currentLocale != defaultLocale) {
      final data = await dataLoader(defaultLocale, currentFlavor);
      _loadLocale(defaultLocale, data, flavor: currentFlavor);
    }

    if (currentLocale != defaultLocale) {
      final data = await dataLoader(currentLocale, defaultFlavor);
      _loadLocale(currentLocale, data, flavor: defaultFlavor);
    }
    if (currentFlavor != defaultFlavor) {
      final data = await dataLoader(currentLocale, currentFlavor);
      _loadLocale(currentLocale, data, flavor: currentFlavor);
    }
  } catch (e, stack) {
    onError?.call(e, stack);
  }

  messageLookup.addLocale(
      defaultLocale,
      (locale) => CustomLookup(
            localeName: locale,
            flavorName: currentFlavor,
            defaultFlavorName: defaultFlavor,
            defaultLocaleName: defaultLocale,
          ));
  messageLookup.addLocale(
      currentLocale,
      (locale) => CustomLookup(
            localeName: locale,
            flavorName: currentFlavor,
            defaultFlavorName: defaultFlavor,
            defaultLocaleName: defaultLocale,
          ));
}