import 'package:checker/base/base_screen.dart'; import 'package:checker/base/settings_base_state.dart'; import 'package:checker/db.dart'; import 'package:flutter/material.dart'; import 'package:checker/strings.dart'; import 'package:checker/common.dart'; import 'package:intl/intl.dart'; class LanguagesScreen extends BaseScreen { LanguagesScreen(helper, app) : super(helper, app); @override State createState() => new LanguagesState(helper, app); } class LanguagesState extends SettingsBaseState { LanguagesState(SqliteHelper helper, String app) : super(helper, app); List languages = const ['ru', 'en', 'ua', 'es']; @override List getOptions() { List list = new List(); for (String code in languages) { list.add(getLocaleTitle(code)); } return list; } @override String getTitle() { return StringsLocalization.locale(); } @override saveOption() async { await helper.saveLocale(languages[selectedItem]); Intl.defaultLocale = languages[selectedItem]; await StringsLocalization.load(languages[selectedItem]); } @override void getSelectedValue() { setState(() { selectedItem = getOptions().indexOf(getLocaleTitle(Intl.defaultLocale)); }); } }