回调函数
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' }]
}