第 10 章。Weblate 翻译

10.1. 简介

本章介绍加入 FreeBSD 翻译团队的一些基本步骤,包括在 Weblate 上在线翻译或离线翻译,以及一些关于翻译、校对和测试的简单建议。重点关注翻译部分。

原始文档(文章和书籍)位于 文档门户 中。

Weblate 是一款基于 Web 的开源软件,专注于本地化;FreeBSD 项目运行一个本地实例。

10.2. 如何成为 FreeBSD 翻译人员

以下是在开始翻译 FreeBSD 文档项目的文章和书籍时的一些简单步骤。

  1. FreeBSD Weblate 实例 上使用电子邮件地址或 GitHub 帐户创建一个帐户。

  2. 订阅 FreeBSD 翻译人员邮件列表

  3. 自我介绍并请求加入一个语言团队。如果语言团队不存在,请请求创建它。自我介绍至关重要。这将提高您获得写访问权限的机会。

  4. 使用新帐户登录 Weblate

  5. 找到语言团队并选择一个初始文档进行翻译。

  6. 创建一个 Bugzilla 帐户,以便在完成文档后提交翻译。文档项目也接受通过 GitHub Pull Request 提交的翻译。

所有翻译文件和文档必须遵循 FreeBSD 文档许可;如果这是不可接受的,请不要注册或发送任何补丁或翻译。

10.3. 自我介绍

请在 FreeBSD 翻译人员邮件列表 上进行简短的自我介绍,以启动授予访问权限的过程。这将使语言协调员或管理员能够为 Weblate 的新用户提供必要的权限,以便他们开始翻译。

以下是如何发送此类邮件的示例。

Subject: Self-Introduction: Name and language

Name:      Name (use preferred name)
Location:  City, country (optional)
Login:     username or email (essential)
Language:  Language to translate (essential)
Profession or student status: (optional)
About You: (free format -- info which you feel comfortable sharing with
  others: company, school, other affiliation, historical qualifications, other
  projects you have worked on, level and type of computer skills, other relevant skills,
  etc.)
You and the FreeBSD Project: (free format: other FreeBSD projects of
  interest, comments, etc.)

10.4. 登录 Weblate

Weblate Login

使用用户名、电子邮件地址或 GitHub 帐户登录。

用户配置文件包含您的偏好、姓名和电子邮件地址。姓名和地址将在提交中使用;请确保这些信息准确无误。

在 FreeBSD Weblate 实例中,所有翻译将提交到 freebsd-doc-translate(GitHub 上的中间存储库),而不是直接提交到 freebsd-doc。翻译人员必须获取 PO gettext 文件(.po),将其转换为 .adoc,然后通过 BugzillaGitHub 提交,以在文档门户中发布或更新翻译后的文档。有关详细信息,请参见以下部分。

如果翻译了任何新字符串,Weblate 将每天至少提交到 freebsd-doc-translate

10.5. 寻找一个语言团队加入

点击 项目,选择 文档,然后点击 语言,查看所有可用的语言。

Weblate Languages

请注意,某些语言和翻译后的文档已存在于文档门户和存储库中。

如果 Weblate 中没有所需翻译语言,请在请求创建新语言之前联系 语言协调员。如果未收到回复,请写信给文档工程团队 <[email protected]>。

10.6. 在 Weblate 上在线翻译

在线翻译文档被证明是 FreeBSD 上文档翻译最简单的方法,因为它允许用户在同一个文件上进行协作,分担工作量。

一旦协调员或管理员授予用户名对特定语言的访问权限,保存按钮将被启用,以便该用户可以开始翻译。

Weblate Documents
Weblate Translate

Weblate 有一个链接集,可引导到实际的翻译。翻译进一步细分为单独的检查,例如 未翻译需要审核。如果整个文档在没有任何错误的情况下被翻译,则在需要审核的情况下仍然可以使用 所有翻译 链接。或者,可以使用搜索字段查找特定字符串或术语。

Weblate 文档 中,有更多关于翻译的信息,例如键盘快捷键和其他关于翻译工具的技巧。

10.7. 离线翻译

FreeBSD 上的 Weblate 使用 PO gettext 文件进行翻译。熟悉 PO gettext 文件并希望离线翻译的用户可以通过 Weblate 上的文档页面下载和上传翻译,方法是点击 文件 部分。

Weblate Offline

10.8. 基于自动建议的翻译

迁移到 Hugo/Asciidoctor 之前的 Weblate 语言可以使用 Weblate 的此功能来节省时间。

Weblate 的此功能使用同一服务器上其他组件和项目生成的翻译记忆。以前的 Weblate 翻译以只读形式托管在同一服务器上。

相似度为 100/100 的字符串可以直接复制并保存。其他字符串至少需要进行一些调整。

一些示例

Weblate Automatic Suggestions 01

迁移到 Hugo/Asciidoctor 后,文档使用 UTF-8。某些 HTML 实体应被替换。某些字符串,例如链接,需要更改标记。

Weblate Automatic Suggestions 02

链接

Weblate Automatic Suggestions 03

10.9. 校对和 Weblate 质量检查

文档仪表板 项目/语言/文档 显示该文档的翻译状态和字符串状态。此页面对于校对和质量检查非常有用。

Weblate Revision 01

在此示例中,有两个字符串缺少句号;点击该链接将仅显示需要修改/翻译的字符串。

Weblate Revision 02

翻译人员和审阅人员通常会重视在上下文中观察翻译后的字符串。

10.10. 构建翻译后的文档

该项目不使用持续集成和持续交付来构建翻译。正在研究使其可用。

以下示例使用 GitHub,因为 Weblate 也在 GitHub 上。请注意,此存储库是只读镜像,但接受 Pull Request。

要本地构建翻译,请按照以下步骤操作

步骤:克隆必要的仓库
  1. 克隆 freebsd-doc 仓库

    % git clone https://github.com/freebsd/freebsd-doc.git ~/freebsd-doc
  2. 克隆 freebsd-doc-translate 仓库

    % git clone https://github.com/freebsd/freebsd-doc-translate.git ~/freebsd-doc-translate
步骤:将翻译文件复制到 freebsd-doc

将两个仓库都克隆到本地后,将 freebsd-doc-translate 中的翻译文件复制到 freebsd-doc 中。例如,西班牙语的 Committer’s Guide 文章翻译。

% cp ~/freebsd-doc-translate/documentation/content/es/articles/committers-guide/_index.po \
~/freebsd-doc/documentation/content/es/articles/committers-guide/
步骤:将翻译文件(.po)转换为 .adoc

进入 freebsd-doc 的根目录。

% cd ~/freebsd-doc

.po 文件翻译(转换为)为 .adoc

% ./tools/translate.sh documentation es articles/committers-guide

默认情况下:只有翻译了超过 80% 字符串的文件才会被转换为 .adoc

要忽略此限制

% KEEP_ENV=0 ./tools/translate.sh documentation es articles/committers-guide

某些文档,例如书籍,包含多个 PO gettext 文件。翻译和构建时请始终复制所有文件。未翻译的文件将使用源代码(英语)字符串进行转换。

目录结构至关重要。始终遵循英语文档的目录结构。

步骤:构建翻译后的文档

最后,是构建部分。

进入文档目录,因为无需构建 FreeBSD 网站。

% cd documentation

构建文档。请注意,在构建任何其他语言时,默认情况下始终会添加 en

% DOC_LANG=es make

此命令只会构建 FreeBSD 文档门户的英语和西班牙语文档。输出将在 public 目录中;在浏览器中打开该目录。请注意,某些索引文件可能会将浏览器重定向到在线页面。

另一个不错的选择是使用 Hugo 的内部 Web 服务器构建和提供内容

% DOC_LANG=es make run

默认情况下,Web 服务器监听 localhost;要覆盖此行为,请在 BIND 参数值中指定所需的 IP 地址。

% DOC_LANG=es make run BIND=192.168.15.10

这会使用 Hugo 的内部 Web 服务器构建和提供内容,并允许其打开,并且如果任何文件发生更改,它会自动重新构建它们。

要对翻译进行任何必要的调整,请按照以下步骤重新同步所有组件

  • Weblate 上修复翻译字符串。

  • 强制 Weblate 在 Document/Manage/Commit 部分提交更改。

  • 使用 git pull origin main 命令同步本地 Weblate 仓库 freebsd-doc-translate

  • 再次将翻译复制到 freebsd-doc

  • 使用 ./tools/translate.sh 脚本将翻译转换为 .adoc。

  • 如果使用了 make run,Hugo 将重新构建文件,而不是构建整个集合;或者重新执行 make

根据需要重复执行前面的步骤,直到文档准备发布为止。

文档构建过程 一章包含有关渲染为 HTML 和 PDF 的信息。

10.11. 提交翻译

提交对巴西葡萄牙语文章 Committer’s Guide 的更新示例。

检查仓库

按照 构建翻译后的文档 中的步骤操作后,进入 freebsd-doc 的根目录并预览要提交的内容。要概览要更改的文件以及文件内容的差异,请执行以下操作

% git status
% git diff

查看输出,如果更改或添加了与 Committer’s Guide 翻译更新无关的任何文件,请在继续操作之前采取适当的操作,分别将其还原或删除。

始终包含 PO gettext 文件(.po)和 Hugo/Asciidoctor 中的翻译文档(.adoc)。

创建新的分支并提交

创建另一个分支来分离工作,这将有助于将来在本地仓库中进行更新。

% git checkout -b committers-guide_pt-br

注册本地提交。

% git add .
% git commit

翻译提交消息示例

pt-br/committers-guide: Sync with en XXXXXXX

其中 XXXXXXX 是存储在 Weblate 仓库 ~/freebsd-doc-translate/revision.txt 中的 git(1) 修订版本。

如果是文章的第一个翻译

Add Korean translation of Leap Seconds article

如果之前未配置 git(1),则在提交后会显示一条消息。请按照说明提供在 Weblate 上使用的姓名和电子邮件地址。此步骤对于正确归功于贡献者至关重要。

然后检查整个提交,查看更改以及作者姓名和电子邮件。

% git show
生成补丁

接下来,生成一个 git-format-patch(1) 文件。

% git format-patch main
0001-pt-br-committers-guide-Sync-with-en-XXXXXXX.patch

将补丁 0001-pt-br-committers-guide-Sync-with-en-XXXXXXX.patch 附加到 FreeBSD Bugzilla 中的问题报告。

在报告中包含以下信息

表 1. Bugzilla 字段
字段

产品

文档

组件

书籍和文章

摘要

与本地提交相同

描述

说明已遵循本指南中的说明,包括校对和其他必要的步骤。包含可能有助于对报告进行分类和处理的内容。

CC(可选)

如果该语言有协调员,请在 CC 字段中包含他们的电子邮件地址。

对于熟悉 git(1) 和 GitHub 的人:无需通过 Bugzilla 提交补丁,可以使用 GitHub pull request(使用您在 Weblate 中使用的姓名和地址)。

https://github.com/freebsd/freebsd-doc/ 是一个辅助镜像。只有拥有 doc 提交位的人才能对 doc 树进行更改。

当翻译人员不断发送高质量的补丁时,他们可以被其他提交者提名为获得写入权限(doc 树的 doc 提交位)、FreeBSD 帐户以及相关特权。

其他 FreeBSD 贡献者 列表包括其贡献被提交到 doc 树的非提交者。

如果您对任何过程有任何疑问,请写信到 FreeBSD 翻译人员邮件列表

10.12. 常见问题解答(FAQ)

10.12.1. 是否需要翻译所有版权消息?

每个语言团队都会为其语言决定此事;在 pt-br(巴西葡萄牙语)团队中,已决定不翻译这些消息。


最后修改时间:2024 年 3 月 9 日,作者:Danilo G. Baio