国际化
为你的文档站点添加多语言支持。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-top 或 sidebar-bottom。 |
每个区域对象可包含以下字段:
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
id |
string |
— | 你选择的任意标识符(如 en、hi、fr-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 |
带标签的完整下拉菜单,位于侧边栏底部。 |
后续步骤
- 翻译内容 — 目录结构、编写翻译、导航
- UI 字符串与 SEO — 自定义系统文本、hreflang 标签