This commit is contained in:
kwz 2024-05-21 16:21:46 +08:00
parent 2195108b0c
commit 874fdb1c59
4 changed files with 513 additions and 46 deletions

View File

@ -1,19 +1,15 @@
# openKylin i18n SIG
## 介绍
i18n-management负责openKylin多语言翻译的维护和持续化的贡献。
i18n-management SIG为各个需要维护翻译的其他SIG组在weblate平台上维护翻译并支持所有用户进行贡献。
i18n-management负责openKylin中各项目多语言翻译的维护和持续化的贡献。该仓库记录了openKylin中各个需要维护翻译的组件以及对应在weblate平台中的信息。
在i18n SIG中用户可找到感兴趣组件的翻译进行特定贡献可通过一定的贡献量获得对应组件的管理权限。
## 原则
- i18n-management所维护的平台翻译都是开放的,任何人和组织都可以参与。
- 在 i18n-management的i18n.yaml 文件中包含了该项目需要在weblate上建的项目名称、owner、maintainer和翻译组件模块若一个组件有多个模块需要翻译则在模块列写出所有模块
- 每个项目在weblate翻译平台的项目核心成员都拥有此项目的维护者权限共同维护好应用的翻译状况。
- i18n SIG所维护的平台翻译都是开放的,任何人和组织都可以参与。
- 在 i18n-management的i18n.yaml 文件中包含了该项目需要在weblate上建的项目名称、管理者、翻译文件地址
- 每个项目在weblate翻译平台的项目核心成员都拥有此项目的维护者权限共同维护好组件的翻译状况。
## 如何参与
@ -48,40 +44,9 @@ weblate翻译平台网址[https://weblate.openkylin.top/projects/](https://we
##### 项目维护者:
1. 如果你是一个项目的维护者或管理者这意味着需要对整个项目的数据和维护负责这需要每个拥有项目管理权限的人都要熟悉weblate的项目管理和基本的操作流程https://docs.weblate.org/zh_CN/latest/user/basic.html 是weblate官方文档地址。
2. 需要熟悉OpenKylin 的weblate维护手册整个流程。https://docs.qq.com/doc/DWEhwU0dYc1hKUWN6?&u=b1219e2d6b5a42cdb745f00f376a2551
![2.png](./img/2.png)
##### 管理者:
1. 作为一位管理者,除了要熟悉项目维护者的工作之外,还需要清楚如何为项目维护者创建项目并分发权限。如下图所示,点击右上角的+号然后“添加新翻译项目”。
![3.png](./img/3.png)
2. 进入如下界面后“项目名称”填组件名“项目网站”填gitee的仓库地址“翻译说明”由项目维护者后续自行补充点“保存”
![4.png](./img/4.png)
3. 之后进入以下界面,点击“管理”->“设置”进入设置界面,点击访问,将“访问控制”设置为受保护的即可。
![5.png](./img/5.png)
4. 权限分发请看维护者说明的openkylin weblate维护手册第六节。
#### 提交权限申请
在了解了职责权限与贡献方式后,需要根据你的情况进行项目权限申请。
- clone此项目并在i18n-management创建对应的以项目名为文件名的文件夹在文件夹中需新建一个i18n.yaml文件并按以下格式填写。以kylin-os-installer为例
```
name: kylin-os-installer
owner:
- xxx : weblate ID
maintainers:
- xxx : weblate ID
modules:
- kylin-os-installer
```
第一个name字段需要填写的是项目的名称modules下填写的是在这个项目下我需要创建的翻译模块的名称。同时在owner和maintainer字段后需要填写weblate翻译平台的账号ID方便在创建项目时给与维护者权限,如果没有maintainer的话这个字段下信息可选择不填。
2. 需要熟悉[openKylin i18n SIG 组 各项目Owner须知](./owner_README.md)。
## 其他注意事项
- 如果weblate中权限、文件地址等内容需要修改请及时提交pr
- weblate平台地址[https://weblate.openkylin.top/projects/](https://weblate.openkylin.top/projects/)

View File

@ -1,5 +0,0 @@
name: kylin-os-installer
owner:
- zouchang : zouchang
modules:
- kylin-os-installer

429
i18n.yaml Normal file
View File

@ -0,0 +1,429 @@
name: i18n
description: i18n team
owner:
- kwwzzz
maintainers:
- name: wucaiheng
packages:
- 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
- name:
- peony-extensions
- owner: larue
- branch: openkylin/nile
- weblate-project: peony-extensions
- files: peony-admin/translations/peony-admin_*.ts
- name:
- atril
- owner: lllcky
- branch: openkylin/nile
- weblate-project: atril
- files: po/*.po
- name:
- biometric-authentication
- owner: neigefu
- branch: openkylin/nile
- weblate-project: biometric-authentication
- files: po/*.po
- name:
- engrampa
- owner: rong_you_li
- branch: openkylin/nile
- weblate-project: engrampa
- files: po/*.po
- name:
- fcitx5
- owner: hanteng
- branch: openkylin/nile
- weblate-project: fcitx5
- files: po/*.po
- name:
- glib2.0
- owner: larue
- branch: openkylin/nile
- weblate-project: glib2.0
- files: po/*.po
- name:
- gparted
- owner: kylidecheng
- branch: openkylin/nile
- weblate-project: gparted
- files: po/*.po
- name:
- grub2
- owner: liweidong1722
- branch: openkylin/nile
- weblate-project: grub2
- files: po/*.po
- name:
- gtk.3.0
- owner: hebing
- branch: openkylin/nile
- weblate-project: gtk.3.0
- files: po/*.po
- name:
- gvfs
- owner: larue
- branch: openkylin/nile
- weblate-project: gvfs
- files: po/*.po
- name:
- kolourpaint
- owner: czy001122
- branch: openkylin/nile
- weblate-project: kolourpaint
- files: po/*/kolourpaint.po
- name:
- kylin-burner
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: kylin-burner
- files: src/po/*.po
- name:
- kylin-calculator
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: kylin-calculator
- files: translations/kylin-calculator_*.ts
- name:
- kylin-camera
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: kylin-camera
- files: translations/kylin-camera_*.ts
- name:
- kylin-connectivity
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: kylin-connectivity
- files: translations/kylin-connectivity_*.ts
- weblate-project: peony-send-to-connectivity
- files: translations/peony-send-to-connectivity_*.ts
- weblate-project: peony-vfs-kylin-multiterminal
- files: translations/peony-vfs-kylin-multiterminal_*.ts
- name:
- kylin-device-daemon
- owner: tiantian9623
- branch: openkylin/nile
- weblate-project: kylin-device-daemon
- files: translation/kylin-device-daemon_*.ts
- name:
- kylin-font-viewer
- owner: kylidecheng
- branch: openkylin/nile
- weblate-project: kylin-font-viewer
- files: data/translations/kylin-font-viewer_*.ts
- name:
- kylin-installer
- owner: wanghailiang1996
- branch: openkylin/nile
- weblate-project: kylin-installer
- files: translations/kre-install_*.ts
- weblate-project: kylin-installer-un
- files: translations/kre_uninstall_*.ts
- name:
- kylin-ipmsg
- owner: xuxinrong01
- branch: openkylin/nile
- weblate-project: kylin-ipmsg
- files: data/translations/kylin-ipmsg_*.ts
- name:
- kylin-music
- owner: jiaweiGod
- branch: openkylin/nile
- weblate-project: kylin-music
- files: translations/kylin-music_*.ts
- name:
- kylin-nm
- owner: zhaoshixu
- branch: openkylin/nile
- weblate-project: kylin-nm
- files: src/translations/kylin-nm_*.ts
- weblate-project: mobilehotspot
- files: plugins/mobilehotspot/translations/*.ts
- weblate-project: netconnect
- files: plugins/netconnect/translations/*.ts
- weblate-project: proxy
- files: plugins/proxy/translations/*.ts
- weblate-project: vpn
- files: plugins/vpn/translations/*.ts
- weblate-project: wlanconnect
- files: plugins/wlanconnect/translations/*.ts
- weblate-project: kylin-vpn
- files: src-vpn/translations/kylin-vpn_*.ts
- name:
- kylin-os-installer
- owner: liushanwen
- branch: openkylin/nile
- weblate-project: kylin-os-installer
- files: language/*.ts
- name:
- kylin-os-manager
- owner: zhangxinxin_1
- branch: openkylin/nile
- weblate-project: kylin-os-manager
- files: src/application/translations/kylin-os-manager_*.ts
- weblate-project: kylin-os-manager-session-service
- files: daemons/sessionservice/translations/kylin-os-manager-session-service_*.ts
- weblate-project: kylin-os-manager-driver-controller
- files: plugins/driver-controller/translations/kylin-os-manager-driver-controller_*.ts
- weblate-project: kom-service-support
- files: plugins/service-support/translations/kom-service-support_*.ts
- weblate-project: kylin-os-manager-tool-box
- files: plugins/tool-box/translations/kylin-os-manager-tool-box_*.ts
- weblate-project: kylin-file-crush
- files: treasure-chest/file-smash/translations/kylin-file-crush_*.ts
- weblate-project: kylin-os-manager-replacement
- files: treasure-chest/replacement/translations/replacement_*.ts
- weblate-project: kylin-os-manager-win-data-migration
- files: treasure-chest/win-data-migration/translations/win-data-migration_*.ts
- name:
- kylin-photo-viewer
- owner: su-fang
- branch: openkylin/nile
- weblate-project: kylin-photo-viewer
- files: translations/kylin-photo-viewer_*.ts
- name:
- kylin-printer
- owner: jiangdingyuan
- branch: openkylin/nile
- weblate-project: kylin-printer
- files: translations/kylin-printer_*.ts
- weblate-project: kylin-printer-dict
- files: translations/kylin-printer_dict_*.ts
- name:
- kylin-recorder
- owner: ddguagua
- branch: openkylin/nile
- weblate-project: kylin-recorder
- files: translations/kylin-recorder_*.ts
- name:
- kylin-scanner
- owner: fanyuchen
- branch: openkylin/nile
- weblate-project: kylin-scanner
- files: translations/kylin-scanner_*.ts
- name:
- kylin-screenshot
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: kylin-screenshot
- files: translations/Internationalization_*.ts
- name:
- kylin-update-frontend
- owner: shen-yafeng
- branch: openkylin/nile
- weblate-project: kylin-update-frontend-NotifySend
- files: immutable/NotifySend/translations/*.ts
- name:
- kylin-usb-creator
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: kylin-usb-creator
- files: UIControl/src/translations/kylin-usb-creator_*.ts
- name:
- kylin-user-guide
- owner: xie-klve
- branch: openkylin/nile
- weblate-project: kylin-user-guide
- files: src/translation/kylin-user-guide_*.ts
- name:
- kylin-video
- owner: xuxinrong01
- branch: openkylin/nile
- weblate-project: kylin-video
- files: src/translations/kylin-video_*.ts
- name:
- kylin-weather
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: kylin-weather
- files: translations/kylin-weather_*.ts
- name:
- libkysdk-applications
- owner: doubySZ
- branch: openkylin/nile
- weblate-project: libkysdk-applications
- files: kysdk-qtwidgets/translations/gui_*.ts
- name:
- libkysdk-system
- owner: doubySZ
- branch: openkylin/nile
- weblate-project: libkysdk-system
- files: po/*.po
- name:
- mate-terminal
- owner: rongyouli
- branch: openkylin/nile
- weblate-project: mate-terminal
- files: po/*.po
- name:
- onboard
- owner: lllcky
- branch: openkylin/nile
- weblate-project: onboard
- files: po/*.po
- name:
- pluma
- owner: wangjinguang803
- branch: openkylin/nile
- weblate-project: pluma
- files: po/*.po
- name:
- qt5-ukui-platformtheme
- owner: yangxibowen
- branch: openkylin/nile
- weblate-project: qt5-ukui-platformtheme
- files: translations/qt5-ukui-platformtheme_*.ts
- weblate-project: qt5-ukui-platformtheme-qt5
- files: qt5-ukui-platformtheme/translations/qt5-ukui-platformtheme_*.ts
- name:
- qttranslations-opensource-src
- owner: hanpinlong
- branch: openkylin/nile
- weblate-project: qttranslations-opensource-src
- files: translations/qt_*.ts
- name:
- shared-mime-info
- owner: larue
- branch: openkylin/nile
- weblate-project: shared-mime-info
- files: po/*.po
- name:
- time-shutdown
- owner: zhang_tian_ze
- branch: openkylin/nile
- weblate-project: time-shutdown
- files: time-shutdown/translations/time-shutdown_*.ts
- name:
- ukui-biometric-auth
- owner: yangmin100
- branch: openkylin/nile
- weblate-project: ukui-biometric-auth
- files: bioauth/i18n_ts/*.ts
- weblate-project: ukui-biometric-auth-bin
- files: bioauth-bin/i18n_ts/*.ts
- weblate-project: ukui-biometric-auth-polkit-agent
- files: polkit-agent/i18n_ts/*.ts
- name:
- ukui-biometric-manager
- owner: yangmin100
- branch: openkylin/nile
- weblate-project: ukui-biometric-manager
- files: biometric-manager/i18n_ts/*.ts
- name:
- ukui-bluetooth
- owner: dunto
- branch: openkylin/nile
- weblate-project: ukui-bluetooth
- files: ukui-bluetooth/translations/ukui-bluetooth_*.t
- weblate-project: ukcc-bluetooth
- files: ukcc-bluetooth/translations/ukcc-bluetooth_*.ts
- name:
- ukui-clock
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: ukui-clock
- files: translations/ukui-clock_*.ts
- name:
- ukui-control-center
- owner: swtczb
- branch: openkylin/nile
- weblate-project: ukui-control-center
- files: shell/res/i18n/*.ts
- weblate-project: ukui-control-center-libukcc
- files: libukcc/plugin-test/translations/*.ts
- name:
- ukui-greeter
- owner: yangmin100
- branch: openkylin/nile
- weblate-project: ukui-greeter
- files: ukui-greeter/translations/*.ts
- name:
- ukui-media
- owner: zuozhiwei1
- branch: openkylin/nile
- weblate-project: ukui-media
- files: po/*.po
- name:
- ukui-menu
- owner: xcstudio
- branch: openkylin/nile
- weblate-project: ukui-menu
- files: translations/ukui-menu_*.ts
- name:
- ukui-notebook
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: ukui-notebook
- files: translations/ukui-notebook/ukui-notebook_*.ts
- name:
- ukui-panel
- owner: xcstudio
- branch: openkylin/nile
- weblate-project: ukui-panel
- files: panel/translation/panel_*.ts
- name:
- ukui-power-manager
- owner: seolaeo_self
- branch: openkylin/nile
- weblate-project: ukui-power-manager
- files: plugin-power/translations/*.ts
- name:
- ukui-screensaver
- owner: yangmin100
- branch: openkylin/nile
- weblate-project: ukui-screensaver
- files: i18n_ts/*.ts
- name:
- ukui-session-manager
- owner: ll-eleven
- branch: openkylin/nile
- weblate-project: ukui-session-manager
- files: translations/*.ts
- name:
- ukui-settings-daemon
- owner: seolaeo_self
- branch: openkylin/nile
- weblate-project: ukui-settings-daemon
- files: daemon/po/*/ukui-settings-daemon.po
- name:
- ukui-sidebar
- owner: xcstudio
- branch: openkylin/nile
- weblate-project: ukui-sidebar
- files: translations/ukui-sidebar_*.ts
- name:
- ukui-system-monitor
- owner: hesisheng
- branch: openkylin/nile
- weblate-project: ukui-system-monitor
- files: src/translation/ukui-system-monitor_*.ts
- name:
- ukui-window-switch
- owner: akajd
- branch: openkylin/nile
- weblate-project: ukui-window-switch
- files: windowsview/ukui-window-switch_*.ts
- name:
- yhkylin-backup-tools
- owner: zhoudisi
- branch: openkylin/nile
- weblate-project: yhkylin-backup-tools
- files: kybackup/qt_*.ts
- name:
- youker-assistant
- owner: xie-klve
- branch: openkylin/nile
- weblate-project: youker-assistant
- files: src/translation/kylin-assistant_*.ts

78
owner_README.md Normal file
View File

@ -0,0 +1,78 @@
## openKylin i18n SIG 组 各项目Owner须知
### 概述
本文档用于帮助各组件owner参与到 openKylin 多语言模块相关工作,帮助社区用户了解 openKylin 多语言机制等。
### openKylin 多语言实现机制
首先简单了解 locales 包locales 包用于提供本地化Localization和国际化Internationalization的支持。它包含了用于翻译和本地化应用程序界面的语言和区域设置信息。系统中的 /etc/locale.gen 文件由该包提供。
/etc/locale.gen 文件用于配置系统支持的语言环境设置,包括启用和禁用不同的语言和区域设置。
openKylin 系统安装时会对该文件进行修改,补充对应多语言字段;而在安装完成系统后,如果需要安装新的语言包,也会对该文件进行修改,同样的,也是补充对应多语言字段。
在设置完语言环境后,系统会去固定目录中寻找组件、应用的翻译文件。首先会去 /usr/share/locale 寻找,如果应用程序找到了匹配用户首选语言的翻译文件,它将首先使用这些文件;如果在 /usr/share/locale 中没有找到匹配的翻译文件,应用程序将继续搜索 /usr/share/locale-langpack 目录;如果找不到匹配的翻译文件,应用程序将继续回退并尝试默认的语言文件。
在 openKylin 中,目前实现多语言首先是通过系统安装增加系统可支持语言环境变量以及默认安装系统语言,也就是修改 /etc/locale.gen 文件;控制面板会读取 /etc/locale.gen 并进行已有语言切换,无法进行安装,控制面板不会去修改 /etc/locale.gen 文件;新增语言都带有一个对应语言包来修改 /etc/locale.gen ,且这个语言包会带有部分基础组件多语言 ;最后通过组件/应用自带的翻译文件以及多语言软件包提供的翻译文件,支持系统多语言;
### 如何参与
首先请先注册 [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仓库中。
#### 提交权限申请
在了解了职责权限与贡献方式后,需要根据你的情况进行项目权限申请。
- clone此项目并在i18n.yaml文件里增加内容以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
```
1. 文件中`package`字段之后每 `- name` 字段下的内容表示对应openkylin仓库名称
2. 文件中 `- name`字段之后 `owner` 字段表示该项目对应weblate中的负责人
3. 文件中 `- branch`字段表示当前`- name`中内容的项目对应的分支
4. 文件中 `- weblate-project`字段表示当前`- name`中内容的项目对应的weblate部件名称
5. 文件中 `- files`字段表示当前`weblate-project`中内容的部件对应的翻译文件地址
#### weblate使用
当项目开发者在完成对应的翻译文件上传并且进行了正确的设置后weblate 会有如下的项目界面显示:
![weblate界面示例](https://gitee.com/kylinos-i18n/language-packs/raw/master/img/3.png)
其次请确认自己是否有对应项目 weblate 中的权限,如果无法对对应 weblate 项目提交修改,请向 [i18n-management](https://gitee.com/openkylin/i18n-management) 提交 i18n SIG 相关 issue
以 ukui-clock 为例,在这里初步的语言种类是基于自己所传的各翻译文件的情况,以下为添加新语种翻译并自动翻译的步骤:
1. 点击下方的开始新翻译
2. 在搜索框中输入待添加语种
3. 点击开始新翻译等待加载,到达如下界面
![添加新语种翻译](https://gitee.com/kylinos-i18n/language-packs/raw/master/img/4.png)
4. 在如上界面后点击上方菜单的 工具->自动化翻译, 自动翻译模式选择为 "添加为翻译",搜算筛选器选择"未完成的字符串"(这里如果选择"所有字符串"的话自动化翻译会覆盖原翻译文件的所有翻译,尤其在翻译文件有更新的时候格外注意),自动翻译来源选择机器翻译,然后选择微软的翻译接口,点击应用。之后有如下进度条在界面上方,
![添加新语种翻译2](https://gitee.com/kylinos-i18n/language-packs/raw/master/img/5.png)
等待其完成会提示“自动翻译已完成xxx 个字符串已更新。”,有时候api会出现繁忙情况请稍作等待。
在机器翻译完之后,平台会反馈一些翻译有明显问题的翻译显示,红色标记的属于机器已经翻译但是可能存在问题的翻译,这一部分就需要手动处理。同样,也会存在部分字段翻译不准确的情况,这些也需要手动处理。点击‘所有字符串’可以逐个筛查错误翻译,也可以用到上方的搜索来帮助你快速定位字段,请注意每修改一个字段后请点击‘保存并继续’,不点击保存所有修改将会清除。
![字段检查示例](https://gitee.com/kylinos-i18n/language-packs/raw/master/img/6.png)
![字段检查示例](https://gitee.com/kylinos-i18n/language-packs/raw/master/img/7.png)
通过 weblate 平台更新生成新的翻译这就是一次对openkylin i18n SIG的贡献。以上就是 openKylin 多语言参与文档,欢迎各位社区小伙伴积极参与~