KDE 的翻译目录结构比较复杂,文件数量大。之前尝试过 Weblate 和 Transifex ,它们都不支持文件夹结构上传。Pootle 没有安装成功。最后选择了 Crowdin ,从集成的角度来说,它最复合我们的需求。命令行工具和项目配置文件可以将整个文件夹结构上传到服务器,同时能够创建分支,让 Trunk 和 Stable 分支能够同步。
5月8日更新
已完成翻译模板和现有中文翻译的上传,可以在线翻译并下载翻译好的文件。对比了 Crowdin 上翻译后的 PO 文件与 Lokalize 翻译的 PO 文件。发现两者有以下差异:
- 顶部注释的贡献者名单消失了。这种注释并非 GNU Gettext 标准,而是 Lokalize 独有的。虽然在文件中的记载消失,Crowdin 却可以在系统中记录以后参与贡献的用户。只是以前参与贡献的用户就没有记录了。
- Project-ID 和 X-Generator 会变化。但是这个影响似乎不大,不会影响兼容性。
- Translator 使用 Crowdin 用户名而不是真实姓名。
- Language Team 没有邮件列表,只有名字。

- Lokalize 会对过长的文字折行处理。但是 Crowdin 不会,多行的代码都会被合并为单行,不论长度。

- 由于翻译模板变动,一些不再使用的字符串会被抛弃。Gettext / Lokalize 仍然会把它们保存在结尾作为注释。但 Crowdin 会直接从 PO 文件中删除。但是,所有的历史都会保存在 Translation Memory 里,不会影响以后再使用。

对于中英文相同的字符串,比如 Dolphin 就翻译成 Dolphin,导入之后 Crowdin 会判定为未翻译字符串,所以 100% 就变成了 97%。就结果而言,并不会造成任何翻译丢失。但会误导翻译者,不知道这个 PO 是不是翻译完了。已解决,改上传参数就行。
总体来看,Crowdin 不会造成破坏性的,不兼容的改动。
但是第一次同步,必然会对所有 PO 文件产生改动。这样提交到 SVN,是不是会搞出个大新闻……
继续征求大家的意见!如果大家都同意迁移到 Crowdin 平台,那我们可以提交到 SVN,从此以后所有中文翻译都在 Crowdin 上进行。