Skip to content

多语言 ​

Nexus 内置自研 i18n 引擎,支持 URL 语言前缀与双语 SEO,让产品可以「一份代码、多语言发布」。

语言包 ​

  • 文案集中在 app/locales/:zh.ts(中文)、en.ts(英文)、index.ts(聚合与语言列表)。
  • 组件通过 useI18n / useLocale 组合式函数读取当前语言文案。
  • 语言切换由 app/middleware/locale.global.ts 在路由层面生效。

URL 语言前缀 ​

构建期开关 localeUrlPrefix(默认开启,对应 NUXT_LOCALE_URL_PREFIX)决定 URL 形态:

模式行为
开启(默认)中文无前缀、英文带 /en 前缀(prefix_except_default);SEO 双语言索引
关闭退化为纯 cookie 单语言 URL,不复制 /en 路由;hreflang 只出 x-default,sitemap 只出单版本

示例:

  • 中文首页:/
  • 英文首页:/en

双语 SEO ​

  • Sitemap:server/routes/sitemap.xml.ts 生成包含各语言版本的站点地图。
  • hreflang / canonical:自动注入 <link rel="alternate" hreflang="..."> 与 canonical,域名来源为 NUXT_APP_URL。
  • OpenID 发现:配合 OAuth 的 .well-known/openid-configuration,多语言站点也能正确暴露元数据。

因为 SEO 相关地址依赖 NUXT_APP_URL,请确保其值(协议+host+端口)与浏览器实际访问地址完全一致,否则 hreflang / sitemap 域名会异常。

运行期语言配置 ​

  • 默认语言与「是否显示语言切换器」由系统配置页「语言」Tab 管理,修改即时生效(存 settings 表)。
  • 这与构建期 localeUrlPrefix 开关互补:前者控制「默认语言与 UI 开关」,后者控制「URL 是否带前缀」。

相关位置 ​

路径作用
app/locales/zh.ts中文文案
app/locales/en.ts英文文案
app/locales/index.ts语言列表与聚合
app/composables/useI18n.tsi18n 组合式函数
app/composables/useLocale.ts当前语言/切换
app/middleware/locale.global.ts语言路由中间件
nuxt.config.ts → runtimeConfig.localeUrlPrefixURL 前缀开关