我按照flutter docs的建议在我的flutter应用程序中添加了l10n,建议使用这样的静态方法来获取本地化:
static DemoLocalizations of(BuildContext context) {
return Localizations.of<DemoLocalizations>(context, DemoLocalizations);
}
这在运行应用程序时很好用,但是当我尝试测试窗口小部件时,返回的值始终为空。
有没有简单的方法可以在测试中提供本地化?
目前,我正在通过DI进行本地化,但这是相当大的开销。
答案 0 :(得分:2)
您可以将要测试的小部件包装到Localizations
Localizations(
delegates: [
yourDelegate
],
locale: Locale('en'),
child: YourWidget(),
);
答案 1 :(得分:1)
我认为您应该阅读此问题。如果文件json超过10kb,则无法加载资产。我们应该一直关注并等待Flutter团队对其进行修复或真正的解决方案https://github.com/flutter/flutter/issues/22193
答案 2 :(得分:0)
上述答案无济于事,因为我正在从json
文件中调用字符串。 medium blog实际上解决了我的问题。