本文目录导读:

利用 Crowdin 管理开源翻译是一种非常高效的方法,尤其适合需要处理多种语言、多贡献者的场景,Crowdin 为开源项目提供免费计划,并集成了 GitHub、GitLab、Bitbucket 等代码托管平台。
以下是利用 Crowdin 管理开源翻译的完整流程和最佳实践:
第一步:配置项目与集成
-
创建 Crowdin 项目(免费)
- 访问 Crowdin 官网 并注册。
- 创建新项目,设置为 Public(公开),这样开源贡献者才能看到并参与翻译。
- 重要: 在项目设置中勾选 “Open Source Project”,即可获得无限免费存储和翻译字符串额度。
-
连接代码仓库
- 进入项目设置 -> Integrations。
- 选择你的代码托管平台(GitHub/GitLab/Bitbucket)。
- 授权 Crowdin 访问你的仓库,这允许 Crowdin 自动将源文件(如
en.json,strings.xml,.po文件)同步到平台,并将翻译好的文件提交回仓库。
-
添加源文件
- 在 Crowdin 中点击 Files -> Add File。
- 上传你的语言文件(
messages.pot,locale/en/LC_MESSAGES/django.po,src/i18n/en.json)。 - 推荐做法: 配置 File Filter(文件过滤器),这样以后你在代码仓库中新增源文件时,Crowdin 会自动同步。
第二步:设置翻译流程与权限
-
管理语言与目标
- 在 Translations -> Target Languages 中添加你需要翻译成的语言(如中文、法语、日语等)。
- 设置翻译进度目标(翻译完成100%,审校完成100%才能导出)。
-
分配角色与权限
- Proofreader(审校员): 通常由核心团队成员或母语者担任,他们负责最终审核翻译质量,确保术语一致性。
- Translator(翻译员): 开源社区贡献者,可以开放权限,允许任何人申请加入。
- Manager(管理员): 控制项目设置、文件管理、集成等。
-
配置术语库与翻译记忆库
- 术语库 (Glossary): 定义关键术语(“Login”必须翻译为“登录”而非“登入”),翻译时,术语会高亮显示建议。
- 翻译记忆库 (Translation Memory, TM): 自动存储之前翻译过的句子,当相同或相似的句子出现时,会自动填充,极大提高效率。
第三步:招募与协作翻译
-
邀请社区成员
- 生成项目的 Public Link(公开链接)并分享到:
- 项目 README 文件(添加一个“翻译贡献者”徽章)。
- GitHub Issues 或 Discussions。
- 社交媒体、技术社区(如 V2EX、Reddit 的
r/opensource板块)。
- 贡献者点击链接后,使用 GitHub 或 Google 账号登录即可直接开始翻译,无需手动申请权限(取决于你的设置)。
- 生成项目的 Public Link(公开链接)并分享到:
-
翻译界面使用
- 编辑器 (Editor): Crowdin 的在线编辑器界面非常友好。
- 文本预览: 右侧实时显示翻译前后的 UI 上下文。
- 评论: 翻译员可以针对某一句字符串提问(“这里的‘Save’是指保存文件还是保存设置?”)。
- 截图(Screenshots): 管理员可以上传带有该字符串的 UI 截图,帮助翻译理解上下文,这是提高翻译准确性的关键功能。
- 编辑器 (Editor): Crowdin 的在线编辑器界面非常友好。
-
质量控制
- QM (Quality Management): 审校员可以批量处理翻译,标记错误(如拼写、一致性、术语错误)。
- 自动检查: Crowdin 内置拼写检查、HTML 标签检查、长度限制检查(防止翻译文字过长在 UI 中溢出)。
第四步:自动化交付与持续集成
-
自动同步
- Push: 当你更新源文件(例如新增了一个按钮文字),提交到 GitHub 仓库后,Crowdin 会自动拉取更新。
- Pull: 当社区翻译达到一定进度(例如100%),Crowdin 会自动将翻译好的文件提交(Commit & PR)回你的代码仓库。
-
CI/CD 集成(可选但推荐)
- 使用 GitHub Actions 或 GitLab CI:
- 在合并翻译 PR 前,自动运行构建测试(防止格式错误)。
- 检查翻译是否覆盖了所有新增的字符串。
- 示例:Crowdin 官方提供了 Github Action。
- 使用 GitHub Actions 或 GitLab CI:
关键最佳实践总结
| 环节 | 推荐做法 | 原因 |
|---|---|---|
| 源文件 | 使用 UTF-8 编码,保持字符串简洁(避免换行、长段落)。 | 减少翻译歧义,提高机器翻译和记忆库匹配率。 |
| 上下文 | 总是上传 Screenshots(截图)并提供 Description(说明)。 | 翻译员最怕“猜”上下文,这是质量提升最显著的方法。 |
| 术语 | 建立 Glossary(术语库),指定核心名词的翻译。 | 避免同一个人翻译“API”为“接口”,另一个人翻译为“API接口”。 |
| 权限 | 将“翻译”权限开放给所有人,“审校”权限只给核心团队。 | 防止恶意或低质量翻译被自动合并到主分支。 |
| 沟通 | 积极使用编辑器中的 Comments(评论)功能。 | 很多翻译错误可以通过一句话的讨论解决,不需要反复修改代码。 |
针对开源项目的特别提示
- 徽章(Badge): 在项目 README 顶部添加 Crowdin 状态徽章(如
),这不仅是荣誉,也是号召贡献。 - 引导贡献者: 在
CONTRIBUTING.md文件中明确说明:“翻译贡献请访问我们的 Crowdin 项目,不要直接在仓库中修改语言文件。” - 避免导出非最终版本: 设置 Crowdin 仅当翻译达到 审校批准 状态时才同步回仓库,避免半成品进入代码。
常见问题与解决
- Q:翻译文件格式乱了(如 YAML 缩进不对)?
- A:Crowdin 通常能识别格式,但最好在项目设置中勾选 “Export pattern” 保持源文件结构,对于 YAML/JSON,使用 “Crowdin JSON” 格式可以保留键的层次结构。
- Q:有人恶意提交垃圾翻译?
- A:设置审校机制,如果不小心已经发生,可以在 Reports -> Translation History 中回滚到此前的正确版本。
替代方案简析
- Transifex: 类似 Crowdin,但免费额度对开源项目限制更严格。
- POEditor: 界面简洁,但集成与自动化稍弱。
- Weblate: 自托管开源方案(需服务器),如果你希望完全控制数据,可以选择它。
Crowdin 是目前对开源项目最友好、集成最完善、社区接受度最高的工具之一,只需配置好文件同步、开放权限并加上术语表,就能让全球贡献者无缝参与翻译,而你仅需审核最终质量。