Desktop文件翻译方式整理

因为目前transifex对desktop文件的支持不是太好,而且很可能会这么持续下去,所以我们采取了将desktop文件做中间转换的方式以达到翻译目的。下面以dde-calendar项目为例对使用方式做简单说明:

生成源文件

使用deepin-gettext-tools包里面提供的deepin-desktop-ts-convert命令将desktop文件转换到ts文件,dde的项目一般都有translations目录,所以我直接生成在了translations/desktop/下面,

deepin-desktop-ts-convert desktop2ts deepin-calendar.desktop translations/desktop/

完成后translations/desktop/目录下面就会有两个ts文件:desktop.ts和desktop_zh_CN.ts,前者就是我们需要的源文件,后者则是为了保留已经翻译的中文翻译。

注意:不要修改这两个生成的文件的名字!

配置tx

简单增加几行即可,比较简单,不再细说。未编辑前:

[main]
host = https://www.transifex.com
minimum_perc = 80
mode = developer

[deepin-desktop-environment.dde-calendar]
file_filter = translations/dde-calendar_<lang>.ts
source_file = translations/dde-calendar.ts
source_lang = en
type = QT

编辑新增的内容:

[deepin-desktop-environment.dde-calendar_desktop]
file_filter = translations/desktop/desktop_<lang>.ts
source_file = translations/desktop/desktop.ts
source_lang = en
type = QT

使用sync_transifex工具的方式保持不变。

合并翻译

源文件生成、上传完成,翻译人员补充过相应的翻译以后,项目负责人就可以将翻译从transifex上面拉回来。所有的翻译文件都会按照上面tx的配置生成到translations/dekstop目录下,最后还是用deepin-desktop-ts-convert命令将翻译合成进desktop文件中。

deepin-desktop-ts-convert ts2desktop deepin-calendar.desktop translations/desktop/ deepin-calendar.desktop



这个步骤最好放到Makefile中,dde-calendar项目的做法是添加了translate_desktop.sh并放入了dde-calendar.pro中运行。
translate_desktop.sh的内容:

#!/bin/bash

DESKTOP_SOURCE_FILE=deepin-calendar.desktop
DESKTOP_TS_DIR=translations/desktop/

/usr/bin/deepin-desktop-ts-convert ts2desktop $DESKTOP_SOURCE_FILE $DESKTOP_TS_DIR $DESKTOP_SOURCE_FILE



dde-calendar.pro中相应的部分:

CONFIG(release, debug|release) {
    system($$PWD/translate_generation.sh)
      system($$PWD/translate_desktop.sh)
}

参考链接

deepin-desktop-ts-convert的用法: https://coding.net/u/electricface/p/deepin_desktop_ts/git

发表评论

电子邮件地址不会被公开。 必填项已用*标注