首页 > 解决方案 > 使用json在flutter本地化中管理复数/性别

问题描述

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

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

{
  ...
   "vehiclelabelKmTraveledReadable": "In %s Km",
  ...
}

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

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

{
"vehiclePeriod": "Every %s month(s?)"
}

但是如果 %s 是 1,那就错了。有人知道如何处理这种情况吗?

标签: flutterdartlocalizationpluralize

解决方案


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

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

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

希望这可以帮助您入门。


推荐阅读