如何修复“ICU语法错误:预期>“标识符”,但发现“0”,”Flutter 3.7.0中的错误

cnh2zyt3  于 2023-01-27  发布在  Flutter
关注(0)|答案(1)|浏览(161)

更新到Flutter 3.7.0后,我在构建应用程序时收到此错误消息:
[app_en.arb:扫描代码字段不匹配] ICU语法错误:应为“标识符”,但找到“0”。要匹配的字段为“{0}”
看起来变量在.arb本地化文件中的写入方式发生了一些变化。

pu82cl6c

pu82cl6c1#

我发现这个错误的原因是在Flutter 3.7
国际化支持已经被完全修改了![他们]已经完全重写了gen-l10 n工具...
如X1 E0 F1 X中所述。
以前,我在 .arb 文件中声明字符串,如下所示

"scanCode_fieldNotMatched": "field to match is \"{0}\"",

其中之后我用某个其他值替换{0}
现在gen-l10n工具似乎将括号中的内容作为特殊参数,而名称"0"不被接受,因此我不得不将字符串更改为

"scanCode_fieldNotMatched": "field to match is \"{value0}\"",

并且AppLocalizations现在可以被称为:

AppLocalizations.of(context)!.lastTaskSince_text("something here to replace value0!")

有关这方面的更多详细信息,请访问:Flutter中的占位符、复数和选择。

相关问题