指南

运行时钩子

Nuxt i18n 模块公开了一些运行时钩子作为回调,您可以使用它们来执行依赖于应用程序语言的特定任务。
对于 v8.0.0-beta.10 及以下版本,请参阅 回调配置

Nuxt i18n 模块 公开了一些回调,您可以使用它们来执行依赖于应用程序语言的特定任务。

i18n:beforeLocaleSwitch

在应用程序的语言包切换之前调用。可以通过返回一个新的语言包代码来覆盖新的语言包。

参数:

  • oldLocale: 切换前的应用程序语言包
  • newLocale: 切换后的应用程序语言包
  • initialSetup: 如果这是在应用程序加载时触发的初始语言包切换,则设置为 true。这是一个特例,因为语言包还没有被正式设置,因此我们是从没有语言包切换到语言包。
  • context: Nuxt 应用程序

返回: string 或无

i18n:localeSwitched

在应用程序的语言包刚切换后调用。

参数:

  • oldLocale: 切换前的应用程序语言包
  • newLocale: 切换后的应用程序语言包

用法

典型用法是在插件中定义这些回调,在那里您可以访问应用程序的上下文(如果您需要在语言变化时更改 Axios 的配置,例如,这将很有用)。

/plugins/i18n.ts
export default defineNuxtPlugin(nuxtApp => {
  // 在设置新语言包之前调用
  nuxtApp.hook('i18n:beforeLocaleSwitch', ({ oldLocale, newLocale, initialSetup, context }) => {
    console.log('onBeforeLanguageSwitch', oldLocale, newLocale, initialSetup)
  })

  // 在设置新语言包之后立即调用
  nuxtApp.hook('i18n:localeSwitched', ({ oldLocale, newLocale }) => {
    console.log('onLanguageSwitched', oldLocale, newLocale)
  })
})