I18nTeam/Migration-to-weblate/migration-tools
Weblate 迁移工具
概述
- 此页面记录了 OpenStack I18n 项目从 Zanata 迁移到 Weblate 的过程。
- 迁移涉及语言迁移工具和项目迁移工具。
参与迁移工具项目的人员
- 金广一 (Gwang-Il Kim)
- 金大庆 (DaGyeong Kim)
迁移计划
1. 语言迁移
- 移除 Weblate 中所有不需要的现有语言。
- 使用 delete_languages.py
- 重新创建 Weblate 中的语言,以匹配 Zanata 中定义的复数形式和设置。
- 使用 create_languages_weblate.py
2. 项目迁移
设置迁移环境。
- 通过安装系统和 Python 依赖项来设置环境。
- 将工作区文件夹配置为工作目录。
为项目生成 POT 文件。
- 从项目中提取用于翻译的字符串。
- 生成用于迁移的模板文件 (POT)。
提取翻译文件
- 从 Zanata 提取所有区域设置翻译文件 (PO)
创建 Weblate 项目
- 使用 OpenStack 项目名称在 Weblate 中创建一个项目。
创建全局词汇表
- 在项目内创建一个词汇表组件,以保持术语一致性。
- 每个项目只有一个词汇表。
创建 Weblate 分类
- 分类是相关组件的集合。
- 创建分类以组织和显示不同版本。
创建 Weblate 组件。
- 组件是用于翻译的某种事物的分组。
- 使用 pot 文件创建组件。
- 有可用的组件属性
| 键 (key) | value |
|---|---|
| 文件格式 (file format) | po |
| 文件掩码 (filemask) | locale/*/LC_MESSAGES/<component_name>.po |
| 新基础 (new_base) | <component_name>.pot |
| 源语言 (source_language) | en_US |
注意:文件掩码取决于项目类型。
创建 Weblate 翻译。
- 翻译代表组件的特定语言版本。
- 为 Zanata 中存在的所有区域设置创建翻译。
- 确保区域设置名称与 Weblate 服务器使用的语言代码匹配。
将翻译文件推送到 Weblate 翻译。
- 将从 Zanata 提取的 PO 文件上传到 Weblate 中相应的翻译。
迁移工具
1. 语言迁移工具
- delete_languages.py : 活跃 ( https://review.opendev.org/c/openstack/i18n/+/961371/9 )
- 自动创建或更新 Weblate 语言配置,以匹配现有的 Zanata 语言集。
- 使用 Weblate REST API 批量同步语言代码、名称、复数形式和文本方向。
- create_languages_weblate.py: 活跃 ( https://review.opendev.org/c/openstack/i18n/+/961371/9 )
- 提供了一种安全的方式来从 Weblate 中删除语言。
- 支持 dry-run 模式以在实际删除之前进行验证,并生成摘要报告。
2. 项目迁移工具
- 迁移脚本补丁已被拆分以减小其大小。
- 我们使用 Launchpad 蓝图跟踪功能开发。
测试与集成
- Weblate 集成测试目前处于规划阶段。
韩国 Openinfra 论坛
- Openstack Weblate 迁移 - 语言迁移:( https://forum.openinfra-kr.org/t/openstack-weblate-migration-language-migration/269 )
- OpenStack Weblate 迁移 - 迁移准备:( https://forum.openinfra-kr.org/t/openstack-weblate-migration-1-migration/277 )
- OpenStack Weblate 迁移 - 项目迁移:( https://forum.openinfra-kr.org/t/openstack-weblate-migration-2-weblate-migration/278 )