资源加载
翻译文件的加载方式取决于你的翻译资源放在哪里:
静态文件后端
把翻译文件放在项目里,插件直接加载。这是最常见的方式。
CSR 和 SSR 的加载机制不同,但配置完全一样:
- CSR:浏览器通过 HTTP 请求拉取翻译文件(如
GET /locales/zh/translation.json) - SSR:服务端直接从磁盘读取文件,不走 HTTP
插件会根据运行环境自动选择,你只需要配置一次 loadPath。
资源文件位置:
如果想放在其他目录,通过 server.publicDir 指定。其中,server.publicDir 和 backend.loadPath 的关系:
server.publicDir:决定哪个本地目录被暴露为静态资源,即文件放在哪里backend.loadPath:决定 i18next 请求哪个 URL 去加载翻译文件,或者服务端从哪个路径去读取文件
自定义后端
翻译资源不在本地文件,而是来自远程 API、数据库或翻译平台时,通过一个异步函数来加载。
第一步:在 modern.config.ts 中声明启用
第二步:在 modern.runtime.ts 中实现加载函数
加载函数的参数类型:
使用自定义后端时,翻译资源需要异步加载,可以用 isResourcesReady 在加载完成前显示 loading 状态,用法见最佳实践 → 加载状态处理。
链式后端
同时使用本地文件和自定义后端,实现「先快速显示本地翻译,再异步更新为最新翻译」:
- 页面加载时,立即从本地文件加载翻译并显示
- 后台异步从自定义后端加载最新翻译,完成后自动更新页面
cacheHitMode 选项(控制两个后端之间的协作方式):