指南

层级

使用层级扩展 Nuxt i18n 项目。

Nuxt i18n 模块支持层级,并会自动合并所有扩展层的 i18n 配置。在此处了解更多关于层级的信息

合并策略

Nuxt 层编写指南 所述:

  • _layers 数组中较早的项具有更高优先级,会覆盖后面的项
  • 用户的项目是 _layers 数组中的第一项

混合本地化配置(如延迟加载对象和字符串)可能不会如预期工作,Nuxt i18n 会尽力合并层级。确保各层间 i18n 配置的一致性将更为有效。

页面 & 路由

来自扩展层的 pages 目录中的页面会自动合并,并具备 i18n 支持,就如同它们是你项目的一部分。

在每个层的配置中 i18n.pages 定义的页面路由也会被合并。

本地化语言

扩展了已设置 Nuxt i18n 模块层的项目无需额外配置,如下示例所示:

export default defineNuxtConfig({
  extends: ['my-layer']
})

项目能够使用 i18n 功能,所配置的本地化语言文件由扩展的层提供并加载。

合并本地化语言

项目中提供的本地化语言会与扩展层提供的合并,做法如下:

export default defineNuxtConfig({
  extends: ['my-layer'],
  i18n: {
    locales: [{ code: 'en', file: 'en.json' }]
  }
})

此示例将使项目支持两个语言('en', 'nl'),并且会添加为 'en' 语言额外添加的消息。

{
  "title": "foo"
}

以上结果为:

{
  // 较早的层拥有优先权
  "title": "foo",
  "description": "bar"
}

VueI18n 选项

层内的 VueI18n 配置文件中定义的选项会合并,并根据其层级优先权相互覆盖。