|
| 1 | +--- |
| 2 | +name: docs-i18n |
| 3 | +description: >- |
| 4 | + Sync GenUI SDK docs between Chinese and English when adding, editing, renaming, |
| 5 | + or deleting documentation under docs/. Use when the user modifies docs/src/, |
| 6 | + docs/demos/, docs/demos/en/, zh-theme.ts, en-theme.ts, or asks to update |
| 7 | + English docs, i18n docs, or mirror Chinese documentation changes. |
| 8 | +--- |
| 9 | + |
| 10 | +# GenUI SDK 文档国际化 |
| 11 | + |
| 12 | +完整约定见仓库根目录 `docs/I18N.md`。修改中文文档时(共享 demo、仅改图片等例外除外),**必须同步**英文镜像与导航配置。 |
| 13 | + |
| 14 | +## 目录映射 |
| 15 | + |
| 16 | +| 类型 | 中文 | 英文 | |
| 17 | +|------|------|------| |
| 18 | +| Markdown | `docs/src/<path>.md` | `docs/src/en/<path>.md` | |
| 19 | +| Demo | `docs/demos/<path>.vue` | `docs/demos/en/<path>.vue` | |
| 20 | +| 图片 | `docs/src/public/`(共用,无需复制) | 同上 | |
| 21 | +| 中文导航 | `docs/.vitepress/config/zh-theme.ts` | — | |
| 22 | +| 英文导航 | — | `docs/.vitepress/config/en-theme.ts` | |
| 23 | + |
| 24 | +**路径规则**: |
| 25 | + |
| 26 | +- 文档:`docs/src/examples/chat/foo.md` → `docs/src/en/examples/chat/foo.md`(在 `src/` 后插入 `en/`) |
| 27 | +- Demo:`docs/demos/chat/foo.vue` → `docs/demos/en/chat/foo.vue`(在 `demos/` 后插入 `en/`,文件名相同) |
| 28 | + |
| 29 | +## 工作流程 |
| 30 | + |
| 31 | +根据用户操作选择对应流程,完成后执行「验证清单」。 |
| 32 | + |
| 33 | +### 新增文档 |
| 34 | + |
| 35 | +1. 编写中文 `docs/src/<path>.md` |
| 36 | +2. 有交互示例时: |
| 37 | + - 中文:`docs/demos/<name>.vue` |
| 38 | + - 含中文 UI/文案时:`docs/demos/en/<name>.vue`(翻译 UI 文案、alert、Schema label 等;代码注释可翻译或保留) |
| 39 | + - 纯英文、无文本、或 i18n 演示类 demo → 共用中文版,不建 `demos/en/` 镜像 |
| 40 | +3. 图片放入 `docs/src/public/`(中英文共用) |
| 41 | +4. 在 `zh-theme.ts` 对应 sidebar 添加条目: |
| 42 | + ```ts |
| 43 | + { text: '中文标题', link: '/examples/chat/my-feature' }, |
| 44 | + ``` |
| 45 | +5. 创建并翻译 `docs/src/en/<path>.md` |
| 46 | +6. 在 `en-theme.ts` 对应 sidebar 添加条目(链接带 `/en` 前缀): |
| 47 | + ```ts |
| 48 | + { text: 'English Title', link: '/en/examples/chat/my-feature' }, |
| 49 | + ``` |
| 50 | +7. 本地预览:`cd docs && pnpm dev` |
| 51 | + |
| 52 | +### 修改文档 |
| 53 | + |
| 54 | +| 变更类型 | 同步动作 | |
| 55 | +|----------|----------| |
| 56 | +| 改正文 / 标题 / 代码块 | 更新 `docs/src/en/` 下对应文件(翻译变更部分) | |
| 57 | +| 改 demo 引用或逻辑 | 同步 `docs/demos/` 与 `docs/demos/en/` 中对应 `.vue`(如有) | |
| 58 | +| 改 sidebar 文案或顺序 | 同步更新 `zh-theme.ts` 与 `en-theme.ts` 对应条目 | |
| 59 | +| 仅改图片 | 无需动英文 md(public 共用) | |
| 60 | + |
| 61 | +### 重命名 / 移动 |
| 62 | + |
| 63 | +1. 移动中文 md → 同步移动 `docs/src/en/` 下镜像文件 |
| 64 | +2. 移动 demo → 同步移动 `docs/demos/en/` 下镜像文件(如存在) |
| 65 | +3. 更新 `zh-theme.ts` 与 `en-theme.ts` 中所有相关 `link` |
| 66 | +4. 检查文档内相对路径引用是否仍有效 |
| 67 | + |
| 68 | +### 删除文档 |
| 69 | + |
| 70 | +1. 删除 `docs/src/<path>.md` |
| 71 | +2. 删除 `docs/src/en/<path>.md` |
| 72 | +3. 删除关联 demo(`docs/demos/` 与 `docs/demos/en/` 下对应文件) |
| 73 | +4. 从 `zh-theme.ts` 与 `en-theme.ts` 移除对应 sidebar 条目 |
| 74 | + |
| 75 | +## 英文文档编写规则 |
| 76 | + |
| 77 | +### 路径调整(从中文复制时必改) |
| 78 | + |
| 79 | +英文 md 比中文多一层 `en/`,`<demo>` 与图片的相对路径需**多加一层 `../`**,并将 demo 路径指向 `demos/en/`: |
| 80 | + |
| 81 | +```markdown |
| 82 | +<!-- 中文 docs/src/examples/chat/foo.md --> |
| 83 | +<demo vue="../../../demos/chat/foo.vue" /> |
| 84 | + |
| 85 | +<!-- 英文 docs/src/en/examples/chat/foo.md --> |
| 86 | +<demo vue="../../../../demos/en/chat/foo.vue" /> |
| 87 | +``` |
| 88 | + |
| 89 | +- 文档内互相引用:相对路径写法与中文相同 |
| 90 | +- sidebar / nav 的 `link`:英文必须带 `/en` 前缀(如 `/en/guide/quick-start`) |
| 91 | + |
| 92 | +### 翻译原则 |
| 93 | + |
| 94 | +- 翻译自然、技术准确的英文,勿逐字机翻 |
| 95 | +- 保留 API 名称、组件名、包名、文件名、路径(如 `@opentiny/genui-sdk-vue`、`GenuiChat`) |
| 96 | +- 代码块:仅翻译注释与字符串字面量;结构、导入、类型与中文一致 |
| 97 | +- 标题层级、章节顺序、代码块行高亮(如 `{12-19}`)与中文版对齐 |
| 98 | + |
| 99 | +### Demo 需翻译的内容 |
| 100 | + |
| 101 | +| 类型 | 示例 | 处理 | |
| 102 | +|------|------|------| |
| 103 | +| UI 文案 | `<button>新建会话</button>` | 译成英文 | |
| 104 | +| 代码注释 | `// 获取会话对象` | 翻译或保留 | |
| 105 | +| Schema 内容 | `label: '姓名'` | 译成英文 | |
| 106 | +| alert 消息 | `alert('复制成功')` | 译成英文 | |
| 107 | + |
| 108 | +### 无需国际化的 Demo |
| 109 | + |
| 110 | +以下 demo 无需创建 `demos/en/` 镜像,直接共用中文版: |
| 111 | + |
| 112 | +- 纯英文内容的 demo |
| 113 | +- 国际化示例 demo(如 `i18n.vue`,本身演示 i18n 功能) |
| 114 | +- 无文本内容的 demo |
| 115 | + |
| 116 | +## 导航配置对照 |
| 117 | + |
| 118 | +两个 theme 文件结构镜像,修改时成对维护: |
| 119 | + |
| 120 | +- `zh-theme.ts`:`nav` / `sidebar` 的 `link` 无 `/en` 前缀 |
| 121 | +- `en-theme.ts`:相同路径结构,`link` 以 `/en` 开头;`text` 为英文 |
| 122 | + |
| 123 | +sidebar 按路径前缀分组(`/guide/`、`/components/`、`/examples/`、`/schema/`、`/advanced/`),新增条目放入与中文版相同的分组与层级。 |
| 124 | + |
| 125 | +## 验证清单 |
| 126 | + |
| 127 | +完成同步后逐项确认: |
| 128 | + |
| 129 | +```markdown |
| 130 | +- [ ] docs/src/en/ 下存在对应的翻译文件,路径正确 |
| 131 | +- [ ] zh-theme.ts 与 en-theme.ts 均有对应 sidebar 条目且 link 正确 |
| 132 | +- [ ] zh-theme.ts 与 en-theme.ts 顶层 nav 映射一致,英文 link 带 /en 前缀 |
| 133 | +- [ ] 英文 md 中 <demo> 路径多一层 ../,且指向 demos/en/ 下对应文件(如需) |
| 134 | +- [ ] demo 含中文内容时已在 docs/demos/en/ 提供镜像 |
| 135 | +- [ ] 删除场景下无残留英文文件、demo、sidebar 条目 |
| 136 | +- [ ] 可选:cd docs && pnpm dev 本地预览中英文页面 |
| 137 | +``` |
| 138 | + |
| 139 | +## 快速定位镜像文件 |
| 140 | + |
| 141 | +```text |
| 142 | +中文:docs/src/examples/chat/history.md |
| 143 | +英文:docs/src/en/examples/chat/history.md |
| 144 | +
|
| 145 | +中文 demo:docs/demos/chat/history.vue |
| 146 | +英文 demo:docs/demos/en/chat/history.vue |
| 147 | +``` |
0 commit comments