setLanguage static method

Future<void> setLanguage({
  1. String lang = 'assets/json/vi.json',
  2. bool setEnv = false,
  3. bool setLogin = false,
})

Implementation

static Future<void> setLanguage({String lang = 'assets/json/vi.json', bool setEnv = false, bool setLogin = false}) async {
  var prefs = await SharedPreferences.getInstance();
  if (setEnv) Util.chooseEnv(prefs.getString('env')??'');
  if (setLogin) Constants().isLogin = prefs.getBool('is_login')??false;

  if (prefs.containsKey('lang') &&
      prefs.getString('lang')!.isNotEmpty) lang = prefs.getString('lang')??lang;

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