使用getServerSideProps与next-i18next时生产环境翻译加载失败
解决方案
针对你在Vercel生产环境中使用getServerSideProps时next-i18next翻译失效的问题,可以尝试以下排查和解决步骤:
检查翻译文件路径配置
在next-i18next.config.js中确保localePath使用绝对路径,避免生产环境因工作目录差异找不到文件:const path = require('path'); module.exports = { i18n: { locales: ['en', 'zh'], // 替换为你的实际语言列表 defaultLocale: 'en', }, localePath: path.resolve('./public/locales'), };也可以在
serverSideTranslations调用时显式指定路径:import path from 'path'; // ... return { props: { quote, ...(await serverSideTranslations(locale, ["common", "nav", "portal", "footer", "configurations"], { localePath: path.resolve('./public/locales'), })), }, };确认locale参数有效性
在getServerSideProps中打印locale值(生产环境可通过Vercel日志查看),确保它是Next.js i18n配置中定义的有效值,避免传入未注册的语言标识导致加载失败。验证翻译文件完整性
检查public/locales下每个语言文件夹(如en、zh)是否都包含common.json、nav.json等你调用的翻译文件,且文件名、键名拼写完全一致。同时确认.gitignore没有排除public/locales目录,保证部署时文件能被正常上传到Vercel。查看Vercel构建日志
登录Vercel控制台查看项目的构建和部署日志,搜索是否有翻译文件加载失败的报错信息(如文件找不到),这能直接定位问题根源。检查版本兼容性
确认next-i18next版本与你使用的Next.js(Pages Router)版本兼容,比如Next.js 13+ Pages Router建议搭配next-i18nextv13.x版本,版本不匹配可能导致生产环境异常。
内容的提问来源于stack exchange,提问作者ThibaultFeraux
相关产品推荐
相关产品推荐

