扩展消息钩子

如果你是一个 模块作者,并且希望你的模块为你的项目提供额外的消息,你可以通过使用 i18n:extend-messages 钩子将它们合并到正常加载的消息中。

要做到这一点,在你的模块的设置文件中监听 Nuxt 钩子并推送你的消息。@nuxtjs/i18n 会处理其余的事情。

这在你的模块使用翻译内容并希望为用户提供很好的默认翻译时特别有用。

示例:

my-module-exemple/setup.js
export default function () {
  const { nuxt } = this

  nuxt.hook('i18n:extend-messages', function (additionalMessages) {
    additionalMessages.push({
      en: {
        'my-module-example': {
          hello: 'Hello from external module'
        }
      },
      fr: {
        'my-module-example': {
          hello: 'Bonjour depuis le module externe'
        }
      }
    })
  })
}

现在项目可以访问新消息并通过 $t('my-module-example.hello') 使用它们。

由于模块的消息与项目的消息合并,因此最好为它们添加前缀。主项目的消息 总是会覆盖 模块的消息。