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

Next.js 13.4中next-intl枚举值选择功能失效求助

解决next-intl select枚举翻译失效问题
  • 检查messages文件路径与格式
    确认next-intl配置文件(如i18n.ts)中messagesPath指向的目录正确,en.json必须放在该目录下。同时检查JSON语法是否正确,比如引号、大括号是否配对,你的示例JSON结构应为:

    {
      "message": "{gender, select, female {She} male {He} other {They}} is online."
    }
    
  • 验证国际化上下文注入
    调用t函数的组件需确保已正确获取翻译函数:

    • App Router:在组件顶部使用const t = useTranslations();,且父级layout.tsx已通过NextIntlClientProvider传递messages(需在server component中先加载对应语言的messages)。
    • Page Router:确保页面已被withTranslation高阶组件包裹,或通过useTranslations钩子获取翻译函数。
  • 核对参数传递细节
    确认调用t('message', {gender: 'female'})时,gender参数值与messages中的枚举值完全一致(区分大小写)。可先测试other分支,传入gender: 'unknown',若仍不生效,说明messages未被正确加载。

  • 检查版本兼容性
    Next.js 13.4需搭配next-intl v3及以上版本,若使用旧版本可能存在兼容性问题,执行npm install next-intl@latest升级到最新稳定版。

  • 清除缓存并重启
    开发环境下删除.next文件夹,重启开发服务器;生产环境重新构建项目,避免缓存导致messages未更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:22:38