需要 PO 编辑器来编辑翻译文件。此示例使用 editors/poedit。
# pkg install poedit
第9章. PO 翻译
目录
9.1. 简介
该 GNU gettext 系统为翻译人员提供了一种简单的方法来创建和维护文档的翻译。可翻译的字符串从原始文档中提取到 PO(可移植对象)文件中。翻译后的字符串版本使用单独的编辑器输入。这些字符串可以直接使用,也可以构建到原始文档的完整翻译版本中。
9.2. 快速入门
假设已经执行了 快速入门 中所示的过程。TRANSLATOR
选项是必需的,并且在 textproc/docproj 端口中默认已启用。
此示例显示了创建简短的 闰秒 文章的西班牙语翻译。
首次创建新翻译时,必须创建或从英文原文复制目录结构
为新翻译创建一个目录。英文文章源代码位于 ~/doc/documentation/content/en/articles/leap-seconds/。西班牙语翻译将位于 ~/doc/documentation/content/es/articles/leap-seconds/。路径相同,除了语言目录的名称。英文文章源代码位于 ~/doc/en/articles/leap-seconds/。西班牙语翻译将位于 ~/doc/es/articles/leap-seconds/。路径相同,除了语言目录的名称。
% mkdir ~/doc/documentation/content/es/articles/leap-seconds
将原始文档中的 _index.po 复制到翻译目录
% cp ~/doc/documentation/content/en/articles/leap-seconds/_index.po \ ~/doc/documentation/content/es/articles/leap-seconds/
假设文档或语言也正在通过 Weblate 进行翻译。在这种情况下,最好从那里获取 .po
文件并将翻译后的文档上传回平台,通过 Weblate 集中翻译工作以避免重复工作。
请参阅 Weblate 上的离线翻译 一章中如何下载 .po
文件。
使用 PO 编辑器在 PO 文件中输入翻译。有几个不同的编辑器可用。此处显示了来自 editors/poedit 的 poedit,因为它简单且需求最少。其他 PO 编辑器提供了使翻译工作更容易的功能。Ports 集合提供了其中几个编辑器,包括 devel/gtranslator。
% poedit documentation/content/es/articles/leap-seconds/_index.po
步骤:生成翻译后的文档
% cd ~/doc % ./tools/translate.sh documentation es articles/leap-seconds
生成翻译后的文档
生成的文档的名称与英文原文的名称匹配,通常为 _index.adoc。
% cd ~/doc/documentation % make
通过将其渲染为 HTML 并使用 Web 浏览器查看来检查生成的文件
表 1. 语言名称 | 语言 | 地区 |
---|---|---|
翻译后的目录名称 | 英语 | 美国 |
en | 孟加拉语 | 孟加拉国 |
bn-bd | 丹麦语 | 丹麦 |
da | 德语 | 德国 |
de | 希腊语 | 希腊 |
el | 西班牙语 | 西班牙 |
es | 法语 | 法国 |
fr | 匈牙利语 | 匈牙利 |
hu | 意大利语 | 意大利 |
it | 日语 | 日本 |
ja | 韩语 | 韩国 |
ko | 蒙古语 | 蒙古 |
mn | 荷兰语 | 荷兰 |
nl | 波兰语 | 波兰 |
pl | 葡萄牙语 | 巴西 |
pt-br | 俄语 | 俄罗斯 |
ru | 土耳其语 | 土耳其 |
tr | 中文 | 中国 |
tr | zh-cn | 台湾 |
zh-tw
翻译位于主文档目录的子目录中,此处假设为 ~/doc/documentation/,如 快速入门 中所示。例如,德语翻译位于 ~/doc/documentation/content/de/,法语翻译位于 ~/doc/documentation/content/fr/。
每个语言目录包含以文档类型命名的单独子目录,通常为 articles/ 和 books/。
组合这些目录名称可以得到文章或书籍的完整路径。例如,NanoBSD 文章的法语翻译位于 ~/doc/documentation/content/fr/articles/nanobsd/,手册的蒙古语翻译位于 ~/doc/documentation/content/mn/books/handbook/。
示例 1. 创建移植者手册的西班牙语翻译
创建 移植者手册 的新西班牙语翻译。原文是一本书,位于 ~/doc/documentation/content/en/books/porters-handbook/。
% cd ~/doc/documentation/content/es/books % mkdir porters-handbook
西班牙语书籍目录 ~/doc/documentation/content/es/books/ 已经存在,因此只需要为移植者手册创建一个新的子目录
% cd porters-handbook % cp -R ~/doc/documentation/content/en/books/porters-handbook/* .
复制原始书籍的内容
现在,文档结构已准备好供翻译人员使用 po4a
命令开始翻译。
gettext 系统极大地减少了翻译人员必须跟踪的事物数量。要翻译的字符串从原始文档中提取到 PO 文件中。然后,使用 PO 编辑器输入每个字符串的翻译版本。
FreeBSD PO 翻译系统不会覆盖 PO 文件,因此可以随时运行提取步骤以更新 PO 文件。
使用 PO 编辑器编辑文件。在这些示例中显示了 editors/poedit,因为它简单且需求最少。其他 PO 编辑器提供了使翻译工作更容易的功能。Ports 集合提供了其中几个编辑器,包括 devel/gtranslator。
在线翻译文档被证明是 FreeBSD 上最简单的文档翻译方法,因为它允许多个用户协作处理同一个文件,有效地分担工作量。有关更多详细信息,请参阅下一章,Weblate 翻译。 |
9.5. 翻译技巧
9.5.1. 保留 AsciiDoc 宏
保留英文原文中显示的 AsciiDoc 宏。
英文原文
msgid "" "This example shows the creation of a Spanish translation of the short " "extref:{leap-seconds}[Leap Seconds] article."
西班牙语翻译
msgid "" "Este ejemplo muestra la creación de un artículo con poco contenido como el artículo " "extref:{leap-seconds}[Leap Seconds]."
9.6. 构建翻译后的文档
可以随时创建原始文档的翻译版本。原始文档中任何未翻译的部分都将以英文包含在生成的文档中。大多数 PO 编辑器都包含一个指示器,显示翻译的完成程度。这使得翻译人员可以轻松地了解何时翻译的字符串足够多,可以构建最终文档。
Weblate 章节提供了如何构建翻译后的文档的完整示例。
上次修改时间:2024 年 3 月 9 日,作者:Danilo G. Baio