flutter 获取特定语言的翻译

yi0zb3m4  于 2023-04-22  发布在  Flutter
关注(0)|答案(2)|浏览(209)

有可能得到翻译在其他语言比这是定义?目前我调整语言(这是在操作系统中设置)的语言是在应用程序.我的意思是他们是相同的,如果在操作系统是英语在应用程序也是英语.我使用AppLocalizations从arb文件中获取字符串.
我想得到字符串在我的语言定义(比其当前设置),例如,在应用程序的英语,但我想在一个地方把字符串在荷兰语。是否有可能以某种方式得到字符串在严格定义的语言?

j0pj023g

j0pj023g1#

您可以创建一个新的AppLocalizations示例,其中包含您想要的句子。
因此,您可以使用.of(context)来获取Locale,而是将所需的Locale提供给AppLocalizations

AppLocalizations(Locale('contry', 'languageSubTag')).translate('SENTENCE_KEY');

希望能帮上忙。

relj7zay

relj7zay2#

已由本地化解决。override和Builder。更多信息https://docs.flutter.dev/development/accessibility-and-localization/internationalization in“Overriding Locale”

Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text(widget.title),
    ),
    body: Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          // Add the following code
          Localizations.override(
            context: context,
            locale: const Locale('es'),
            // Using a Builder to get the correct BuildContext.
            // Alternatively, you can create a new widget and Localizations.override
            // will pass the updated BuildContext to the new widget.
            child: Builder(
              builder: (context) {
                // A toy example for an internationalized Material widget.
                return CalendarDatePicker(
                  initialDate: DateTime.now(),
                  firstDate: DateTime(1900),
                  lastDate: DateTime(2100),
                  onDateChanged: (value) {},
                );
              },
            ),
          ),
        ],
      ),
    ),
  );
}

相关问题