我按照步骤here开始翻译应用程序。我使用了.arb文件方法。
我了解更改操作系统语言时会翻译应用程序,但是在应用程序内部是否可以切换语言并使应用程序动态翻译?
如果是,该怎么办?我尝试调用“加载”方法,但没有任何反应。
感谢您的帮助。
答案 0 :(得分:1)
设置Locale
中的MaterialApp
,然后在要更改时只需调用
setState(() {
_locale = Locale('b'); // Desired locale
});
下面的代码每5秒钟更改Locale
。
Locale _locale;
@override
void initState() {
_locale = Locale('a');
Timer.periodic(Duration(seconds: 5), (t) {
setState(() {
_locale = _locale == Locale('a') ? Locale('b') : Locale('a');
});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
supportedLocales: [
const Locale('a'),
const Locale('b'),
const Locale('c'),
],
localizationsDelegates: [
MaterialLocalizationDelegateKa(),
const InfosLocalizationsDelegate(),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
locale: _locale,
);
}