语言检测
语言检测指的是在用户没有手动选择语言的情况下,自动推断应该使用哪种语言。插件支持从 URL 路径、Cookie、请求头、浏览器设置等多个来源检测,可以组合使用。
检测优先级
无论启用了哪些检测方式,优先级固定如下(从高到低):
- SSR 数据:从
window._SSR_DATA读取服务端渲染时已检测到的语言,确保客户端与服务端一致,避免语言闪烁 - 路径检测:从 URL 路径前缀读取(需要启用
localePathRedirect) - i18next 检测器:按
detection.order配置的顺序依次检测(Cookie、LocalStorage、查询参数等) - initOptions.lng:运行时配置中强制指定的语言
- fallbackLanguage:所有检测方式均失败时的兜底语言
检测方式
URL 路径检测
设置 localePathRedirect: true 后,插件从 URL 路径前缀识别语言,并将无前缀的路径自动重定向到默认语言:
启用路径检测后,还需要在路由中配置 [lang] 动态参数,详见路由集成。
i18next 检测器
设置 i18nextDetector: true 后,启用从 Cookie、LocalStorage、查询参数、请求头等位置检测语言:
两种方式可以同时启用:
检测选项(detection)
默认检测顺序(未配置 order 时):
order 可用值:
ignoreRedirectRoutes
指定哪些路径跳过语言路径重定向,适用于 API 路由、静态资源等不需要语言前缀的路径。
写法一:字符串数组(支持精确匹配和前缀匹配)
写法二:函数(更灵活的自定义逻辑)