Remove i18n package. Add xml files with strings to flutter assets. Create method for passing localized strings to channel.

This commit is contained in:
Ivan Murashov
2018-02-07 00:28:47 +03:00
parent 8c4287a21b
commit c15108fda9
40 changed files with 600 additions and 930 deletions

View File

@@ -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();
});