浅谈自由及开源软件翻译

推荐先阅读《大陆简中自由软件本地化工作指南》进行适当了解

细节日后补充

翻译工具

最重要的一环,是翻译质量的决定性因素
机器翻译、翻译记忆、本地化平台等都会在此处提及

翻译工具

本地化平台

由于懒得遣词造句,所以暂时使用了ChatGPT生成的文本作为评价,请多见谅(

本地化平台是指用于进行软件或应用本地化工作(i18n)的在线或离线工具或服务。其功能包括提取需要本地化的文本、翻译文本、校对文本、测试本地化软件等。本地化平台通常提供了多种语言的支持和多种翻译方式,如机器翻译和人工翻译。

本地化平台主要由开发者/开发团队决定,以方便其它志愿者进行本地化工作。本地化平台可以帮助开源项目开发者和开源软件翻译志愿者更加高效地进行本地化工作,提高软件或应用的全球市场竞争力(面向市场化产品)和用户体验。在开展本地化工作时,需要考虑目标用户群体的语言和文化背景,遵守翻译的一些基本规则,并进行本地化测试,以确保软件或应用能够在不同语言和文化环境下正常运行和使用。

专有(非开源)的本地化平台,多半是要向开发者/开发团队收取托管费用的,此处仅以翻译者视角进行反馈,故不考虑托管费用与开发者使用体验问题。

此处列出的主要是常见于本地化开源软件的本地化平台。当然也有不使用本地化平台的开发者/开发团队,不过需要考虑很多问题:比如翻译者与开发者之间的对接工作、翻译文件的复核与提交等。

Crowdin

SSO

支持SSO,可以通过OAuth、LDAP、SAML等多种方式与现有的身份验证系统集成,方便用户快速登录和使用平台。

补充:Google、GitHub、Bitbucket

功能

提供了丰富的本地化管理功能,包括:多语言支持、翻译记忆库、自动化翻译、机器翻译、术语管理、校对、审阅等等。用户可以轻松管理项目和团队,快速发布本地化版本。

使用难度

具有良好的用户体验和易用性,适合开源软件翻译者和非专业人士使用。同时,平台还提供了多种语言界面、丰富的文档和视频教程,帮助用户更好地了解和使用平台。

软件举例

Flutter、Kubernetes、Nextcloud、Trello、Joomla、WordPress、GitLab等

POEditor

SSO

功能

使用难度

软件举例

PHPMailer、Bootstrap、React、Angular、Laravel、Vue.js等

Transifex

SSO

功能

使用难度

软件举例

Weblate(最常见&最推荐)

SSO

Weblate 支持基于 OpenID 或者 OAuth 2.0 的单点登录(SSO),这意味着用户可以直接使用自己的社交媒体或者企业认证登录 Weblate,无需再进行繁琐的注册过程,简化了用户的使用流程。

补充:Google、Facebook、Slack、GitHub、Bitbucket、GitLab、 Microsoft Azure Active Directory等

功能

Weblate 提供了丰富的功能来帮助开源软件的翻译团队更加高效地管理和协作:

使用难度

Weblate 的界面简洁明了,易于使用。它提供了一系列视频教程和文档,用户可以轻松上手。与其他平台相比,Weblate 的使用难度相对较低,用户界面友好,学习成本较小。

注:游客也可以给出翻译建议(如果功能开放),上手难度极低(指点点点)。

软件举例

Django、Debian、LibreOffice、VLC等

优势

  1. 自由定制和修改:由于 Weblate 是一个开源软件,用户可以自由修改和扩展功能,以满足自己的特定需求。

  2. 支持自托管:Weblate 可以自己托管在自己的服务器上,用户可以完全掌控数据和安全性,而不必将翻译数据和其他敏感信息上传到第三方平台。

  3. 社区支持:作为一个开源软件,Weblate 有一个庞大的用户社区,用户可以在社区中寻求帮助、提出问题、报告错误,甚至参与软件开发和贡献。

翻译工具

辅助翻译工具

个人找到的一些用于辅助翻译的工具,注意不是用来直接翻译的工具

站点

张海大佬的翻译库

https://translations.zhanghai.me/

Reverso Context

语境翻译

https://context.reverso.net/translation/

工具

Autocorrect

huacnlee/autocorrect: A linter and formatter to help you to improve copywriting, correct spaces, words, and punctuations between CJK (Chinese, Japanese, Korean). (github.com)

AutoCorrect 的愿景是提供一套标准化的文案较正方案。以便于在各类场景(例如:撰写书籍、文档、内容发布、项目源代码...)里面应用,让使用者轻松实现标准化、专业化的文案输出 / 校正。

网页版:AutoCorrect (huacnlee.github.io)

AI 辅助翻译

不推荐直接作为译文,可做参考

ryanhex53/gpt-po: command tool for translate po files by using openai api

preset-io/ai18n: Translate .po files using the openai api

翻译流程

使用好的翻译工作流程可以事半功倍

翻译流程

本地化平台离线翻译流程

缘由

有点懒 就让 DeepSeek-R1 总结了(

灵活性与工具适配性

离线翻译允许使用更专业的本地化工具,这些工具支持术语库、翻译记忆库(TM)、机器翻译集成等高级功能,能显著提升翻译效率和一致性。

网络与协作限制

在网络不可靠或受限的情况下,使用本地化平台在线翻译可能无法得到流畅的使用体验。

性能与效率优化

对于超大型项目(如数万条翻译项),网页端操作可能卡顿,本地工具处理速度更快。

复杂文件处理需求

文件可能需要脚本化处理(如批量替换占位符、调整变量格式),本地工具(如 Python 脚本、正则表达式工具)更灵活。

流程

大致分为三个步骤:
  1. 从远程下载模板文件
  2. 本地使用相关工具进行翻译(所谓离线只是脱离在线平台,并非不联网)
  3. 从本地上传译文文件
其中值得注意的点:

Weblate

WEB

Downloading and uploading translations - Weblate latest documentation

CLI

使用 WeblateOrg/wlc: Weblate command line client
# https://docs.weblate.org/en/latest/wlc.html#getting-started 
vim ~/.config/weblate

# e.g. weblate/website/zh_Hans
$PROJECT=weblate;$COMPONENT=website;$LANGUAGE=zh_Hans

# show translation progress
wlc [stats/show] $PROJECT/$COMPONENT/$LANGUAGE

# download translation file
wlc download $PROJECT/$COMPONENT/$LANGUAGE -c po -o $PROJECT-$COMPONENT_$LANGUAGE.po

# do some translations here

# upload translation file
wlc upload $PROJECT/$COMPONENT/$LANGUAGE -i $PROJECT-$COMPONENT_$LANGUAGE.po [--method {translate/suggest/fuzzy}]

Crowdin

WEB

Offline Translation | Crowdin Docs
为了将 XLIFF 格式转至合适的翻译格式,推荐配合 The essential toolkit for localization engineers | Translate Toolkit

CLI

使用 crowdin/crowdin-cli: A command-line client for the Crowdin API
需要分项目配置,而且不支持指定 XLIFF 格式 (?),不太推荐
# https://crowdin.github.io/crowdin-cli/configuration
crowdin init
# or
export $CROWDIN_PERSONAL_TOKEN=[REDACTED];export $CROWDIN_PROJECT_ID=[REDACTED]

# show translation and proofreading progress
crowdin status -l zh-CN

# download translation file
crowdin download translations -l zh-CN

# do some translations here

# upload translation file
crowdin upload translations -l zh-CN

Transifex

WEB

Translate Offline | Transifex Help Center
为了将原资源的格式(或订阅使用 XLIFF 格式)转至合适的翻译格式,推荐配合 The essential toolkit for localization engineers | Translate Toolkit

CLI

使用 transifex/cli: The Transifex command-line client
需要分项目配置,而且使用 XLIFF 格式需要订阅,不太推荐
# https://github.com/transifex/cli?tab=readme-ov-file#usage
tx init && vim .tx/config
# or
export $TX_TOKEN=[REDACTED]

# show translation and proofreading progress
tx status [resource_id]

# download translation file
tx pull -l zh-CN

# do some translations here

# upload translation file
tx push -l zh-CN

Translation Project

参考 Translators and the TP

CLI

使用 Translation software and other projects
./sendpo.sh POFILE

翻译流程

AI 用于软件翻译流程

选择翻译格式

顺便列举一些质量较高的项目

基于 GNU gettext PO

GNU gettext 是使用最广泛的自由软件国际化工具之一,且在 Weblate 中有很好的支持。
这个在用,子命令比较好用,prompt 设置合理,支持自定义提示、词典、上下文
ryanhex53/gpt-po: command tool for translate po files by using openai api
这个有前端,从 gpt-po issue 里看到的
leolivier/auto-po-lyglot: The goal of this project is to use various LLMs to help translate po files using a first already translated file to provide context for short pieces of text otherwise very ambiguous.
一般,不过有 pypi
pescheckit/python-gpt-po: This tool, powered by OpenAI's GPT-4, offers a sophisticated approach to translating .po and .mo files, seamlessly integrating the capabilities of ChatGPT and GPT-3.5 models. It's designed for both bulk and individual file translations, providing a versatile solution for different translation needs.

基于 XLIFF

XLIFF 是基于 XML 的格式,旨在标准化翻译文件(但是版本间都不兼容,pypi 都没解析库),Crowdin、Transifex(付费) 主要用这个导出/入译文进行离线翻译,条目可带有额外的核准状态
建议还是转换到 PO Files 翻译后再转回去

基于 JSON

这个需求比较特殊,一般用于 JS 相关项目
mololab/json-translator: jsontt 💡 - AI JSON Translator with GPT + other FREE translation modules to translate your json/yaml files into other languages ✅ Check Readme ✌ Supports GPT / DeepL / Google / Bing / Libre / Argos

初翻后人工校对

有些要点需要注意(AI 无法注意到的翻译规范细节):

 

翻译细节

一些规范的问题

翻译细节

格式问题

有关翻译模版/产物文件的种类,具体可以查询Weblate的文档,其中提供了对比表格与各个文件类型的详情。

有时候如果想翻译一个新项目,但是项目提供与支持的翻译模版文件不是你所熟悉/常用的类型,最简单的办法当然是转换为你熟悉的类型,下面这些工具具有转化类型的功能:

翻译细节

翻译规范

参考

KDE

KDE 简体中文团队

KDE 中文翻译指南

freeCodeCamp

翻译流程及规范

Ubuntu 社区

Ubuntu 简体中文小组工作指南

自由软件中文化工作指南(L10N)

Fedora 社区

中文本地化指导

L10N/Guide

中文文案排版指北(推荐)

仓库

自动校正工具

掘金

译文排版规则指北

工具

Autocorrect