为你的文档站点添加多语言支持。docmd 以各自的 URL 前缀提供每种语言区域的内容,翻译系统 UI 字符串,并在缺少翻译时优雅地回退。

在配置中添加语言

// docmd.config.js
export default {
  i18n: {
    default: 'en',
    locales: [
      { id: 'en', label: 'English' },
      { id: 'hi', label: 'हिन्दी' },
      { id: 'zh', label: '中文' }
    ]
  }
}

default 语言区域在站点根路径(/)渲染。其他所有区域在 /{id}/ 渲染。你可以自由选择 ID、标签以及哪个区域为默认值——没有任何硬编码假设。如果想以印地语为默认语言,设置 default: 'hi',印地语将在 / 渲染,英语在 /en/ 渲染。

类型 说明
default string / 渲染的区域 ID。省略时默认为第一个区域。
locales array 区域对象列表。每个对象必须包含 id
position string 语言切换器的显示位置。options-menu(默认)、sidebar-topsidebar-bottom

每个区域对象可包含以下字段:

类型 默认值 说明
id string 你选择的任意标识符(如 enhifr-ca)。用作文件夹名称和 URL 前缀。必填。
label string id 语言切换器中显示的名称。
dir string ltr 文字方向。阿拉伯语、希伯来语等设为 rtl
translations object {} 自定义 UI 字符串覆盖(参见 自定义 UI 字符串)。

URL 结构

默认区域没有 URL 前缀。非默认区域嵌套在 /{id}/ 下。与版本控制结合使用时,URL 格式为 /{locale}/{version}/page

/                       ← 默认区域,当前版本
/getting-started        ← 默认区域页面
/05/                    ← 默认区域,旧版本
/hi/                    ← 非默认区域,当前版本
/hi/getting-started     ← 非默认区域页面
/hi/05/                 ← 非默认区域,旧版本

切换语言时,语言切换器会保留当前页面和版本。版本切换器会保留当前语言区域。

缺失的语言区域目录

如果在 locales 中声明了某个语言区域,但其源目录不存在(例如没有 docs/hi/ 文件夹),docmd 会自动在语言切换器中禁用该语言区域。该语言区域仍会出现在下拉菜单中 — 带有"N/A"标记和灰色样式 — 但点击不会产生任何效果。

这可以防止在您列出计划中的语言但内容尚未准备好时出现 404 错误。

语言切换器位置

使用 position 选项控制语言切换器的显示位置:

i18n: {
  position: 'options-menu',  // 默认
  // ...
}
位置 行为
options-menu 紧凑的地球仪图标,与主题切换和搜索并排。默认。
sidebar-top 带标签的完整下拉菜单,位于侧边栏顶部。
sidebar-bottom 带标签的完整下拉菜单,位于侧边栏底部。

后续步骤