高级用法
SSR 场景
SSR 场景下,插件在服务端检测语言、加载翻译资源,并将结果注入页面,客户端直接复用,避免语言闪烁。
完整配置:
服务端检测语言的优先级:URL 路径 → Cookie → Accept-Language 请求头 → fallbackLanguage。
路由配置(约定式路由):
SSR 场景下,服务端检测到的语言会写入 window._SSR_DATA,客户端直接读取,不会再重新检测,确保两端语言一致。
多入口配置
不同入口可以使用不同的语言列表、检测方式和资源路径:
自定义 i18next 实例
默认情况下,插件会使用内部创建的 i18next 实例。如果需要对实例进行深度定制(如使用自定义插件、预配置选项),可以在运行时配置中传入自定义实例:
语言切换行为说明
调用 changeLanguage 切换语言时:
- 翻译更新:所有使用
t()的组件自动重新渲染,无需手动刷新 - URL 更新(启用
localePathRedirect时):使用history.pushState更新 URL,不触发页面刷新,不影响浏览器前进/后退历史 - 缓存更新:根据
caches配置写入 Cookie 或 LocalStorage,下次访问自动还原语言选择 - 未启用路径前缀时:只更新 i18next 实例和缓存,URL 不变