diff --git a/2024-05-24_16-29-13.png b/2024-05-24_16-29-13.png new file mode 100644 index 0000000..aa045f8 Binary files /dev/null and b/2024-05-24_16-29-13.png differ diff --git a/2024-05-24_17-18-07.png b/2024-05-24_17-18-07.png new file mode 100644 index 0000000..2d435ea Binary files /dev/null and b/2024-05-24_17-18-07.png differ diff --git a/owner_README.md b/owner_README.md index 4a38c98..94f07f8 100644 --- a/owner_README.md +++ b/owner_README.md @@ -1,7 +1,7 @@ ## openKylin i18n SIG 组 各项目Owner须知 ### 概述 -本文档用于帮助各组件owner参与到 openKylin 多语言模块相关工作,帮助社区用户了解 openKylin 多语言机制等。 +本文档用于帮助各组件 owner 参与到 openKylin 多语言模块相关工作,帮助社区用户了解 openKylin 多语言机制等。 ### openKylin 多语言实现机制 首先简单了解 locales 包,locales 包用于提供本地化(Localization)和国际化(Internationalization)的支持。它包含了用于翻译和本地化应用程序界面的语言和区域设置信息。系统中的 /etc/locale.gen 文件由该包提供。 @@ -14,41 +14,45 @@ openKylin 系统安装时会对该文件进行修改,补充对应多语言字 在 openKylin 中,目前实现多语言首先是通过系统安装增加系统可支持语言环境变量以及默认安装系统语言,也就是修改 /etc/locale.gen 文件;控制面板会读取 /etc/locale.gen 并进行已有语言切换,无法进行安装,控制面板不会去修改 /etc/locale.gen 文件;新增语言都带有一个对应语言包来修改 /etc/locale.gen ,且这个语言包会带有部分基础组件多语言 ;最后通过组件/应用自带的翻译文件以及多语言软件包提供的翻译文件,支持系统多语言; ### 如何参与 -首先请先注册 [gitee](https://gitee.com) 和 [weblate](https://weblate.openkylin.top/) 账户。 +在开始前请先注册 [gitee](https://gitee.com) 和 [weblate](https://weblate.openkylin.top/) 账户。 #### gitee gitee 平台的使用这里就不再赘述。除了各组件各自项目仓库中有翻译文件存放, #### weblate -首先先了解下 weblate 平台,地址 https://weblate.openkylin.top/projects/ weblate 是一个基于 Web、与版本控制紧密集成的翻译工具。它拥有简洁清爽的用户界面,跨部件翻译同步、质量检查以及自动链接到源文件等功能。i18n-management项目中存在一个i18n.yaml文件,该文件会记录当前以在weblate中创建部件对应openKylin中的项目。当记录在该文件中的项目的社区开发者上传或更新最新的翻译文件(ts或者po)通过提PR形式更新到各组件仓库中,翻译就会自动同步到 weblate部件中,同时在 weblate 上进行翻译添加、更改、校验等操作后,也会自动同步到该文件对应openKylin仓库中。 - -#### 提交权限申请 +openkylin中的 weblate 平台,地址 https://weblate.openkylin.top/projects/ ,weblate 是一个基于 Web、与版本控制紧密集成的翻译工具。它拥有简洁清爽的用户界面,跨部件翻译同步、质量检查以及自动链接到源文件等功能。 -在了解了职责权限与贡献方式后,需要根据你的情况进行项目权限申请。 +#### 工作流程 -- clone此项目并在i18n.yaml文件里增加内容,以peony为例: +![工作流程图](2024-05-24_16-29-13.png) + +1. 首先确认各组件以及各组件中的翻译文件、weblate 上是否存在对应子部件。i18n-management 项目中存在一个 i18n.yaml 文件,该文件会记录当前已在 weblate 中创建部件对应 openKylin 中的项目。以peony为例: ``` - name: - - peony - - owner: larue - - branch: openkylin/nile - - weblate-project: peony-qt - - files: translations/peony-qt/peony-qt_*.ts - - weblate-project: peony-qt-desktop - - files: translations/peony-qt-desktop/peony-qt-desktop_*.ts - - weblate-project: libpeony-qt - - files: translations/libpeony-qt/libpeony-qt_*.ts + - peony + - owner: larue + - branch: openkylin/nile + - weblate-project: peony-qt + - files: translations/peony-qt/peony-qt_*.ts + - weblate-project: peony-qt-desktop + - files: translations/peony-qt-desktop/peony-qt-desktop_*.ts + - weblate-project: libpeony-qt + - files: translations/libpeony-qt/libpeony-qt_*.ts ``` -1. 文件中`package`字段之后每 `- name` 字段下的内容表示对应openkylin仓库名称 -2. 文件中 `- name`字段之后 `owner` 字段表示该项目对应weblate中的负责人 -3. 文件中 `- branch`字段表示当前`- name`中内容的项目对应的分支 -4. 文件中 `- weblate-project`字段表示当前`- name`中内容的项目对应的weblate部件名称 -5. 文件中 `- files`字段表示当前`weblate-project`中内容的部件对应的翻译文件地址 +- 文件中 `package` 字段之后每 `- name` 字段下的内容表示对应openkylin仓库名称 +- 文件中 `- name` 字段之后 `owner` 字段表示该项目对应weblate中的负责人 +- 文件中 `- branch` 字段表示当前 `- name` 中内容的项目对应的分支 +- 文件中 `- weblate-project` 字段表示当前 `- name` 中内容的项目对应的weblate部件名称 +- 文件中 `- files` 字段表示当前 `weblate-project` 中内容的部件对应的翻译文件地址 + +2. 当记录在 i18n.yaml 文件中的 `- name` 对应项目中,对应 `- branch` 分支里的文件 `- files` 被社区开发者上传或更新时,翻译就会自动同步到 weblate 对应部件`- webalte-project`中。同时在 weblate 上进行翻译添加、更改、校验等操作后,也会定期自动同步到该文件对应 openKylin 仓库中。 + +3. 当所有翻译文件更新完毕,即可提升版本号,将带有最新翻译文件的包同步进软件源。 #### weblate使用 - + 当项目开发者在完成对应的翻译文件上传并且进行了正确的设置后,weblate 会有如下的项目界面显示: ![weblate界面示例](https://gitee.com/kylinos-i18n/language-packs/raw/master/img/3.png) @@ -62,8 +66,10 @@ gitee 平台的使用这里就不再赘述。除了各组件各自项目仓库 ![添加新语种翻译](https://gitee.com/kylinos-i18n/language-packs/raw/master/img/4.png) -4. 在如上界面后点击上方菜单的 工具->自动化翻译, 自动翻译模式选择为 "添加为翻译",搜算筛选器选择"未完成的字符串"(这里如果选择"所有字符串"的话自动化翻译会覆盖原翻译文件的所有翻译,尤其在翻译文件有更新的时候格外注意),自动翻译来源选择机器翻译,然后选择微软的翻译接口,点击应用。之后有如下进度条在界面上方, +4. weblate 项目中会存在一些带有 -template 后缀的子部件,这些部件定义为翻译模板,模板中的翻译文件内容都是经过校验确认的内容。 +在如上界面后点击上方菜单的 工具->自动化翻译,使用 weblate 自动翻译时请尽量使用模板翻译文件进行翻译,同时将 **自动翻译模式** 选择为添加为翻译, **搜索筛选器** 选择未翻译字符串。如果存在使用了翻译模板翻译后还有无法翻译的内容,请建立相关issue指派给 @段凯文 。 +![使用模板进行自动翻译](2024-05-24_17-18-07.png) ![添加新语种翻译2](https://gitee.com/kylinos-i18n/language-packs/raw/master/img/5.png) 等待其完成会提示“自动翻译已完成,xxx 个字符串已更新。”,有时候api会出现繁忙情况,请稍作等待。