Я хочу получить язык местного мобильного телефона, упрощенный китайский или английский sh, но функция localeResolutionCallback
всегда возвращает en
при ios, но мобильный телефон упрощенный китайский, как решить эту проблему?
информация о флаттере:
Flutter (Channel stable, v1.12.13+hotfix.9, on Mac OS X 10.15.3 19D76,
locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
[✓] Android Studio (version 3.6)
[!] IntelliJ IDEA Community Edition (version 2020.1)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[!] VS Code (version 1.44.2)
✗ Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (1 available)
Недавно созданное приложение также имеет эту проблему:
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
supportedLocales: [//传入支持的语种数组
const Locale('en', 'EN'), // English
const Locale('zh', 'CN'), //
],
localeResolutionCallback: (locale, locales) {
print('cacasasc, ${locale.languageCode} ${locales}');
if (locale.languageCode == 'zh') {
return Locale('zh', 'CN');
} else {
return Locale('en', 'EN');
}
},
);
}
}
log:
flutter: cacasasc, en