58 lines
1.3 KiB
Dart
58 lines
1.3 KiB
Dart
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<LanguagesScreen> {
|
|
|
|
LanguagesState(SqliteHelper helper, String app) : super(helper, app);
|
|
|
|
List<String> languages = const ['ru', 'en', 'ua', 'es'];
|
|
|
|
@override
|
|
List<String> getOptions() {
|
|
|
|
List<String> 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];
|
|
StringsLocalization.load(languages[selectedItem]).then((_) {
|
|
setState(() {
|
|
|
|
});
|
|
});
|
|
}
|
|
|
|
@override
|
|
void getSelectedValue() {
|
|
helper.getLocale().then((locale) {
|
|
setState(() {
|
|
selectedItem = getOptions().indexOf(getLocaleTitle(locale));
|
|
});
|
|
});
|
|
}
|
|
} |