指南
层
使用层扩展 Nuxt i18n 项目。
Nuxt i18n 模块支持层,将自动合并所有扩展层的 i18n 配置。在这里阅读更多有关层的信息
合并策略
如 Nuxt 层开发指南 中所述:
_layers
数组中的早期项具有更高的优先级,并覆盖后面的项- 用户的项目是
_layers
数组中的第一项
混合区域配置(例如延迟加载对象和字符串)可能无法按预期工作,Nuxt i18n 将尽可能地合并层。层之间的 i18n 配置一致性将是最有效的。
页面与路由
来自扩展层的 pages
目录中的页面将自动合并,并具有 i18n 支持,就像它们是您项目的一部分一样。
在每个层配置的 i18n.pages
中定义的页面路由也将被合并。
语言环境
扩展了使用 Nuxt i18n 模块的层的项目无需额外设置,如下例所示:
export default defineNuxtConfig({
extends: ['my-layer']
})
export default defineNuxtConfig({
modules: ['@nuxtjs/i18n'],
i18n: {
lazy: true,
locales: [
{ code: 'en', file: 'en.json' },
{ code: 'nl', file: 'nl.json' }
]
}
})
该项目能够使用 i18n 功能,并且配置的语言环境会加载由扩展层提供的内容。
合并语言环境
项目提供的语言环境将与扩展层提供的语言环境合并,可以按如下方式进行:
export default defineNuxtConfig({
extends: ['my-layer'],
i18n: {
locales: [{ code: 'en', file: 'en.json' }]
}
})
export default defineNuxtConfig({
modules: ['@nuxtjs/i18n'],
i18n: {
lazy: true,
locales: [
{ code: 'en', file: 'en.json' },
{ code: 'nl', file: 'nl.json' }
]
}
})
注意一些选项,如
lazy
是继承的,而像 locales
这样的选项需要为每个层(包括项目)设置提供语言文件。这个例子将导致项目支持两个语言环境('en'
, 'nl'
),并将添加为 'en'
语言环境添加的额外消息。
{
"title": "foo"
}
{
"title": "layer title",
"description": "bar"
}
上述结果将如下所示
{
// 早期层优先
"title": "foo",
"description": "bar"
}
VueI18n 选项
层中定义的 VueI18n 配置文件中的选项将被合并,并根据其层优先级相互覆盖。