指南
运行时钩子
Nuxt i18n 模块提供运行时钩子,可以根据应用的语言执行特定任务。
Nuxt i18n 模块 提供运行时钩子,以根据应用的语言执行特定任务。
钩子
'i18n:beforeLocaleSwitch'
在应用的语言环境切换之前调用。可以通过返回一个新的语言环境代码来覆盖新的语言环境。
参数:
oldLocale
- 类型:
string
- 切换前的应用语言环境
- 类型:
newLocale
- 类型:
string
- 切换后的应用语言环境
- 类型:
initialSetup
- 类型:
string
- 如果这是首次触发的语言环境切换(即应用加载时),则设置为
true
。这是一个特殊情况,因为语言环境在技术上尚未设置,所以我们是从无语言环境切换到语言环境。
- 类型:
context
- 类型:
NuxtApp
- Nuxt 应用
- 类型:
返回: string | null
'i18n:localeSwitched'
在应用的语言环境切换后立即调用。
参数:
oldLocale
- 类型:
string
- 切换前的应用语言环境
- 类型:
newLocale
- 类型:
string
- 切换后的应用语言环境
- 类型:
使用方法
典型的用法是在插件中定义这些回调,以便您可以访问应用的上下文(例如,如果在语言更改时需要更改 Axios 的配置)。
/plugins/i18n.ts
export default defineNuxtPlugin(nuxtApp => {
// 在设置新语言环境之前调用
nuxtApp.hook('i18n:beforeLocaleSwitch', ({ oldLocale, newLocale, initialSetup, context }) => {
console.log('在语言切换之前', oldLocale, newLocale, initialSetup)
})
// 在设置新语言环境之后立即调用
nuxtApp.hook('i18n:localeSwitched', ({ oldLocale, newLocale }) => {
console.log('语言已切换', oldLocale, newLocale)
})
})