changeLanguage method

Future<void> changeLanguage(
  1. Language newLanguage
)

Changes the current language, fetching translations if necessary.

Implementation

Future<void> changeLanguage(Language newLanguage) async {
  if (_currentLanguage == newLanguage) {
    return;
  }
  _previousLanguage = _currentLanguage;
  _currentLanguage = newLanguage;
  notifyListeners();

  if (_needsRefresh(newLanguage.code)) {
    log('Refreshing translations for ${newLanguage.code}');
    await _refreshCurrentLanguage();
  } else {
    await _saveToCache(
      newLanguage.code,
      _cache[newLanguage.code]!,
      version: _baseVersion,
    );
  }
}