我有一个JSON文件,其中包含以下翻译:

{
  "copy" : {
    "v1" : "copy"
  },
  "receive" : {
    "v3" : "received"
  },
  "message" : "message",
  "received_message" : "@:receive.v3 @:message",
  "copy_received_message" : "@:copy.v1 @:received_message"
}

当我得到copy_received_message翻译通过这样做:

 "copy_received_message".tr();

我希望得到"copy received message"个字符串

但我得到的是"copy @:receive.v3 @:message"个字符串



Footnote
我知道我可以在JSON文件上写这个翻译:

{
  ...
  "copy_received_message" : "@:copy.v1 @:receive.v3 @:message"
}

在英语中似乎很简单,但在其他语言中,received_message可能不像"@:receive.v3 @:message"那么简单

供参考,可在easy_localization

推荐答案

自2月8日以来,也有类似的公开问题.2023年: https://github.com/aissat/easy_localization/issues/553

如果你不能等到修复,你可以使用下一个代码段,但请不要给我任何否定的解决方案:

extension StringExtension on String {
  String trHack() {
    return tr(tr(tr(tr(tr(tr(tr(tr(tr(this)))))))));
  }
}

这样使用:

"copy_received_message".trHack(); // "copy received message"

我重复一遍,这是一个hack,并且控制台将在调试过程中向您显示警告!

Flutter相关问答推荐

Flutter 对齐:不适用于多行文字

如何在扩展其他小部件时访问Ref

blocTest错误:没有从`when()`中调用方法存根

我想创建一个可滚动的堆叠列表项,每个项都朝向屏幕

在Flutter 小部件测试中找不到框中的AssetImage装饰

请求已在 flutter 中发送到 django 服务器,并且已返回响应,但条件仍然为 false

为什么我的图标的一半在定位小部件中消失了?

如何在flutter中实现这样的底部导航栏?

为 flutter app/firebase 保存 chatgpt api-key 的正确方法是什么

自定义绘画未显示 - Flutter

Flutter 火焰相机抖动已弃用

我怎样才能消除我的 Column 子元素之间的差距?

如何在 flutter 中同时使用 ButtonStyle() 和 ElevatedButton.styleFrom() ?

将 String 与 List 元素进行比较时出现问题

Flutter RawMaterialButton 常量相对大小

Flutter - 异步文件读取异常处理

如何制作两个显示相关内容且可编辑的文本字段?

Flutter Web App 未启动:脚本的 MIME 类型不受支持

为什么这个循环只发生一次?Flutter /dart

如何在Flutter 的 initState 中初始化 Firestore 查询