From ca71f27fdc70a2aea21a449dce74de453e825c55 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Tue, 18 May 2021 12:00:53 +0200 Subject: [PATCH] Integrate Monarch with EasyLocalizations Only English seems to work for me. Not sure why. --- lib/monarch_localizations_delegate.dart | 56 +++++++++++++++++++++++++ stories/screens_stories.dart | 4 ++ 2 files changed, 60 insertions(+) create mode 100644 lib/monarch_localizations_delegate.dart create mode 100644 stories/screens_stories.dart diff --git a/lib/monarch_localizations_delegate.dart b/lib/monarch_localizations_delegate.dart new file mode 100644 index 00000000..e9c48252 --- /dev/null +++ b/lib/monarch_localizations_delegate.dart @@ -0,0 +1,56 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; + +import 'package:easy_localization/src/localization.dart'; +import 'package:easy_localization/src/translations.dart'; +import 'package:easy_localization_loader/easy_localization_loader.dart'; +import 'package:monarch_annotations/monarch_annotations.dart'; + +// ignore_for_file: implementation_imports + +/// Only used with Monarch +class MonarchLocalizationsDelegate extends LocalizationsDelegate { + const MonarchLocalizationsDelegate(); + + @override + Future load(Locale locale) async { + var assetLoader = YamlAssetLoader(); + var data = await assetLoader.load('assets/langs', locale); + var translations = Translations(data); + + Localization.load(locale, translations: translations); + return Localization.instance; + } + + @override + bool shouldReload(covariant LocalizationsDelegate old) => false; + + @override + bool isSupported(Locale locale) => [ + 'de', + 'en', + 'es', + 'id', + 'pl', + 'pr', + 'ru', + 'sv', + 'zh', + ].contains(locale.languageCode); +} + +@MonarchLocalizations([ + MonarchLocale('en'), + + // In Alphabetical order + MonarchLocale('de'), + MonarchLocale('es'), + MonarchLocale('id'), + MonarchLocale('pl'), + MonarchLocale('pr'), + MonarchLocale('ru'), + MonarchLocale('sv'), + MonarchLocale('zh'), +]) +const myEasyLocalizationsDelegate = MonarchLocalizationsDelegate(); diff --git a/stories/screens_stories.dart b/stories/screens_stories.dart new file mode 100644 index 00000000..385a860a --- /dev/null +++ b/stories/screens_stories.dart @@ -0,0 +1,4 @@ +import 'package:flutter/material.dart'; +import 'package:gitjournal/screens/purchase_thankyou_screen.dart'; + +Widget thankYou() => PurchaseThankYouScreen();