杀死或销毁应用程序后,Flutter Localization 不稳定
Flutter Localization is not stable after after kill or destroy app
我已经使用 Get 包进行本地化,它工作正常。但是如果我销毁(杀死,关闭)应用程序并再次打开,那么默认设置本地语言的时间。
示例:- 打开应用程序-> 语言(英语)-> 更改语言(阿拉伯语)-> 它工作 -> 关闭(销毁,杀死)应用程序-> 再次打开 -> 默认设置语言(英语) .
以上是流程。
GetMaterialApp(
locale: Get.locale,
translations: LLLanguages(),
navigatorKey:Get.key,
debugShowCheckedModeBanner:false,
theme:LLTheme.light,
darkTheme: LLTheme.dark,
themeMode: ThemeService().theme,
home:LLSplashScreen(),
)
Get.updateLocale(Locale('ar','DZ'));
提前致谢
这是预期的行为。您需要将活动 localization/language 标志保存在永久性存储中,例如 GetStorage、SharedPreferences 或 Hive。您需要获取该值并在应用启动时根据该值设置本地化。
main() async{
SharedPreferences prefs = await SharedPreferences.getInstance();
var isArabic= prefs.getBool('isArabic') ?? false;
runApp(MyApp(isArabic));
}
class MyApp extends StatelessWidget{
final bool isArabic;
MyApp(this.isArabic);
Widget build()=> GetMaterialApp(
locale: isArabic?Locale('ar','DZ'): Locale('en','US'),
translations: LLLanguages(),
navigatorKey:Get.key,
debugShowCheckedModeBanner:false,
theme:LLTheme.light,
darkTheme: LLTheme.dark,
themeMode: ThemeService().theme,
home:LLSplashScreen(),
);
}
我已经使用 Get 包进行本地化,它工作正常。但是如果我销毁(杀死,关闭)应用程序并再次打开,那么默认设置本地语言的时间。
示例:- 打开应用程序-> 语言(英语)-> 更改语言(阿拉伯语)-> 它工作 -> 关闭(销毁,杀死)应用程序-> 再次打开 -> 默认设置语言(英语) .
以上是流程。
GetMaterialApp(
locale: Get.locale,
translations: LLLanguages(),
navigatorKey:Get.key,
debugShowCheckedModeBanner:false,
theme:LLTheme.light,
darkTheme: LLTheme.dark,
themeMode: ThemeService().theme,
home:LLSplashScreen(),
)
Get.updateLocale(Locale('ar','DZ'));
提前致谢
这是预期的行为。您需要将活动 localization/language 标志保存在永久性存储中,例如 GetStorage、SharedPreferences 或 Hive。您需要获取该值并在应用启动时根据该值设置本地化。
main() async{
SharedPreferences prefs = await SharedPreferences.getInstance();
var isArabic= prefs.getBool('isArabic') ?? false;
runApp(MyApp(isArabic));
}
class MyApp extends StatelessWidget{
final bool isArabic;
MyApp(this.isArabic);
Widget build()=> GetMaterialApp(
locale: isArabic?Locale('ar','DZ'): Locale('en','US'),
translations: LLLanguages(),
navigatorKey:Get.key,
debugShowCheckedModeBanner:false,
theme:LLTheme.light,
darkTheme: LLTheme.dark,
themeMode: ThemeService().theme,
home:LLSplashScreen(),
);
}