localeResolutionCallback method
Callback to set initial language.
Pass this to the localeResolutionCallback
of MaterialApp, etc. as follows.
初期言語を設定するためのコールバック。
これを下記のようにMaterialAppなどのlocaleResolutionCallback
に渡してください。
MaterialApp(
locale: appLocalize.locale,
localizationsDelegates: appLocalize.delegates(),
supportedLocales: appLocalize.supportedLocales(),
localeResolutionCallback: appLocalize.localeResolutionCallback(),
);
Implementation
Locale? Function(
Locale? locale,
Iterable<Locale> supportedLocales,
) localeResolutionCallback() => (locale, supportedLocales) {
if (_locale != null) {
return _locale;
}
if (kIsWeb || locale == null) {
final locale =
Locale(PlatformDispatcher.instance.locale.languageCode, "");
for (final supportedLocale in supportedLocales) {
if (supportedLocale.languageCode == locale.languageCode) {
_locale ??= supportedLocale;
return _locale = supportedLocale;
}
}
} else {
for (final supportedLocale in supportedLocales) {
if (supportedLocale.languageCode == locale.languageCode ||
supportedLocale.countryCode == locale.countryCode) {
_locale ??= supportedLocale;
return supportedLocale;
}
}
for (final supportedLocale in supportedLocales) {
if (supportedLocale.languageCode == locale.languageCode) {
_locale ??= supportedLocale;
return supportedLocale;
}
}
}
_locale ??= supportedLocales.first;
return supportedLocales.first;
};