这个 GitHub Actions 工作流会在文档更新时自动使用 OpenAI API 将中文文档翻译为英文和日文。
- ✅ 自动检测文档变更
- ✅ 使用 OpenAI API 进行高质量翻译
- ✅ 支持英文 (EN) 和日文 (JA) 翻译
- ✅ 保持 Markdown 格式完整
- ✅ 自动提交翻译结果
- ✅ 支持手动触发全量翻译
在你的 GitHub 仓库中,需要配置以下 Secrets:
- 进入仓库的 Settings → Secrets and variables → Actions
- 添加以下 Secrets:
| Secret 名称 | 说明 | 必需 | 示例值 |
|---|---|---|---|
OPENAI_API_KEY |
OpenAI API 密钥 | ✅ 是 | sk-... |
OPENAI_BASE_URL |
OpenAI API 基础 URL | ❌ 否 | https://api.openai.com/v1 (默认值) |
OPENAI_MODEL |
使用的模型名称 | ❌ 否 | gpt-4o-mini (默认值) |
MAX_RETRIES |
翻译失败时的最大重试次数 | ❌ 否 | 3 (默认值) |
RETRY_DELAY |
初始重试延迟(秒) | ❌ 否 | 2 (默认值) |
RETRY_BACKOFF |
重试延迟的退避倍数 | ❌ 否 | 2.0 (默认值) |
如果你使用 New API 等 API 网关服务,可以配置自定义的 Base URL:
OPENAI_BASE_URL=https://your-newapi-domain.com/v1
OPENAI_API_KEY=your-api-key
OPENAI_MODEL=gpt-4o-mini
系统默认会在翻译失败时自动重试,你可以自定义重试策略:
MAX_RETRIES=3 # 最大重试次数(默认 3)
RETRY_DELAY=2 # 初始延迟秒数(默认 2)
RETRY_BACKOFF=2.0 # 延迟倍数(默认 2.0)
重试机制说明:
- 采用指数退避策略,每次重试的延迟时间会递增
- 第 1 次重试:等待 2 秒
- 第 2 次重试:等待 4 秒(2 × 2.0)
- 第 3 次重试:等待 8 秒(2 × 2.0²)
- 如果所有重试都失败,则抛出错误
工作流会在以下情况自动运行:
- 当你推送更改到
main分支 - 且修改了
docs/**/*.md文件(不包括docs/en/和docs/ja/)
示例工作流程:
# 1. 编辑中文文档
vim docs/guide/getting-started.md
# 2. 提交并推送
git add docs/guide/getting-started.md
git commit -m "更新快速开始指南"
git push origin main
# 3. GitHub Actions 会自动:
# - 检测到文档变更
# - 翻译为英文和日文
# - 将翻译文件提交到 docs/en/ 和 docs/ja/你也可以手动触发工作流来强制翻译所有文档:
- 进入 Actions 标签页
- 选择 Auto Translate Documentation 工作流
- 点击 Run workflow
- 勾选 强制翻译所有文档 选项
- 点击 Run workflow 按钮
这会翻译所有中文文档,无论是否有变更。
docs/
├── index.md # 中文原文
├── getting-started.md # 中文原文
├── en/ # 英文翻译(自动生成)
│ ├── index.md
│ └── getting-started.md
└── ja/ # 日文翻译(自动生成)
├── index.md
└── getting-started.md
- 触发条件检查: 检查是否有中文文档被修改
- 环境准备: 安装 Python 和必要的依赖
- 变更检测: 识别哪些文档需要翻译
- 翻译处理:
- 使用 OpenAI API 翻译文档
- 保持 Markdown 格式
- 保留代码块不翻译
- 保持专有名词不变
- 提交结果: 自动提交翻译后的文件到仓库
翻译脚本包含以下质量保证措施:
- ✅ 保持 Markdown 语法完整(标题、列表、链接等)
- ✅ 代码块内容不翻译
- ✅ 图片路径和链接保持不变
- ✅ 专业术语使用行业标准翻译
- ✅ 专有名词(如 "New API"、"Cherry Studio")保持不变
- ✅ 使用较低温度参数 (0.3) 以获得更一致的翻译
可能原因:
- OpenAI API 密钥未配置或无效
- API 配额用尽
- 网络连接问题
解决方法:
- 检查 GitHub Secrets 配置
- 验证 API 密钥是否有效
- 检查 API 账户余额
- 查看 Actions 日志获取详细错误信息
解决方法:
- 尝试使用更高级的模型(如
gpt-4o) - 检查原文是否清晰准确
- 手动调整翻译后的文件
可能原因:
- 文件路径在
docs/en/或docs/ja/下(这些会被自动跳过) - 文件不是
.md格式 - 没有检测到文件变更
解决方法:
- 使用手动触发模式强制翻译所有文档
- 先写好中文文档: 确保中文文档质量,这会直接影响翻译质量
- 使用标准 Markdown: 遵循标准 Markdown 语法以确保格式正确
- 批量提交: 一次性修改多个文档后提交,可以减少 API 调用次数
- 检查翻译结果: 自动翻译后,建议人工检查重要文档的翻译质量
- 成本控制: 根据需要选择合适的模型,在质量和成本之间平衡
你也可以在本地运行翻译脚本:
# 设置环境变量
export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="https://api.openai.com/v1"
export OPENAI_MODEL="gpt-4o-mini"
# 翻译单个文件
python docs_assistant/translate.py docs/getting-started.md
# 翻译多个文件
python docs_assistant/translate.py docs/getting-started.md docs/guide/index.md本工作流遵循项目主仓库的许可证。