如何禁用 i18next 多个复数

How to disable i18next multiple plurals

我正在构建一个 Hebrew 是主要语言的应用程序。

I18next 被定义为 Hebrew 使用 multiple plurals,但是,因为我使用的是数字,所以这些变体不相关。

它迫使我指定所有变体。

{
  ...
    "BEDROOM": "חדר שינה אחד",
    "BEDROOM_1": "$t(BEDROOM_plural)",
    "BEDROOM_2": "$t(BEDROOM_plural)",
    "BEDROOM_3": "$t(BEDROOM_plural)",
    "BEDROOM_plural": "{{count}} חדרי שינה",
  ...
}

库里确实有simplifyPluralSuffix,但是和我需要的正好相反

如果没有任何特殊变体的密钥,是否有任何配置会回退到 _plural

正如@jamuhl 在here 中建议的那样,可以覆盖复数规则

i18next.services.pluralResolver.addRule('he', {
  numbers: [1, 2, 20, 21],
  plurals: function(n) {
    return Number(n != 1);
  },
});

https://github.com/i18next/i18next/blob/master/src/PluralResolver.js#L90