TockDocs LogoTockDocs
AI coding agents: see /llms.txt for the full documentation index. Markdown version: /docs/manual/zh/concepts/internationalization.md.
核心概念

国际化

使用 TockDocs 内置的 i18n 支持创建多语言文档。

TockDocs 在其两种内容模式下均支持国际化:

  • 传统模式 — 带语言前缀的路由,如 /en/.../zh/...
  • 知识库模式 — 知识库感知路由,如 /docs/manual/en/.../docs/manual/zh/...

TockDocs 为您处理的内容

  • 语言感知的内容集合
  • 语言感知的路由生成
  • 文档页面的语言切换器
  • 过滤没有实际内容的语言
  • 当不同知识库提供不同语言集时的知识库感知语言行为

单语言站点

如果您的站点是单语言的且不使用完整的 @nuxtjs/i18n 模块,您仍然可以在 app.config.ts 中设置 UI 语言:

app/app.config.ts
export default defineAppConfig({
  tockdocs: {
    locale: 'zh',
  },
})

这主要用于内置 UI 字符串和文档语言元数据。

使用 @nuxtjs/i18n 的多语言设置

对于真正的本地化文档,请在 nuxt.config.ts 中配置 @nuxtjs/i18n

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxtjs/i18n'],
  i18n: {
    defaultLocale: 'en',
    locales: [
      { code: 'en', name: 'English' },
      { code: 'zh', name: '简体中文' },
    ],
  },
})
TockDocs 强制文档路由策略为 prefix,以确保本地化文档路由保持明确。

传统模式内容结构

在传统模式下,按语言组织内容:

content/
├── en/
   ├── index.md
   └── 1.getting-started/
└── zh/
    ├── index.md
    └── 1.getting-started/

典型路由:

  • content/en/index.md/en
  • content/zh/1.getting-started/3.installation.md/zh/getting-started/installation

知识库模式内容结构

在知识库模式下,语言位于每个知识库内部:

content/
├── site/
   └── index.md
└── manual/
    ├── kb.yml
    ├── en/
   └── 1.getting-started/
    └── zh/
        └── 1.getting-started/

kb.yml 示例:

content/manual/kb.yml
id: manual
title: Manual
defaultLocale: en
locales:
  - en
  - zh
entry: getting-started/installation

典型路由:

  • /docs/manual/en/getting-started/installation
  • /docs/manual/zh/getting-started/installation

语言过滤

TockDocs 只注册有实际内容支持的语言。

这意味着:

  • 仅在 i18n.locales 中声明语言是不够的
  • 对应的内容目录也必须存在
  • 在知识库模式下,语言可用性按每个知识库评估

示例:

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxtjs/i18n'],
  i18n: {
    defaultLocale: 'en',
    locales: ['en', 'zh', 'ja'],
  },
})

如果您的内容只存在于 enzh,那么 ja 将在文档路由中被跳过。

知识库模式下的混合语言数量

知识库模式支持每个知识库拥有不同数量的语言。

例如:

  • manual 可以提供 enzh
  • parser 可以只提供 en

在这种情况下:

  • 语言切换器出现在多语言知识库上
  • 在单语言知识库上保持隐藏

默认语言要求

务必确保您配置的默认语言在内容中实际存在:

  • 传统模式:content/<defaultLocale>/...
  • 知识库模式:content/<kb>/<defaultLocale>/...

如果某个文档语言缺失,TockDocs 会尽可能回退到知识库或站点的默认语言。

起步模板

如果您想要一个预配置的本地化起步模板,请使用:

Terminal
npx create-tockdocs my-docs -t i18n

该起步模板使用传统模式,包含语言文件夹,且 @nuxtjs/i18n 已预先配置。

Copyright © 2026