From a1021465a8c5b1ca5d92063a27a1d9d077013cd7 Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Wed, 3 Feb 2021 13:49:00 +0800 Subject: [PATCH] refactor: locale --- lib/app.dart | 52 ++++++++++++++++++++------------------------ lib/l10n/intl_zh.arb | 2 +- 2 files changed, 24 insertions(+), 30 deletions(-) diff --git a/lib/app.dart b/lib/app.dart index 2f6a4b6..cfb390c 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -8,6 +8,25 @@ import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_gen/gen_l10n/S.dart'; class MyApp extends StatelessWidget { + static const supportedLocales = [ + const Locale('en'), + const Locale('es'), + const Locale('hi'), + const Locale('nb', 'NO'), + const Locale('pt', 'BR'), + const Locale('zh'), + ]; + + static Locale localeResolutionCallback( + Locale locale, Iterable supportedLocales) { + for (final supportedLocale in supportedLocales) { + if (locale.languageCode == supportedLocale.languageCode) { + return supportedLocale; + } + } + return supportedLocales.first; + } + Widget _buildChild(BuildContext context) { final theme = Provider.of(context); switch (theme.theme) { @@ -15,25 +34,14 @@ class MyApp extends StatelessWidget { return CupertinoApp( theme: CupertinoThemeData(brightness: theme.brightness), home: Home(), - localeResolutionCallback: - (Locale locale, Iterable supportedLocales) { - for (final supportedLocale in supportedLocales) { - if (locale.languageCode == supportedLocale.languageCode) { - return supportedLocale; - } - } - return supportedLocales.first; - }, + localeResolutionCallback: localeResolutionCallback, localizationsDelegates: [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], - supportedLocales: [ - const Locale('en', ''), - const Locale('hi', ''), - ], + supportedLocales: supportedLocales, ); default: return MaterialApp( @@ -50,28 +58,14 @@ class MyApp extends StatelessWidget { ), ), home: Home(), - localeResolutionCallback: - (Locale locale, Iterable supportedLocales) { - for (final supportedLocale in supportedLocales) { - if (locale.languageCode == supportedLocale.languageCode) { - return supportedLocale; - } - } - return supportedLocales.first; - }, + localeResolutionCallback: localeResolutionCallback, localizationsDelegates: [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], - supportedLocales: [ - const Locale('en', ''), - const Locale('hi', ''), - const Locale('es', ''), - const Locale('nb', 'NO'), - const Locale('pt', 'BR'), - ], + supportedLocales: supportedLocales, ); } } diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/intl_zh.arb index 9e26dfe..0967ef4 100644 --- a/lib/l10n/intl_zh.arb +++ b/lib/l10n/intl_zh.arb @@ -1 +1 @@ -{} \ No newline at end of file +{}