Guide

运行时钩子

Nuxt i18n 模块暴露了一些运行时钩子作为回调,可以用来执行依赖于应用语言的特定任务。
对于 v8.0.0-beta.10 及更早版本,请参考 回调配置

Nuxt i18n 模块 提供了一些回调,你可以用来执行依赖于应用语言的特定任务。

i18n:beforeLocaleSwitch

在应用的语言环境切换之前调用。可以通过返回新的语言代码来覆盖新的语言环境。

参数:

  • oldLocale: 切换之前的应用语言环境
  • newLocale: 切换之后的应用语言环境
  • initialSetup: 如果这是应用加载时触发的初始语言环境切换,则设置为 true。这是一个特殊情况,因为语言环境在技术上尚未设置,因此我们是从没有语言环境切换到有语言环境。
  • context: Nuxt 应用

返回值: string 或 Nothing

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)
  })
})