【发布时间】:2021-12-14 23:20:48
【问题描述】:
我有一个本地化的 Android Flutter 应用。我按照这些instructions 配置了本地化。这行得通(虽然感觉不必要地复杂),而且我能够在整个应用程序中使用本地化字符串,但我不知道如何加载本地化资产 JSON 文件。
我尝试将资产路径存储为本地化字符串。但是,当我尝试从 statefull 小部件的 initState 加载路径时,出现错误。
@override
void initState() {
var t = AppLocalizations.of(context);
await rootBundle.load(t!.localizedJsonPath);
super.initState();
}
FlutterError (dependOnInheritedWidgetOfExactType<_localizationsscope>() 或dependOnInheritedElement() 在_MyScreenState.initState() 完成之前被调用。
请注意,如果我对 JSON 资产文件路径进行硬编码,上述方法可以正常工作。只有当我尝试加载本地化字符串时它才会失败。
我做错了什么?
如果有更好的方法来加载本地化资产,我会接受它作为答案。 Flutter 文档提到 asset variants 用于图像分辨率和主题,但我找不到任何本地化内容。
【问题讨论】:
标签: android flutter dart localization