使用 json 管理 flutter 本地化中的复数/性别

Bir*_*iro 7 localization pluralize dart flutter

我正在使用 flutter / dart 开发移动应用程序。该应用程序需要使用 JSON 文件进行本地化。

我需要处理字符串中的复数/性别。实际上我正在使用 sprintf 库,在 JSON 代码中使用一些占位符,例如:

{
  ...
   "vehiclelabelKmTraveledReadable": "In %s Km",
  ...
}
Run Code Online (Sandbox Code Playgroud)

所以我用变量值替换了“%s”占位符。

问题是如何处理复数,例如

{
"vehiclePeriod": "Every %s month(s?)"
}
Run Code Online (Sandbox Code Playgroud)

但如果 %s 为 1,则错误。有人知道如何处理此类案件吗?

小智 6

我使用 flutter 中的 intl 包管理这种情况,但它使用 .arb 文件而不是 .json。

这是如何使用intl包处理它的示例

Intl.plural(howMany,
      zero: "$howMany An",
      one: "$howMany An",
      other: "$howMany Ans",
      name: 'dogYearsOld',
      locale: localeName,
      args: [howMany]);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助您入门。

  • 我刚刚看到 arb 文件和 intl 库,但我想知道在 json 文件中我是否可以使用某种函数或类似的函数... (2认同)