load static method
Loads translations asynchronously for the given locale
.
Optionally provide a fallbackLocale
.
Implementation
static Future<void> load(String locale, {String? fallbackLocale}) async {
Logger.root.level = Level.ALL; // defaults to Level.INFO
Logger.root.onRecord.listen((record) {
///
});
final log = Logger('SupaLocalizationManager');
_currentLocale = locale;
_fallbackLocale = fallbackLocale;
if (_cache.containsKey(locale)) {
_translations = _cache[locale]!;
return;
}
try {
final jsonString = await rootBundle.loadString(
'assets/i18n/$locale.json',
);
final Map<String, dynamic> flatMap = json.decode(jsonString);
_translations = flatMap;
_cache[locale] = _translations = flatMap;
} catch (e) {
log.fine('Error loading localization for locale $locale: $e');
_translations = {};
_cache[locale] = _translations;
}
}