Weblate
以 Git 为单一真相来源的开源翻译平台
精选工具TMS开源Git原生自托管
Weblate 让翻译修改直接映射为 Git 变更,特别适合开源项目、自托管部署和希望把本地化纳入代码审查流程的团队。
Weblate
基于 Git 的开源翻译平台,强调版本控制、社区协作与可自托管的持续本地化。
基本信息
| 项目 | 内容 |
|---|---|
| 官网 | https://weblate.org |
| GitHub | https://github.com/WeblateOrg/weblate |
| License | GPL-3.0(核心);托管服务另计 |
| GitHub Stars | 约 5,000+ |
| 定位 | 开源、Git 原生的翻译平台 |
| 托管 | 自托管免费;hosted.weblate.org 云服务 |
技术定位与简介
Weblate 是以 Git 为单一真相来源的开源翻译平台,由 WeblateOrg 社区维护。每一次翻译修改都会生成 Git commit,天然具备版本历史、回滚、代码审查(通过 MR/PR)能力。它特别适合开源项目、文档本地化、以及希望翻译变更与代码变更同等严谨的团队。
Weblate 支持 100+ 文件格式,提供质量检查、翻译记忆、术语表、机器翻译、通知与 API。hosted.weblate.org 为众多 FOSS 项目提供免费托管;企业也可 Docker/K8s 自托管满足数据主权需求。
快速上手安装说明
使用托管服务(开源项目)
- 在 hosted.weblate.org 注册
- 为 FOSS 项目申请免费托管(需符合政策)
- 连接 Git 仓库(GitHub/GitLab/Bitbucket)
Docker 自托管
# 使用官方 docker-compose
git clone https://github.com/WeblateOrg/docker-compose.git
cd docker-compose
docker compose up -d项目配置(Git 集成)
在 Weblate 中创建 Component:
- Repository URL:Git 仓库地址
- File mask:
locales/*.json或**/po/*.po - Source language:en
- Translation files:按语言自动识别
译者提交翻译 → Weblate 自动 commit 到仓库(可配置 push 分支与 PR)。
核心特性
- Git 原生:翻译即 commit,完整历史与 diff。
- 质量检查:格式占位符、换行、标点、重复翻译等。
- 翻译记忆(TM):跨项目复用。
- 术语表(Glossary):统一术语。
- 机器翻译:LibreTranslate、DeepL、Google 等可配置。
- 通知:Email、Hook、Slack 等。
- 权限与审查:角色、建议模式、审核后合并。
- API:REST API 自动化管理。
- 自托管:完全掌控数据与流程。
适用场景
- 开源项目希望翻译变更可追溯、可 review。
- 文档站(Sphinx、Markdown、gettext)多语言维护。
- 团队已深度使用 Git,不愿引入独立 TMS 黑盒。
- 需要自托管、GPL 合规、无供应商锁定的组织。
- 社区志愿者翻译(Linux、Fedora 等大量项目使用 Weblate)。
技术亮点
- VCS 中心设计:与开发者工作流一致,MR 审查翻译。
- FOSS 托管:hosted.weblate.org 降低开源项目门槛。
- 质量检查丰富:适合技术文案占位符严格一致。
- 成熟稳定:十余年发展,大型社区项目验证。
技术局限与边界
- UI 偏实用:不如 Lokalise 时尚,学习曲线存在。
- 非运行时 i18n:不替代应用内 i18n 库。
- GPL 许可:自托管修改分发需遵守 GPL(咨询法务)。
- SaaS 商业功能:高级企业支持以自托管或商业合同为主。
- In-Context 弱于 Tolgee:页内编辑不是核心卖点。
核心概念与架构
Git 仓库(源语言文件)
↓
Weblate Component 拉取
↓
译者 Web 编辑 + QA + TM
↓
Weblate Git commit/push 或 PR
↓
CI 构建应用
核心概念
- Project / Component:项目与子模块(常对应一个 repo 或子目录)。
- Suggestion:建议翻译,需审核后成为正式翻译。
- Check:自动质量规则。
生态地图
- 核心:Weblate(Python/Django)
- Docker:WeblateOrg/docker-compose
- 托管:hosted.weblate.org
- 客户端:weblate-cli、API
- 对比:Tolgee、Crowdin、Transifex
生态集成
- GitHub/GitLab:Webhook 双向同步,PR 模式。
- gettext/PO:文档与 Linux 生态标准格式。
- JSON/YAML:前端项目直接对接。
- CI:监听仓库 push 触发构建,无需单独
pull。 - Django/React 等:作为翻译后端,应用仍用各自 i18n 库。
开发与工程化
- File mask 正确性:错误 mask 导致无法识别新语言文件。
- Push 分支策略:翻译 commit 到
l10n-main再 PR 到 main。 - 锁定源字符串:源语言变更时触发翻译标记「需更新」。
- Component 拆分:monorepo 按目录拆多个 Component。
- 备份:自托管需备份 DB 与 Git 凭据。
性能与安全
- 性能:应用构建不受 Weblate 运行时影响(Git 驱动)。
- 安全:自托管更新及时打补丁;托管服务信任 WeblateOrg 安全实践。
- 权限:生产仓库写权限仅 Weblate 服务账号,启用 2FA。
技术对比
| 维度 | Weblate | Tolgee | Crowdin |
|---|---|---|---|
| Git 中心 | 极强 | 中 | 中 |
| 开源 | GPL | Apache | 否 |
| 自托管 | 成熟 | 成熟 | 有限 |
| 商业 UI | 实用 | 现代 | 成熟 |
| FOSS 免费托管 | 有 | 部分 | 有 |
最佳实践
- 开源项目优先申请 hosted.weblate.org。
- 翻译走 PR 流程,与代码 review 同等对待。
- 启用 Checks,尤其占位符与 HTML 标签。
- 源语言变更通知译者:利用「needs editing」状态。
- 自托管定期升级,关注安全公告。
学习与社区资源
- 文档:https://docs.weblate.org
- GitHub:https://github.com/WeblateOrg/weblate
- Hosted:https://hosted.weblate.org
- Docker Compose:https://github.com/WeblateOrg/docker-compose
- 社区:Mailing list、GitHub Discussions、Libera Chat #weblate