小编Cra*_*ees的帖子

Flutter Intl - 在 ARB 复数翻译中使用双精度型

已转移到 Flutter 2,并正在将我们的翻译直接转移为 .arb 格式,正如现在建议的那样。然而,遇到了一个问题,即生成的本地化翻译文件无法理解何时应该使用类型double,而是使用int,这会在代码中使用时导致类型错误。似乎没有任何方法可以指定特定占位符替换是 adouble而不是int

ARB 翻译文件

"hours": "{hours,plural, =1{Hour}other{Hours}}",
"@hours": {
  "placeholders": {
    "hours": {}
  }
},
Run Code Online (Sandbox Code Playgroud)

尝试向占位符添加类型信息,但似乎对生成影响不大(使用flutter gen-l10n脚本)

"hours": "{hours,plural, =1{Hour}other{Hours}}",
"@hours": {
  "placeholders": {
    "hours": {
      "type: "double" <========== THIS SEEMS TO HAVE NO IMPACT (and/or may not be valid)
    }
  }
},
Run Code Online (Sandbox Code Playgroud)

生成本地化翻译.dart

/// In en, this message translates to:
/// **'{hours,plural, =1{Hour}other{Hours}}'**
String hours(int hours); <========== THIS NEEDS TO BE A DOUBLE …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-intl

5
推荐指数
1
解决办法
5151
查看次数

标签 统计

dart ×1

flutter ×1

flutter-intl ×1