I18nTeam/Migration-to-weblate
< I18nTeam
目录
迁移到 weblate
参与迁移项目的人员
- Ian Y. Choi (经理)
- Seongsoo Cho
- Kuemjong Jeong
- Nayeon Kim
- Sion Shin
- Gwangil Kim
- DaGyeong Kim
规划 weblate 迁移计划
您可以在下面找到有关每个任务的更多详细信息。
- 定义目标测试项目的范围
- 全部 vs. 少数项目(例如,openstack-manuals、nova、i18n、horizon)
- 使翻译基础设施脚本与 Weblate 兼容
- 如果目标项目在平台上不存在,则使用设置创建 Weblate 项目
- (如果不支持,Weblate 项目将手动创建)
- 由于脚本每天 06:00 UTC 执行,因此需要在本地执行测试。
- 如果目标项目在平台上不存在,则使用设置创建 Weblate 项目
- Zuul 集成测试
- 确定何时测试(例如,无需等待 06:00 UTC 的测试方法?)
- 与所有翻译目标项目进行集成测试
- 制作从 Weblate 提取统计数据的工具
行动项
定义目标测试项目的范围
- 使用 Zanata 中设置的信息配置 Weblate。
- 用户信息不会迁移。
使翻译基础设施脚本与 Weblate 兼容
- 支持 Weblate 的 WIP 补丁:https://opendev.org/openstack/openstack-zuul-jobs/src/branch/master/roles/prepare-zanata-client/files/
Zuul 集成测试
创建一个 ZuuL Job,执行以下任务
- 当项目发生新的更改时,将翻译文件上传到 Weblate
- 每天 06 UTC 从 Weblate 上传翻译到您的项目
制作从 Weblate 提取统计数据的工具
- weblate_userinfo.py : 完成 ( https://review.opendev.org/c/openstack/i18n/+/893361 )
- 生成一个 csv 文件,其中包含指定目标角色中翻译人员的列表,以及姓名和电子邮件地址。需要权限才能访问 Weblate 帐户 API。
- weblate_users.py : 完成 ( https://review.opendev.org/c/openstack/i18n/+/895763 )
- 生成 Weblate 语言贡献者列表。
- weblate_utils.py : 完成 ( https://review.opendev.org/c/openstack/i18n/+/896308 )
- 提供其他脚本使用的基本类
- IniConfig 类用于获取 weblate 服务器的密钥和 URL
- WeblateRestService 类与 Weblate REST API 通信
- 提供其他脚本使用的基本类
- weblate_stats.py : 进行中 ( https://review.opendev.org/c/openstack/i18n/+/896306 )
- (描述该工具的作用)
- weblate_records.py : 进行中 ( https://review.opendev.org/c/openstack/i18n/+/896306 )
- (描述该工具的作用)
项目列表和状态
迁移范围
| 项目 | 数量 |
|---|---|
| 总项目数 | 127 |
| 总版本数 | 12 |
| 总语言数 | 54 |
版本
我们根据当前存在于主要服务中的分支确定了迁移版本。请注意:某些项目可能没有此分支。
要迁移的版本
- master
- stable/2025.2
- stable/2025.1
- stable/2024.2
- stable/2024.1
注意:“unmaintained/*”分支不包含在迁移范围内。
命名约定
项目、类别名称
- Zanata 的项目名称映射到 Weblate 项目名称
- Zanata 的版本名称映射到 Weblate 类别名称
组件名称
在 Weblate 中,组件不能具有相同的名称。
虽然 Zanata 根据文档路径区分组件,但 Weblate 使用组件名称进行标识。因此,当一个项目有多个模块时,Weblate 无法使用相同的组件名称。
为了解决这个问题,我们定义组件名称为:`<module_name>-<project kind>`
| Zanata | Weblate(冲突) | Weblate(已修复) |
|---|---|---|
| horizon/locale/django | django(冲突) | horizon-django |
| openstack_dashboard/locale/django | django(冲突) | openstack-dashboard-django |
注意:组件使用“-”作为分隔符。
语言
- 遵循 Zanata 的语言代码约定
- 语言代码的格式为:language_COUNTRY
- 语言名称:小写(例如,en、ko、ja)
- 国家/地区名称:大写(例如,US、KR、JP)
- 有关复数形式,请参阅:Language Plurals
翻译准确性指标
由于不同翻译平台之间单词计数计算不一致,我们通过字符串数量而不是单词计数来衡量准确性。
我们使用以下指标评估翻译准确性
- 源字符串:需要翻译的原始英文消息的总数。
- 翻译字符串:已成功翻译成目标语言的消息数量。
我们根据所有版本中准确字符串的比例计算准确性,同时考虑源字符串和翻译字符串。
检查内容
- 总字符串计数(源和翻译)
- 翻译完成率
- Zanata 和 Weblate 之间所有翻译文件的文件级比较,以验证数据完整性
翻译迁移状态
有关准确性的更多详细信息,请参阅 Launchpad 错误。