changeLanguage method
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,
);
}
}