我正在使用flutter_localizations来本地化我的应用程序.

自从更新到Flutter 3.7后,我收到以下错误:

ICU语法错误:需要"IDENTIFIER",但找到"}".

这=|(){}[]显然

This =|\(){}[] obviously是我的.arb文件中的文本.

我知道curly braces"{}"有特殊的含义,应该转义,但我找不到正确转义的方法,有谁设法转义了吗?


重现该问题的一种简单方法是,只需按照步骤添加本地化支持here,然后编写包含字符"{"的任何内容,而不是hello world字符串.


附言:有一个releted issue open on Github.一定要go 那里查看更新!

推荐答案

有一个实现的转义语法,但默认情况下不启用,因为它是一个新功能,并不完全向后兼容现有的ICU消息字符串.

首先,将以下内容添加到您的l10n.yaml文件:

use-escaping: true

然后,这将允许您将部分字符串括在单引号中,以忽略单引号中的任何语法;要正常使用单引号作为字符而不是转义符,请使用双单引号.例如,

{
  message: "This '{isn''t}' obvious"
}

vbl.成为

String get message => "This {isn't} obvious";

有关语法的信息,请参见here.稍后我会将其添加到文档中.

Flutter相关问答推荐

如何等待抖动S定时器.定期取消?

CMakeLists.txt处的CMake错误:3(项目)找不到指定的Visual Studio实例

使用GO_ROUTER在模式内导航

UI中的Flutter 下拉列表值未更改

在Ffltter中,我已经使用了Ffltter_BLOC Cupit和Pusher,但当获得新数据时,UI没有更新

按一下按钮即可更新 fl_chart

如何在点击查看措辞下方添加句子?

使用 Firebase Realtime 实现高效流式传输

打开键盘时屏幕组件会被压扁

Flutter中有没有办法区分鼠标左右平移?

带按钮的 Riverpod future Provider

如何给按钮的边框半径?

Flutter如何在容器外创建环形进度条

允许文本小部件在容器之间溢出

更改 flutter listview 中的布局

我可以在列表图块下方添加其他小部件吗

如何将行推到列的底部

Flutter canvas 绘制不同 colored颜色 的原始点

带图像封面的 ElevatedButton

Flutter 评级栏包选中和未选中的容器