Dec*_*oth 7 dart flutter flutter-localizations
我正在使用flutter_localizations本地化我的应用程序。
自从更新到Flutter 3.7以来,我收到此错误:
ICU 语法错误:应为“标识符”,但找到了“}”。
这显然 =|(){}[]
This =|\(){}[] obviously是我的.arb文件中的文本。
我知道花括号“{}”有特殊含义,应该转义,但我找不到正确转义它们的方法,有人设法这样做吗?
重现该问题的一种简单方法是按照此处添加本地化支持的步骤操作,然后编写包含字符“”的任何内容,而不是hello world{字符串。
PS: Github 上有一个相关的问题尚未解决。请务必去那里检查更新!
小智 5
有一个转义语法已实现,但默认情况下未启用,因为它是一项新功能,与现有 ICU 消息字符串不完全向后兼容。
首先,将以下内容添加到您的l10n.yaml文件中:
use-escaping: true
Run Code Online (Sandbox Code Playgroud)
然后,这将允许您将部分字符串用单引号括起来,以忽略单引号内的任何语法;要正常使用单引号作为字符而不是转义符,请使用双单引号。例如,
{
message: "This '{isn''t}' obvious"
}
Run Code Online (Sandbox Code Playgroud)
变成
String get message => "This {isn't} obvious";
Run Code Online (Sandbox Code Playgroud)
有关语法的信息,请参阅此处。稍后我会将其添加到文档中。
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |