跳转到内容

文档翻译

文档翻译

本项目使用 AWS Bedrock 的 Haiku 3.5 模型,将文档从英文自动翻译为多种语言。该翻译系统设计高效、准确且易于使用。

支持语言

目前支持以下语言:

  • 日语 (jp)
  • 法语 (fr)
  • 西班牙语 (es)
  • 德语 (de)
  • 中文 (zh)
  • 韩语 (ko)

工作原理

翻译系统通过以下步骤运作:

  1. 按 h2 标题拆分文档 - 实现更高效的上下文处理
  2. 保留 Markdown 格式 - 所有 Markdown 语法、代码块和 HTML 标签在翻译过程中保留
  3. 特殊处理 frontmatter - 翻译 YAML frontmatter 同时保持其结构
  4. 增量翻译 - 默认仅翻译变更文件,节省时间和资源

本地运行翻译

使用 scripts/translate.ts 脚本进行本地文档翻译:

Terminal window
# 默认仅翻译变更文件为日语
./scripts/translate.ts
# 翻译所有文件
./scripts/translate.ts --all
# 翻译指定语言
./scripts/translate.ts --languages jp,fr,es
# 预览翻译操作(不实际执行)
./scripts/translate.ts --dry-run
# 显示详细输出
./scripts/translate.ts --verbose

GitHub 工作流

当 Pull Request 中的英文文档发生变更时,GitHub 工作流会自动执行翻译。该工作流:

  1. 检测英文文档文件变更
  2. 使用 AWS Bedrock 翻译变更文件
  3. 将翻译结果提交回源分支
  4. 在 PR 中更新翻译状态

手动触发工作流

可通过 GitHub Actions 选项卡手动触发翻译工作流,适用于:

  • 执行完整文档翻译
  • 翻译指定语言
  • 更新翻译脚本后的翻译刷新

AWS 配置

翻译系统使用 AWS Bedrock 的 Haiku 3.5 模型,需配置:

  1. AWS 凭证 - 本地开发时通过 AWS CLI 或环境变量配置
  2. IAM 角色 - GitHub Actions 需配置带 OIDC 认证和 AWS Bedrock 权限的 IAM 角色

必要权限

IAM 角色或用户需以下权限:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel"
],
"Resource": [
"arn:aws:bedrock:*::foundation-model/anthropic.claude-3-haiku-20240307-v1:0"
]
}
]
}

翻译质量

翻译质量整体较高,但需注意:

  • 技术术语 - 系统配置保留英文技术术语
  • 代码块 - 保持原始形式不翻译
  • 上下文理解 - 翻译模型具备文档上下文理解能力

自定义翻译

通过修改 scripts/translate.ts 文件可自定义:

  • 新增支持语言
  • 更换翻译模型
  • 调整翻译提示词
  • 修改文档拆分处理方式

故障排除

遇到翻译问题时:

  1. 检查 AWS 凭证 - 确认凭证配置正确
  2. 检查 AWS 区域 - 确保使用支持 Bedrock 的区域
  3. 启用详细日志 - 使用 --verbose 参数
  4. 检查速率限制 - 大规模翻译需注意 AWS Bedrock 的速率限制