翻译内容
目录结构
每种语言区域(包括默认区域)在源目录中都有自己的子目录。文件夹名称与配置中的区域 id 匹配。
docs/
├── en/ ← 默认区域内容
│ ├── index.md
│ ├── navigation.json
│ └── getting-started/
│ └── installation.md
├── hi/ ← 第二语言区域
│ ├── index.md ← 翻译后的首页
│ ├── navigation.json ← 翻译后的导航标签
│ └── getting-started/
│ └── installation.md ← 翻译后的页面
└── zh/ ← 第三语言区域
└── index.md ← 仅翻译了首页
源目录是纯净的容器——启用 i18n 后,根目录下不放任何内容文件,只放语言区域文件夹。
文件夹名称由你决定
文件夹名称直接来自配置中的 id 值。如果配置中写的是 { id: 'fr-ca' },文件夹就是 docs/fr-ca/。如果印地语是默认区域(default: 'hi'),则 docs/hi/ 就是规范内容目录。
逐文件回退
无需翻译每一个页面。docmd 以默认区域的目录为页面规范列表。对于其他区域,会检查每个页面是否存在翻译版本:
- 如果
docs/hi/getting-started/installation.md存在 → 提供印地语翻译 - 如果不存在 → 提供该页面的默认区域版本
当页面发生回退时,docmd 可以显示一个翻译后的提示框,告知用户当前页面以默认语言展示。该消息可通过UI 字符串配置自定义。
仅限该区域的页面
非默认区域也可以拥有默认区域中不存在的页面。这些页面仅为该区域渲染,不会出现在其他区域中。
翻译导航
每个区域目录都可以有自己的 navigation.json。docmd 使用级联优先级系统来解析侧边栏。
有关解析层级结构和视觉示例的详细信息,请参阅 导航解析优先级。
区域的 navigation.json 使用相同格式:
[
{
"title": "शुरू करें",
"children": [
{ "title": "इंस्टालेशन", "path": "/getting-started/installation" },
{ "title": "स्थानीयकरण", "path": "/configuration/localisation" }
]
}
]
部分导航
只有在需要翻译标签时才需要创建区域 navigation.json。如果缺少该文件,将使用默认区域的导航——页面仍正常渲染,只是标签未翻译。
版本控制与 i18n 结合使用
同时配置版本控制和 i18n 时,源目录结构如下:
docs/ ← 当前版本(容器)
en/ ← 当前版本,默认区域
hi/ ← 当前版本,翻译区域
docs-v1/ ← 旧版本
index.md ← 旧版本内容(无区域结构)
navigation.json
早于 i18n 的旧版本可自动工作——当没有区域子目录时,docmd 直接读取。只有默认区域渲染旧版本。如需为旧版本添加翻译,在旧版本目录中创建区域子目录:
docs-v1/
hi/ ← v1 的印地语翻译
index.md
navigation.json
输出 URL 按区域优先、版本其次的顺序嵌套:
/ ← 默认区域,当前版本
/hi/ ← 翻译区域,当前版本
/v1/ ← 默认区域,旧版本
/hi/v1/ ← 翻译区域,旧版本