defineI18nLocaleDetector()
是一个可组合的函数,用于在服务器端检测语言环境,每次请求时在服务器上调用。
该函数需要返回一个语言环境字符串。
您可以在语言环境检测器函数中使用 @intlify/h3
工具,这些工具是自动导入的。
experimental.localeDetector
选项 中。type LocaleConfig = {
defaultLocale: Locale
fallbackLocale: FallbackLocale
}
declare function defineI18nLocaleDetector(
detector: (event: H3Event, config: LocaleConfig) => string
): (event: H3Event, config: LocaleConfig) => string
detector
一个检测语言环境的函数,具有以下参数:
event
H3Event
config
object
defaultLocale
Locale
defaultLocale
选项。如果未设置,则将从 Vue I18n 配置(在 vueI18n
选项中设置的 i18n.config
文件)加载 locale
选项。如果这两个都未设置,则使用默认值 'en-US'
。fallbackLocale
FallbackLocale
vueI18n
选项中设置的 i18n.config
文件)加载的 fallbackLocale
选项。如果未配置后备语言环境,则默认为 false
。一个语言环境检测器的示例:
// 根据查询、cookie、头部检测
export default defineI18nLocaleDetector((event, config) => {
const query = tryQueryLocale(event, { lang: '' })
if (query) {
return query.toString()
}
const cookie = tryCookieLocale(event, { lang: '', name: 'i18n_locale' })
if (cookie) {
return cookie.toString()
}
const header = tryHeaderLocale(event, { lang: '' })
if (header) {
return header.toString()
}
return config.defaultLocale
})