From Fedora Project Wiki

Fedora 本地化工作指南(新的)

重要说明
Zanta 已经被弃用,此文档仅用于存档之用

愿景

这个页面,描述了如何加入L10N本地化团队。作为一个新的翻译者,应该如何在Zanta上翻译。

如何成为一个Fedora翻译者

L10n项目显然不仅仅是为了翻译。不过,翻译却不妨成为一个不错的门槛来迈入本地化团队,下面是使您成为翻译者的一些基本步骤:

  1. 创建一个FAS账户
  2. 订阅并加入邮件列表
  3. 自我介绍 (It's a good idea to do it on all mailing list you have subscribed)
  4. 使用你的FAS账户登录Zanta
  5. 寻找适合于您的语言团队并加入

你的自我介绍很重要。 它有机会提高你的操作权限。 你可能还想创建一个Bugzilla帐户来处理用户反映的错误。

创建一个FAS账户

  1. 打开 https://admin.fedoraproject.org/accounts 并点击“New Account(新建账号)”链接。
  2. 填写所有项,然后单击“Sign up(注册)”。 密码将通过电子邮件发送给你,你可以稍后更改密码。
  3. 现在再次访问 https://admin.fedoraproject.org/accounts 并用你的密码登录。
  4. 帐户系统会提醒你CLA未完成。

签署CLA

要开始翻译前,你必须完成贡献者许可协议或CLA。

  1. 访问 https://admin.fedoraproject.org/accounts 并用你在上一过程中获得的用户名和密码登录你的帐户。
  2. 在欢迎页面中,单击完成CLA或转到https://admin.fedoraproject.org/accounts/user/edit。
  3. 如果你尚未提供电话号码和地址的信息,将出现编辑帐户(user_name)页面,你需要填写每一项。否则将显示"Fedora Contributor License Agreement"页面。仔细阅读协议,如果你愿意,请点击我同意。
  4. 现在点击“保存”! 在页面底部保存你的信息。
  5. 出现用户视图页面,CLA项:显示为“CLA 已验证”。
注意
除管理员组外,其他人无法访问电话号码和地址信息。 请参阅 https://fedoraproject.org/wiki/Legal:PrivacyPolicy 上的Fedora隐私政策。 其他任何成员都可以通过访问用户的视图页面显示其他信息。
有关FAS的更多信息
有关Fedora帐户系统的更多详细信息,请参阅 https://fedoraproject.org/wiki/Account_System

加入邮件列表

L10n 邮件列表

注意
在此邮件列表中使用英语
  1. 访问trans邮件列表订阅页面并订阅它。
  2. 在管理员批准之前,你将无法向列表发送邮件。 你将收到一封确认电子邮件,其中包含确认订阅的链接。 单击链接以确认。

你的team(团队)邮件列表

注意
在这个邮件列表中使用你的母语更好
  1. 访问 https://fedoraproject.org/wiki/L10N/Teams 并找到你的语言团队。
  2. 订阅你的语言的邮件列表
邮件列表指南
在发送消息到邮件列表之前,建议你阅读此指南

介绍你自己

  1. https://fedoraproject.org/wiki/User:Username 创建个人页面(可选).
  2. 对你订阅的邮件列表进行简短的自我介绍。 如果你不知道要介绍什么,这里有一个模板:https://fedoraproject.org/wiki/L10N_Self_introduction。

以上两个步骤对于Fedora贡献者相互了解和联系非常有用。 第二步还可以帮助你的语言管理员(协调员)认识你并批准你作为团队的翻译。

使用您的FAS账户登录Zanta

  • 然后它将跳转到FedOAuth页面,你可以使用你在上一节中注册的FAS帐户和密码登录。

  • 然后,你将被重定向到认证页面,单击“Approve(批准)”。

  • “new user(新用户)”页面会打开。

你应输入你的全名,用户名(FAS用户名)和你的电子邮件地址。 注意:请使用你的真实电子邮件地址,但不要使用你的Fedora项目别名(username@fedoraproject.org)。 完成后,单击“Save(保存)”按钮。 激活邮件将立即发送到你的邮件地址。 请在收件箱中找到邮件,然后打开邮件中显示的激活链接。 然后使用你的FAS用户名和密码登录。 下次登录时,你无需再次执行此步骤。 它只对新用户登录时是必要的。

寻找适合于你的语言团队并加入

  • 访问https://fedora.zanata.org并点击顶部的语言,然后你将看到所有可用的语言(已过期需要登陆后才可查看)。

  • 找到你要翻译的语言,然后单击语言编号。
  • 单击页面左侧的蓝色按钮申请加入团队。

  • 你可以选择你想要的角色,然后单击“Send Message(发送消息)”。 附加消息是可选的。 例子中,我使用南非荷兰语作为下面的截图。

  • 团队管理员(协调员)将收到有关你请求的电子邮件通知。 只要他/她批准你的请求,你将成为团队成员。 但是,管理员(协调员)可能不会批准你的每个角色请求。 换句话说,如果你要求成为翻译,审稿人和协调员,他/她可能只会批准你担任翻译角色。

Translating

使用Zanata在线翻译

寻找你的项目


在Zanata上有三种查找翻译文件的方法:

方法一 : 项目搜索

如果你知道翻译项目的标题,可以通过项目搜索框查找它

然后选择合适的项目来查看可用的翻译版本。

方法二 : 项目主页

单击位于页面顶部的“Projects(项目)”链接,访问“Projects(项目)”页面上的所有项目。 通过单击列表字段名中的箭头,可以按名称,创建日期或当前活动状态对项目表进行排序。

单击项目名称以查看可用于翻译的版本。

方法三 : 用户仪表盘(控制台)

你也可以从用户仪表盘(控制台)访问你的翻译项目。

“Activity(活动)”部分列出了你的所有最新翻译。 如果要查找最近翻译的项目,请通过该列表信息查找项目的名称。 你可以通过单击列表信息中的相关链接文字来访问,文档信息,版本信息或整个项目。

开始翻译


找到并选择项目后,将打开以下编辑器:

1. Search(搜索 )

直接在搜索框中输入相关名称或选择筛选来进行搜索。 例如,如果你只想显示自己修改的字符串,请选择“last-modified-by”并输入你的用户名。

2. String details(文字简介)

允许你查看特定源文本的详细信息,包括注释。

3. Filtering(筛选)

字符串可以按状态筛选:Incomplete, Complete and Invalid(未完成,完成和无效)(包含警告或错误)。 例如,要显示所有未翻译(未完成),草稿和无效的字符,请选中“Incomplete(未完成)”框。 仅显示特定类型的未完成符串,请选中相应的框,例如 Fuzzy(草稿)。


4. Copy message from source language(从源语言复制消息)

当源文本包含标签,数字或产品名称时应与需要翻译的语言保持一致,此功能非常有用。

5. Profile icon(个人资料图标)

单击此图标可注销或访问仪表盘。 仪表盘的右上角显示当前日/周/月翻译的单词/消息/文档的数量。 仪表盘的底部显示你的活动状态,即你最后翻译的文件的时间和位置。

6. Document list(文档列表)

单击返回此项目的文档列表

7. Editor(编辑器)

This button allows you to revert to the editor from any other page you are in, e.g. from the Project-wide Search & Replace page.

8. Project-wide Search & Replace(整个项目的搜索与替换)

使用此选项可搜索并替换整个文件中的具体词或短句。 操作如下: 在搜索框中输入一个词,设置搜索筛选“search target(搜索目标)”,并检查“Case sensitive(区分大小写)”的情况(如果适用)。 在第二个文本框中,输入你要使用的词语。 然后选中“Select all(全选)”或选择要应用此更改的文字,然后单击“Replace(替换)”更改。

9. Available Keyboard Shortcuts(键盘快捷键)

在文本编辑器页面中,单击此按钮可查看所有可用快捷键的列表。

10. Notification(通知)

单击此按钮可查看最新通知,包括每个已修改文字的日期,行号,ID号。

11. Chat room(群聊)

使用此功能可与其他翻译人员进行交流

12. Options(设置)

此功能允许你修改自定义修改默认选项。 例如,选中“Enter key saves immediately(立即输入密钥保存)”框以使用Enter键保存字符串。


13. Validation options(验证设置)

此页面允许你选择不同的验证设置:

- HTML/XML tags:html/xml标签是检查源文本和目标文本之间是否一致。

- Java variables:检查 java style ({x}) 变量是否一致.

- Leading/trailing newline (\n)(行首、行尾的换行符): 检查行首和行尾随换行符是否一致 (\n).

- Positional printf (XSI extension): 检查位于printf style (%n$x) 变量是否一致.

- Tab characters (\t)(制表符):检查源文件与目标是否具有相同数量的制表符。

- XML entity reference: 检查整个XML的标记是否完整。

14. Save as translated(保存为已翻译)

保存可以通过单击此图标,或者单击旁边的文字,在或者按Ctrl + Enter或仅按Enter键(如果在编辑器选项中选中“Enter key saves immediately(立即保存输入键)”)来完成保存(参见10.)。

15. Save as fuzzy(保存为草稿)

你可以使用此按钮将当前文字保存为草稿,并设置它需要进一步的工作。

16. Cancel(取消)

如果要取消更改,请使用此按钮。

17. History(历史记录)

此按钮将跳转到翻译历史页面,你可以:

- 发表评论

- 查看此特定文字的翻译历史记录,包括修改日期和用户名

- 比较不同的版本,只需点击“Compare(比较)”,查看你要比较的两个字符,然后单击“Compare vers. X and X”选项查看比较。

18. Translation memory(翻译历史库)

Translation Memory(TM)是一种搜索与当前所选源字符串相等(100%)或类似(<100%)的翻译的工具。 Matches can be copied to the translation text box and used as-is or modified before saving. To copy TM matches to the selected text box, click the “Copy” button, or use Ctrl+Alt+1 to Ctrl+Alt+4 keyboard shortcuts to copy the first to fourth match in the list. 你还可以通过在TM文本框中输入并单击“Search”来搜索TM以查找其它短句。

19. Glossary(词汇表)

If a glossary has been uploaded for your language, each word in the currently selected row will be searched for a glossary entry.

离线翻译

有两种方法可以让你离线翻译:

方法一: Zanata-cli


1. 安装 zanata-cli

访问 http://zanata.org/help/

在 “Cli” - 选择 “Installing the client ”

你可以通过两种方式安装客户端:

  • 使用 DNF 安装Fedora 22及更高版本或使用 YUM安装,如果你使用旧版本运行以下命令:
sudo dnf install zanata-client
sudo yum install zanata-client
  • 或使用Ivy安装:

点击“Zanata Ivy Client on github(github上的Zanata Ivy客户端)” 链接

根据你使用的系统(Fedora,RHEL或其他系统)运行相应的命令

安装Ivy后,单击zanata-cli文件。

将可执行文件的内容复制并粘贴到文本编辑器中,并另存为“zanata-cli”。

2. 配置客户端

配置客户端需要两个操作:

2.1 配置用户:

首先在 ~/.config/ 中使用首选文本编辑器创建或打开“zanata.ini”。

2个步骤:

2.1.1. 创建API密钥

在Zanata帐户中,转到信息中心,然后点击“Settings(设置)”。

然后选择客户端

如果你没有,请生成API密钥。

2.1.2. 将标记为“Configuration [zanata.ini]”的文本框的内容复制到先前创建的zanata.ini文件中并保存该文件。

2.2 配置项目:

将项目版本配置添加到项目目录,navigate to your translation project in Zanata,,例如: Fedora安装指南 - f20 - 选择你的语言环境 - 在右上角,单击箭头并选择“Download config file(下载配置文件)”

将zanata.xml文件保存在首选位置。

3. 将文件下载到你的计算机

在命令行中运行以下命令前,make sure you are in the directory containing the zanata.xml file.

运行:

zanata-cli pull -s src -t trans -l <language code> --pull-type both

源文件和已翻译文件将创建到目录中的src(源)和trans(已翻译)文件中。

你现在可以使用首选编辑器打开文件并翻译项目。

4. 将文件上传到Zanata

将已翻译的文件推送回Zanata,请运行以下命令:

zanata-cli push -s src -t trans -l <language code> --push-type trans

你的翻译现已被推送Zanata,并且TM已根据你的更改进行了更新。

方法二:通过用户界面

登陆 https://translate.zanata.org/

搜索你的项目,例如 Fedora安装指南。

选择你的语言

要下载整个项目,请单击页面右上角的箭头(“sort(排序)”旁边),然后单击“Download All (zip)(全部下载)”。

仅下载一个文件,请单击文件名左侧的箭头,然后选择“Download Translated [.po].(下载已翻译的)”。

将文件保存到首选位置。

翻译文件。

完成后,将文件上传到Zanata,选择“Upload translation(上传翻译)”。

注意:虽然可以下载整个项目,但只能通过文件,通过单击文件名左侧的箭头,然后选择“Upload translation(上传翻译)”来上传。

校对

相对翻译人员来说很难在翻译的文字内找到拼写错误或轻微错误。 校对非常重要。 一般来说,校对仅涉及翻译的文字内容。 然而,PO文件通过L10n和i18n工作流程发挥了重要作用。 因此,翻译人员应在翻译过程中保持PO文件的有效性,以便其他翻译和维护人员可以正确地使用它们。

PO文件校对

Zanata提供的在线翻译编辑器具有检查每个字符串的校对功能。 如果你更喜欢在线翻译,此功能对你有所帮助。 校对选项位于在线编辑器的右侧。 它提供了几种验证方法。

在此示例中,结束标记

</command>

被写为

</comd>

,编辑器会发出警告,表示可能存在错误标签(</command>)。 当你使用在线翻译期间显示这样的警告时,最好再仔细检查你的翻译。

如果你希望离线翻译,应始终在提交前检查文件的有效性。 执行此操作的命令是:

msgfmt -cvo /dev/null po_file_to_check.po

确保没有错误信息。

翻译校对

验证工具仅用于检查与编码语言相关的东西,变量或某些内容的有效性。 你不能指望它检查你真正翻译的文字内容。 例如,我错误地将英文单词“He”翻译成中文“它”(右边是“他”),验证工具不会警告你存在错误。 你的目标和责任是毫无错误地进行翻译。 阅读你翻译的内容是检查错误的好习惯。

使用自动检查排版工具

Depending on your language, the verification of the compliance to some typographic rules may be difficult to do without the help of a specialized tool. This is specially the case with the various types of spaces that are not visible. A tool (which is still in an early development stage) is available and it is described in the L10N/Typo Purification of po Files page.

创建翻译文档(书)

为了更容易地进行校对,通常在最终的上下文中看到翻译的消息。 请参考 如何在Zanata上的翻译文件构建翻译的文档

测试

事实上,/usr/share/locale/your_LOCALE/LC_MESSAGES/ 目录是系统组件和软件的大多数本地化文件所在地。 所以一般说来,如果你想测试软件或者系统组件的翻译,最简单的方法是:

  • 首先备份原始文件:
    sudo cp /usr/share/locale/your_LOCALE/LC_MESSAGES/example.mo /usr/share/locale/your_LOCALE/LC_MESSAGES/example.mo.old
  • 将新 mo 文件放到该目录里:
    sudo msgfmt -o new_example.po /usr/share/locale/your_LOCALE/LC_MESSAGES/new_example.mo
  • 运行要测试的软件或系统组件或命令。

(我们打算做一个新的演示。这里有一个旧演示。)

下面两小节将介绍两种更高级的测试方法。

使用固定链接 (permalinks)

使用 Zanata 翻译平台的一大好处是能够仅用几条命令从一个固定链接拉取翻译,并安装到系统里。

要获取固定链接:

  • 访问翻译项目
  • 选择目标版本,如果有若干版本的话
  • 选择语言
  • 点击导航栏里的 Documents (YOUR_LOCALE) 链接
  • 复制 actions 栏的固定链接 (.po)

有了固定链接后,你可以在你的系统上通过运行如下命令测试翻译:

提示
这个例子里我们 locale 选择 'ca',测试组件选择 anaconda。
su -c 'mv /usr/share/locale/ca/LC_MESSAGES/anaconda.mo /user/share/locale/ca/LC_MESSAGES/anaconda.mo.old; \
msgfmt <(curl -s https://fedora.zanata.org/rest/file/translation/anaconda/f23-branch/ca/po?docId=po%2Fanaconda &> /dev/stdout)\
 -o /usr/share/locale/ca/LC_MESSAGES/anaconda.mo'

使用固定链接和 fedpkg 构建 rpm

有时候不太容易 msgfmt po 文件。我们应该构建一个包含翻译的 rpm 包进行测试。下面是一个例子:

su -c ‘dnf install -y fedpkg fedora-packager rpmdevtools’
fedpkg clone -a -B sssd
cd sssd/f23
su -c 'dnf builddep -y sssd.spec'
fedpkg prep
export version=1.13.0
cp -rp sssd-$version sssd-${version}p
curl -s https://fedora.zanata.org/rest/file/translation/sssd/master/ca/po?docId=po%2Fsssd > sssd-${version}p/po/ca.po
curl -s https://fedora.zanata.org/rest/file/translation/sssd/master/ca/po?docId=src%2Fman%2Fpo%2Fsssd-docs > sssd-${version}p/src/man/po/ca.po
diff -urN sssd-$version sssd-${version}p > my.patch

编辑 sssd.spec 文件添加补丁(首先是文件顶部的 Patch999: my.patch;第二步是 %prep 小节紧随 %setup -q%patch999 -p1。如果文件里有 for p in %patches ; do 的话不需要第二步):

...
### Patches ###
Patch9999: my.patch
...

...
%prep
...
%setup -q
%patch9999 -p1
...

构建并安装打了补丁的 rpm:

fedpkg local
su -c 'dnf install --nogpgcheck */*.rpm'

常见问题 (FAQ)

如下是关于本地化项目的常见问题解答。

应该翻译哪个分支 (branch)?

  • 'master' 或开发中的 Fedora 版本对应的 'Fxx' 分支是优先翻译的分支。
  • 已发布的 Fedora 版本对应的 'Fxx' 分支最好不要翻译。很可能会浪费你的时间。因为开发者通常不会拉取翻译并重新打包已发布的版本(“不回头看”)。但是,有些维护者会支持本地化工作并自行拉取新翻译。如果有特定原因需要更新软件包(例如影响可操作性或者功能),那是值得报 bug 强迫维护者更新翻译的。
  • 'RHEL' 分支,可以忽视,因为很可能红帽翻译者会照顾的。不过这并不意味着不要翻译。如果你愿意翻译,你的贡献总是受欢迎的。

致谢

如下成员贡献了本文档(的英文版):

值得一提的是本文档的部分内容直接或间接源自旧的针对 Transifex 平台的 Fedora 本地化指南,所以我们这里也对旧版指南的作者表示感谢。