如何在 flutter 的主应用程序中使用本地化字符串
how to use localized strings in flutter's main app
我是 Flutter 的新手,我正在使用 flutter-intl 插件构建一个本地化的应用程序。
我已经在我的语言环境的 .arb 文件中声明了一个“标题”字符串。
我的程序正尝试按如下方式使用此字符串:
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
title: S.current.Title,
我试过使用 S.current.Title
和 S.of(context).Title
,在这两种情况下,当程序启动时,我收到以下错误消息:
当我将标题 属性 更改为 title: 'my title'
时,应用程序执行 hot-reload 并且错误屏幕消失。当我将标题改回 title: S.current.Title
时,本地化标题显示没有错误。
此行为已在 Android-studio 和 VS-Code 网络和 Android 目标中得到一致确认。
估计跟Flutter的初始化顺序有关。在 MaterialApp 中使用本地化字符串作为属性的正确方法是什么?
如文档所示:
To provide a localized title instead, use onGenerateTitle
我是 Flutter 的新手,我正在使用 flutter-intl 插件构建一个本地化的应用程序。 我已经在我的语言环境的 .arb 文件中声明了一个“标题”字符串。 我的程序正尝试按如下方式使用此字符串:
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
title: S.current.Title,
我试过使用 S.current.Title
和 S.of(context).Title
,在这两种情况下,当程序启动时,我收到以下错误消息:
当我将标题 属性 更改为 title: 'my title'
时,应用程序执行 hot-reload 并且错误屏幕消失。当我将标题改回 title: S.current.Title
时,本地化标题显示没有错误。
此行为已在 Android-studio 和 VS-Code 网络和 Android 目标中得到一致确认。
估计跟Flutter的初始化顺序有关。在 MaterialApp 中使用本地化字符串作为属性的正确方法是什么?
如文档所示:
To provide a localized title instead, use onGenerateTitle