效率优先免费开源 Qt/C+×.ts×.qm 文件汉化 机器 人工翻译小程序流程

截止 2018 年 02 月,Google 基于开源 Linux OS 技术开发的 "智能手机" Android 操作系统已全球普及,就差火星了,最新官方稳定版为 8.0。2016 年起火热至今的开源 AI (人工智能),最佳部署平台也是 Linux 环境。而 Linux 环境最著名的 C++ GUI (图形用户界面) 开发框架,比肩 MicroSoft 公司 VC++ 库的,那就是 Qt C++ 库。

在 "智能手机" 还不是太普及,Nokia 诺基亚还未收购并 LGPL 开源 Qt 的 2008 年之前,在中国一说到要做 GUI (图形用户界面) App,可能第一想到的是 MicroSoft 公司的 .Net C# 环境或 MFC 框架,还有那红极一时的 Delphi。虽说当时 Linux 开源领域 Qt 已很有名,譬如:2008 年前很多 CG 行业的 App 应用都在考虑转 Qt 领域 (最著名的是美国 AutoDesk 公司)。为什么?因为,Qt 之前就采用的 GPL 开源许可授权协议,被 Nokia 诺基亚 2018 年收购后并进一步采用了 LGPL 开源许可授权协议 (真正做到了 Free 自由开源免费)。

本文所要介绍的 Qt/C++ *.ts *.qm 文件,"德云社区" 2009 年前后因需汉化 AutoDesk 公司 "MudBox 数字雕刻与纹理绘画软件" 界面。那时,百度、Google 搜索 *.ts *.qm 文件资源还很少,当然,现在也不算多。

*.ts *.qm 文件

*.qm 文件是从 *.ts 文件,采用 Qt 自带的 lrelease.exe 并运行相关 CMD 命令或由 Qt 自带的 linguist.exe 应用生成的 "Qt Multi-language" 本地化文件。

*.ts 文件是从 Qt/C++ 或相关绑定 (如 Python 语言绑定 PyQt、PySide) 源代码中,提取出来的 "Translate Source 翻译资源" 文件。

采用 Qt 自带的 lupdate.exe 并运行相关 CMD 命令,在 Windows OS 下提取 *.cpp (Qt/C++ 源文件) 或 *.py (Python 语言绑定 PyQt、PySide 源文件) 可获得 *.ts 文件。"德云社区" 以前是将 *.ts 文件批量导入德国 Passolo (后被 SDL Trados 塔多斯收购) 或 Qt 自带的 linguist.exe 应用中翻译并生成 *.qm 文件。

但效率不高,且用户体验也不行;因此,"德云社区" 才制作了以下一系列专用小程序,都集成在 "数字翻译" 和 "数字 IDE 专业版" 应用中,未单独发布:

"Qt *.TS 文件提取" 小程序

从 *.cpp (Qt/C++ 源文件) 或 *.py (Python 语言绑定 PyQt、PySide 源文件) 中批量提取、获得 *.ts 文件。

不用运行 CMD 命令,只需选择源工程目录位置-格式,及提取文件名 (默认 en-US) 即可,见下图。

有人会说界面有点复杂,没关系,等你会用 "德云社区" 的一个小程序后,其它小程序用法基本一致,大同小异。

"Qt *.TS 文件编排" 小程序

批量剔除 *.ts 文件中的多余字符,排版-生成最终制作 *.qm 文件所需的文件 "排版样式"。

操作方式同上,若需单独列出 "访问键",请选择 "启用"。

"Qt *.QM 文件发布" 小程序

把所有 *.ts 文件批量发布成 "Qt Multi-language" 本地化 *.qm 文件。

操作方式同上,但发布前请采用 "德云社区" 的 "翻译 UI (用户界面)" 小程序,翻译所有 "已编排" *.ts 文件。

"翻译 UI (用户界面)" 小程序

"批量-多线程-多进程"翻译 "已编排" *.ts 文件。

翻译前请使用 "德云社区" 的 "文件字符提取" 小程序,从 "已编排" *.ts 文件中提取出 "翻译字符" *.dscp 文件,并自动 "机器翻译" 或手动 "人工翻译" 提取 *.dscp 文件。

若 *.dscp 文件中存在大量 "重复术语",请使用 "德云社区" 的 "文件行重复" 小程序 "剔除" 所有 "重复术语"。

当然,若要生成 "zh-CN 语言" 本地化 *.qm 文件,请使用 "德云社区" 的 "文件克隆" 工作,先将所有 en-US.ts 文件克隆出一份 zh-CN.ts 文件。

若要生成 "zh-TW 语言" 本地化 *.qm 文件,请使用 "德云社区" 的 "文件克隆" 工作,先把所有已翻译 zh-CN.ts 文件克隆出一份 zh-TW.ts 文件,再使用 "文件转 zh-TW" 小程序将所有 zh-TW.ts 文件中的 "简体中文" 字符 "快速-批量" 转换成 "繁体中文"。

此处所说的 *.dscp 文件,也就是翻译时要用到的 "术语库",是以 6 个连续 "─" 字符 (主要针对德国 Passolo 应用 "术语文件",采用不可见 "\t" Tab 键空格分隔术语的改进) 分隔术语的 "纯文本" 文件。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180213G0BSZZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券