Flutter 在不使用MaterialApp的情况下将本地化添加到小部件?

Flutter 在不使用MaterialApp的情况下将本地化添加到小部件?,flutter,Flutter,我了解如何通过向MaterialApp小部件添加本地化、Legates和supportedLocales来向应用程序添加本地化。本地化我的应用程序运行良好 我正在创建一个颤振软件包,可以在其他颤振应用程序中使用。包中的一些小部件需要有本地化文本,比如一些错误消息和按钮标签。包包含它自己的所有本地化字符串。在没有MaterialApp的情况下,我如何本地化软件包中的字符串?我使用本地化小部件以这种方式进行测试,而不使用MaterialApp: 一个简单的演示小部件: class WidgetToT

我了解如何通过向MaterialApp小部件添加本地化、Legates和supportedLocales来向应用程序添加本地化。本地化我的应用程序运行良好


我正在创建一个颤振软件包,可以在其他颤振应用程序中使用。包中的一些小部件需要有本地化文本,比如一些错误消息和按钮标签。包包含它自己的所有本地化字符串。在没有MaterialApp的情况下,我如何本地化软件包中的字符串?

我使用
本地化
小部件以这种方式进行测试,而不使用MaterialApp:

一个简单的演示小部件:

class WidgetToTest extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    //AppLocalizations.of(context)!.hello = 'hello' in generated file
    return Text(AppLocalizations.of(context)!.hello);
  }
}
测试:

  testWidgets('test localizations widget', (tester) async {
    await tester.pumpWidget(
      Localizations(
        locale: const Locale('en'),
        delegates: AppLocalizations.localizationsDelegates,
        child: WidgetToTest(),
      )
    );
    expect(find.text('hello'), findsOneWidget);
  });

如果您只需要启用
AppLocalizations
就可以使用widget在您的widget内部工作。

Hi-mate,您知道这一点吗?我也需要这么做你好!我也有同样的问题。有解决办法吗?