Showing
1 changed file
with
41 additions
and
41 deletions
| @@ -2,47 +2,47 @@ import 'package:flutter/widgets.dart'; | @@ -2,47 +2,47 @@ import 'package:flutter/widgets.dart'; | ||
| 2 | 2 | ||
| 3 | Locale resolveAppLocale( | 3 | Locale resolveAppLocale( |
| 4 | Locale? deviceLocale, Iterable<Locale> supportedLocales) { | 4 | Locale? deviceLocale, Iterable<Locale> supportedLocales) { |
| 5 | - // if (deviceLocale == null) return const Locale('en'); | ||
| 6 | - // | ||
| 7 | - // for (final locale in supportedLocales) { | ||
| 8 | - // if (locale == deviceLocale) { | ||
| 9 | - // return locale; | ||
| 10 | - // } | ||
| 11 | - // } | ||
| 12 | - // | ||
| 13 | - // if (deviceLocale.languageCode == 'zh') { | ||
| 14 | - // final script = deviceLocale.scriptCode?.toLowerCase(); | ||
| 15 | - // final country = deviceLocale.countryCode?.toUpperCase(); | ||
| 16 | - // final isHant = script == 'hant' || | ||
| 17 | - // country == 'TW' || | ||
| 18 | - // country == 'HK' || | ||
| 19 | - // country == 'MO'; | ||
| 20 | - // | ||
| 21 | - // return supportedLocales.firstWhere( | ||
| 22 | - // (locale) => | ||
| 23 | - // locale.languageCode == 'zh' && | ||
| 24 | - // locale.scriptCode == (isHant ? 'Hant' : 'Hans'), | ||
| 25 | - // orElse: () => Locale.fromSubtags( | ||
| 26 | - // languageCode: 'zh', | ||
| 27 | - // scriptCode: isHant ? 'Hant' : 'Hans', | ||
| 28 | - // ), | ||
| 29 | - // ); | ||
| 30 | - // } | ||
| 31 | - // | ||
| 32 | - // if (deviceLocale.countryCode != null) { | ||
| 33 | - // for (final locale in supportedLocales) { | ||
| 34 | - // if (locale.languageCode == deviceLocale.languageCode && | ||
| 35 | - // locale.countryCode == deviceLocale.countryCode) { | ||
| 36 | - // return locale; | ||
| 37 | - // } | ||
| 38 | - // } | ||
| 39 | - // } | ||
| 40 | - // | ||
| 41 | - // for (final locale in supportedLocales) { | ||
| 42 | - // if (locale.languageCode == deviceLocale.languageCode) { | ||
| 43 | - // return locale; | ||
| 44 | - // } | ||
| 45 | - // } | 5 | + if (deviceLocale == null) return const Locale('en'); |
| 6 | + | ||
| 7 | + for (final locale in supportedLocales) { | ||
| 8 | + if (locale == deviceLocale) { | ||
| 9 | + return locale; | ||
| 10 | + } | ||
| 11 | + } | ||
| 12 | + | ||
| 13 | + if (deviceLocale.languageCode == 'zh') { | ||
| 14 | + final script = deviceLocale.scriptCode?.toLowerCase(); | ||
| 15 | + final country = deviceLocale.countryCode?.toUpperCase(); | ||
| 16 | + final isHant = script == 'hant' || | ||
| 17 | + country == 'TW' || | ||
| 18 | + country == 'HK' || | ||
| 19 | + country == 'MO'; | ||
| 20 | + | ||
| 21 | + return supportedLocales.firstWhere( | ||
| 22 | + (locale) => | ||
| 23 | + locale.languageCode == 'zh' && | ||
| 24 | + locale.scriptCode == (isHant ? 'Hant' : 'Hans'), | ||
| 25 | + orElse: () => Locale.fromSubtags( | ||
| 26 | + languageCode: 'zh', | ||
| 27 | + scriptCode: isHant ? 'Hant' : 'Hans', | ||
| 28 | + ), | ||
| 29 | + ); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + if (deviceLocale.countryCode != null) { | ||
| 33 | + for (final locale in supportedLocales) { | ||
| 34 | + if (locale.languageCode == deviceLocale.languageCode && | ||
| 35 | + locale.countryCode == deviceLocale.countryCode) { | ||
| 36 | + return locale; | ||
| 37 | + } | ||
| 38 | + } | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + for (final locale in supportedLocales) { | ||
| 42 | + if (locale.languageCode == deviceLocale.languageCode) { | ||
| 43 | + return locale; | ||
| 44 | + } | ||
| 45 | + } | ||
| 46 | 46 | ||
| 47 | return const Locale('en'); | 47 | return const Locale('en'); |
| 48 | } | 48 | } |
-
Please register or login to post a comment