Fedora 本地化工作指南(新的)
愿景
这个页面,描述了如何加入L10N本地化团队。作为一个新的翻译者,应该如何在Zanta上翻译。
如何成为一个Fedora翻译者
L10n项目显然不仅仅是为了翻译。不过,翻译却不妨成为一个不错的门槛来迈入本地化团队,下面是使您成为翻译者的一些基本步骤:
- 创建一个FAS账户
- 订阅并加入邮件列表
- 自我介绍 (It's a good idea to do it on all mailing list you have subscribed)
- 使用你的FAS账户登录Zanta
- 寻找适合于您的语言团队并加入
你的自我介绍很重要。 它有机会提高你的操作权限。 你可能还想创建一个Bugzilla帐户来处理用户反映的错误。
创建一个FAS账户
- 打开 https://admin.fedoraproject.org/accounts 并点击“New Account(新建账号)”链接。
- 填写所有项,然后单击“Sign up(注册)”。 密码将通过电子邮件发送给你,你可以稍后更改密码。
- 现在再次访问 https://admin.fedoraproject.org/accounts 并用你的密码登录。
- 帐户系统会提醒你CLA未完成。
签署CLA
要开始翻译前,你必须完成贡献者许可协议或CLA。
- 访问 https://admin.fedoraproject.org/accounts 并用你在上一过程中获得的用户名和密码登录你的帐户。
- 在欢迎页面中,单击完成CLA或转到https://admin.fedoraproject.org/accounts/user/edit。
- 如果你尚未提供电话号码和地址的信息,将出现编辑帐户(user_name)页面,你需要填写每一项。否则将显示"Fedora Contributor License Agreement"页面。仔细阅读协议,如果你愿意,请点击我同意。
- 现在点击“保存”! 在页面底部保存你的信息。
- 出现用户视图页面,CLA项:显示为“CLA 已验证”。
加入邮件列表
L10n 邮件列表
- 访问trans邮件列表订阅页面并订阅它。
- 在管理员批准之前,你将无法向列表发送邮件。 你将收到一封确认电子邮件,其中包含确认订阅的链接。 单击链接以确认。
你的team(团队)邮件列表
- 访问 https://fedoraproject.org/wiki/L10N/Teams 并找到你的语言团队。
- 订阅你的语言的邮件列表
介绍你自己
- 在 https://fedoraproject.org/wiki/User:Username 创建个人页面(可选).
- 对你订阅的邮件列表进行简短的自我介绍。 如果你不知道要介绍什么,这里有一个模板:https://fedoraproject.org/wiki/L10N_Self_introduction。
以上两个步骤对于Fedora贡献者相互了解和联系非常有用。 第二步还可以帮助你的语言管理员(协调员)认识你并批准你作为团队的翻译。
使用您的FAS账户登录Zanta
- 打开 https://fedora.zanata.org/ ,然后单击页面右上角的蓝色“Log In(登录)”按钮。
- 然后它将跳转到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
在 “Cli” - 选择 “Installing the client ”
你可以通过两种方式安装客户端:
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)
有了固定链接后,你可以在你的系统上通过运行如下命令测试翻译:
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' 分支,可以忽视,因为很可能红帽翻译者会照顾的。不过这并不意味着不要翻译。如果你愿意翻译,你的贡献总是受欢迎的。
致谢
如下成员贡献了本文档(的英文版):
- Julie Carbone
- Robert Antoni Buj
- Tian Shixiong
- Noriko Mizumoto (添加了 FAQ 一节)
值得一提的是本文档的部分内容直接或间接源自旧的针对 Transifex 平台的 Fedora 本地化指南,所以我们这里也对旧版指南的作者表示感谢。