setLanguage static method

Future<void> setLanguage({
  1. String? lang,
})

Implementation

static Future<void> setLanguage({String? lang}) async {
  String key = 'lang';
  final prefs = await SharedPreferences.getInstance();

  if (prefs.getString(key) != null && lang == null) {
    lang = prefs.getString(key);
  }

  final languages = Languages();
  if (lang == null) {
    lang = languages.vi;
    CoreConstants.locale = CoreConstants.localeVI;
    CoreConstants.localeLang = CoreConstants.localeVILang;
  } else {
    if (languages.isVI(lang)) {
      CoreConstants.locale = CoreConstants.localeVI;
      CoreConstants.localeLang = CoreConstants.localeVILang;
    } else {
      CoreConstants.locale = CoreConstants.localeEN;
      CoreConstants.localeLang = CoreConstants.localeENLang;
    }
  }

  var file = await rootBundle.loadString(lang);
  await prefs.setString(key, lang);
  phrases = jsonDecode(file);
}