Translator constructor

Translator({
  1. TranslatorDelegate? delegate,
  2. required Locale defaultLocale,
  3. required Locale fallbackLocale,
})

Implementation

Translator({
  TranslatorDelegate? delegate,
  required Locale defaultLocale,
  required Locale fallbackLocale,
})  : _delegate = delegate,
      _currentLocale = defaultLocale,
      _fallbackLanguage = fallbackLocale {
  if (delegate != null) {
    delegate.cache().then((source) {
      if (source == null || source.isEmpty) return {};
      final x = jsonDecode(source);
      if (x is! Map) return {};
      final entries = x.entries.map((e) {
        final key = e.key;
        final value = e.value;
        if (value is! Map || key is! String) return null;
        final entries = value.entries.map((e) {
          final key = e.key;
          final value = e.value;
          if (value is! String || key is! String) return null;
          return MapEntry(key, value);
        }).whereType<MapEntry<String, String>>();
        return MapEntry<String, Map<String, String>>(
            key, Map.fromEntries(entries));
      }).whereType<MapEntry<String, Map<String, String>>>();
      final cache = Map.fromEntries(entries);
      _cache.addAll(cache);
      notifyListeners();
    });
  }
}