回调函数

nuxt/i18n v7 回调函数。

@nuxtjs/i18n 暴露了一些回调函数,可以用于执行依赖于应用语言的特定任务。

onBeforeLanguageSwitch

在应用的区域设置切换之前调用。可以通过返回新的区域代码来覆盖新的区域设置。

参数:

  • oldLocale: 切换前的应用区域设置
  • newLocale: 切换后的应用区域设置
  • isInitialSetup: 如果这是在应用加载时触发的初始区域切换,则设置为 true。这是一个特殊情况,因为区域设置在技术上尚未设置,所以我们是从无区域切换到有区域。
  • context: Nuxt 上下文

返回:string 或者无

onLanguageSwitched

在应用的区域设置切换之后立即调用。

参数:

  • oldLocale: 切换前的应用区域设置
  • newLocale: 切换后的应用区域设置

用法

典型用法是在插件中定义这些回调,你可以访问应用的上下文(如果你需要在语言更改时改变 Axios 的配置,这将非常有用)。

/plugins/i18n.js
export default function ({ app }) {
  // onBeforeLanguageSwitch 在设置新区域之前调用
  app.i18n.onBeforeLanguageSwitch = (oldLocale, newLocale, isInitialSetup, context) => {
    console.log(oldLocale, newLocale, isInitialSetup)
  }
  // onLanguageSwitched 在新区域设置后立即调用
  app.i18n.onLanguageSwitched = (oldLocale, newLocale) => {
    console.log(oldLocale, newLocale)
  }
}

将插件添加到 Nuxt 的配置中:

nuxt.config.js
module.exports = {
  plugins: [{ src: '~/plugins/i18n.js' }]
}