Remove i18n package. Add xml files with strings to flutter assets. Create method for passing localized strings to channel.
This commit is contained in:
@@ -8,8 +8,6 @@ import 'package:checker/db.dart';
|
||||
import 'package:checker/network.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
class FinishRegistrationScreen extends BaseScreen {
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ 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 {
|
||||
|
||||
@@ -39,14 +38,13 @@ class LanguagesState extends SettingsBaseState<LanguagesScreen> {
|
||||
@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));
|
||||
selectedItem = getOptions().indexOf(getLocaleTitle(StringsLocalization.localeCode));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import 'package:checker/screens/currencies.dart';
|
||||
import 'package:checker/screens/languages.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
class SettingsScreen extends BaseScreen {
|
||||
|
||||
@@ -51,7 +50,7 @@ class SettingsState extends BaseState<SettingsScreen> {
|
||||
menuItems[2].title = StringsLocalization.logout();
|
||||
menuItems[0].selectedValue = info['currency'].toString();
|
||||
menuItems[1].selectedValue =
|
||||
info['locale'] == null ? Intl.defaultLocale : info['locale'];
|
||||
info['locale'] == null ? StringsLocalization.locale() : info['locale'];
|
||||
menuItems[2].selectedValue =
|
||||
info['token'] == null ? '' : getTokenSuffix(info['token']);
|
||||
});
|
||||
|
||||
@@ -11,10 +11,7 @@ import 'package:checker/screens/finish_registration.dart';
|
||||
import 'package:checker/screens/registration.dart';
|
||||
import 'package:checker/strings.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:http/http.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:xml/xml.dart' as xml;
|
||||
|
||||
class SplashScreen extends StatefulWidget {
|
||||
@override
|
||||
@@ -55,10 +52,8 @@ class _SplashScreenState extends BaseState<SplashScreen> {
|
||||
helper.getSettings(false).then((settings) {
|
||||
if (settings == null) {
|
||||
createSettingsTable(locale);
|
||||
getTranslates(locale).then((strings) {
|
||||
// platform.invokeMethod('pushTranslates').then((locale) {
|
||||
//
|
||||
// });
|
||||
StringsLocalization.load(locale).then((locale) {
|
||||
print(locale);
|
||||
});
|
||||
} else {
|
||||
initLocale(locale, () {
|
||||
@@ -69,21 +64,6 @@ class _SplashScreenState extends BaseState<SplashScreen> {
|
||||
});
|
||||
}
|
||||
|
||||
Future<Map> getTranslates(String locale) async {
|
||||
String strings = await loadAsset(locale);
|
||||
var document = xml.parse(strings);
|
||||
Map results = new Map<String, String>();
|
||||
document.findAllElements('string').forEach((node) {
|
||||
print(node.name.toString() + node.text.toString());
|
||||
results[node.name.toString()] = node.text.toString();
|
||||
});
|
||||
return results;
|
||||
}
|
||||
|
||||
Future<String> loadAsset(String locale) async {
|
||||
return await rootBundle.loadString('assets/values-$locale/strings.xml');
|
||||
}
|
||||
|
||||
void initWithSavedValue(String locale) {
|
||||
initLocale(locale, () {
|
||||
showNext();
|
||||
@@ -100,7 +80,6 @@ class _SplashScreenState extends BaseState<SplashScreen> {
|
||||
}
|
||||
|
||||
void initLocale<T>(String locale, Future<T> onValue()) {
|
||||
Intl.defaultLocale = locale;
|
||||
StringsLocalization.load(locale).then((_) {
|
||||
onValue();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user