load static method

Future<void> load(
  1. String locale, {
  2. String? fallbackLocale,
})

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;
  }
}