load method
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,
));
}