如何动态翻译应用程序

时间:2019-01-08 01:19:33

标签: dart flutter

我按照步骤here开始翻译应用程序。我使用了.arb文件方法。

我了解更改操作系统语言时会翻译应用程序,但是在应用程序内部是否可以切换语言并使应用程序动态翻译?

如果是,该怎么办?我尝试调用“加载”方法,但没有任何反应。

感谢您的帮助。

1 个答案:

答案 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,
    );
  }