load method

Future<bool> load()

Loads the localized JSON assets.

Falls back to English (en.json) if the requested language is not supported or fails to load.

Implementation

Future<bool> load() async {
  try {
    final jsonString = await rootBundle.loadString(
      'packages/bootstrap_ui_flutter/assets/l10n/${locale.languageCode}.json',
    );
    final Map<String, dynamic> jsonMap =
        json.decode(jsonString) as Map<String, dynamic>;
    _localizedStrings = jsonMap.map(
      (key, value) => MapEntry(key, value.toString()),
    );
    return true;
  } catch (_) {
    // Fallback to English on error
    try {
      final jsonString = await rootBundle.loadString(
        'packages/bootstrap_ui_flutter/assets/l10n/en.json',
      );
      final Map<String, dynamic> jsonMap =
          json.decode(jsonString) as Map<String, dynamic>;
      _localizedStrings = jsonMap.map(
        (key, value) => MapEntry(key, value.toString()),
      );
      return true;
    } catch (e) {
      _localizedStrings = {};
      return false;
    }
  }
}