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
是继承的,而选项如 langDir
和 locales
需要为每个提供语言文件的层(包括项目)设置。这个例子将导致项目支持两种语言环境 (en
, nl
),并将为 en
语言环境添加额外的消息。
{
"title": "foo"
}
上述内容将导致以下结果
{
// 较早的层优先
"title": "foo",
"description": "bar"
}
在层中的 VueI18n 配置文件中定义的选项被合并,并根据它们的层优先级相互覆盖。