46 lines
1.2 KiB
Dart
46 lines
1.2 KiB
Dart
|
|
import 'package:flutter/painting.dart';
|
||
|
|
import 'package:fcs/model/base_model.dart';
|
||
|
|
import 'package:fcs/model/shared_pref.dart';
|
||
|
|
import 'package:fcs/vo/setting.dart';
|
||
|
|
import 'package:fcs/widget/localization/transalation.dart';
|
||
|
|
|
||
|
|
class LanguageModel extends BaseModel {
|
||
|
|
String language;
|
||
|
|
bool isEng = true;
|
||
|
|
static final List<String> languageCodesList =
|
||
|
|
Translation().supportedLanguagesCodes;
|
||
|
|
static final List<String> languagesList = Translation().supportedLanguages;
|
||
|
|
|
||
|
|
final Map<dynamic, dynamic> languagesMap = {
|
||
|
|
languagesList[0]: languageCodesList[0],
|
||
|
|
languagesList[1]: languageCodesList[1],
|
||
|
|
};
|
||
|
|
|
||
|
|
void initSetting(Setting setting) async {
|
||
|
|
this.language = await load();
|
||
|
|
this.isEng = this.language == "English";
|
||
|
|
Translation().onLocaleChanged(Locale(languagesMap[language]));
|
||
|
|
notifyListeners();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
@override
|
||
|
|
logout() async {
|
||
|
|
}
|
||
|
|
|
||
|
|
Future<String> load() async {
|
||
|
|
var data =await SharedPref.getLang();
|
||
|
|
if (data == null) return languagesList[1];
|
||
|
|
return data;
|
||
|
|
}
|
||
|
|
|
||
|
|
void saveLanguage(String language) async {
|
||
|
|
Translation().onLocaleChanged(Locale(languagesMap[language]));
|
||
|
|
|
||
|
|
SharedPref.saveLang(language);
|
||
|
|
this.language = language;
|
||
|
|
this.isEng = this.language == "English";
|
||
|
|
notifyListeners();
|
||
|
|
}
|
||
|
|
}
|