You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确使用FormattedPlural?其始终返回other选项及React i18n库推荐

问题成因

FormattedPlural的复数匹配逻辑完全遵循CLDR(Unicode通用区域数据仓库)的区域化复数规则,你当前使用的en-US locale的复数分类仅包含one、other两类,数值0在英文规则下被归类到other分支,不存在官方的zero分类,因此你传入的zero属性不会被识别。
如果需要实现0值显示特定文案的需求,推荐两种适配方案:

  • 方案1:外层加条件判断,当value为0时直接渲染指定文本,非0时再调用FormattedPlural组件
  • 方案2:改用FormattedMessage配合ICU消息语法,自定义0值的匹配规则,示例代码如下:
// messages 配置
const messages = {
  clickTips: '{count, plural, =0 {no click} one {1 click} other {# clicks}}'
}

// 组件调用
<FormattedMessage id="clickTips" values={{ count: 0 }} />
React适配i18n库推荐
  • i18next:生态完善,适配全场景React项目(SSR/SSG/CSR都支持),插件丰富,复数规则自定义灵活,工业界使用率高,学习成本低。
  • LinguiJS:编译型国际化库,打包后体积小,支持TS类型推导,ICU语法支持完整,开发体验流畅,适合对性能要求较高的项目。
  • 轻量级react-i18n库:无依赖方案,API设计更贴合React开发习惯,内置的复数规则支持自定义分支匹配,不需要严格遵循CLDR默认规则,适合小型项目。

内容的提问来源于stack exchange,提问作者newBike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 23:00:04