指南

使用层扩展 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: {
    langDir: './lang',
    locales: [{ code: 'en', file: 'en.json' }]
  }
})
注意一些选项如 lazy 是继承的,而选项如 langDirlocales 需要为每个层(包括项目)设置,以提供语言文件。

这个例子将导致项目支持两种语言环境(ennl),并将为 en 语言环境添加额外的消息。

{
  "title": "foo"
}

上述将导致以下结果

{
  // 早期层优先
  "title": "foo",
  "description": "bar"
}

VueI18n 选项

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