Kongdeyuan (talk | contribs) m (Update translations) |
Rjl931189261 (talk | contribs) m (→Fedora 本地化工作指南(新的): Zanata platform is EOL) |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
= Fedora 本地化工作指南(新的) = | = Fedora 本地化工作指南(新的) = | ||
{{admon/important|重要说明|Zanta 已经被弃用,此文档仅用于存档之用}} | |||
== 愿景 == | == 愿景 == | ||
这个页面,描述了如何加入L10N本地化团队。作为一个新的翻译者,应该如何在Zanta上翻译。 | 这个页面,描述了如何加入L10N本地化团队。作为一个新的翻译者,应该如何在Zanta上翻译。 | ||
Line 7: | Line 10: | ||
= 如何成为一个Fedora翻译者 = | = 如何成为一个Fedora翻译者 = | ||
L10n项目显然不仅仅是为了翻译。不过,翻译却不妨成为一个不错的门槛来迈入本地化团队,下面是使您成为翻译者的一些基本步骤: | L10n项目显然不仅仅是为了翻译。不过,翻译却不妨成为一个不错的门槛来迈入本地化团队,下面是使您成为翻译者的一些基本步骤: | ||
#[ | # [[#Create_a_Fedora_account| 创建一个FAS账户 ]] | ||
#[ | # [[#Subscribe_to_the_Mailing_Lists| 订阅并加入邮件列表]] | ||
#[ | # [[#Introduce_Yourself| 自我介绍]] (It's a good idea to do it on all mailing list you have subscribed) | ||
#[ | # [[#Login_to_Zanata_with_your_FAS_account| 使用你的FAS账户登录Zanta]] | ||
#[ | # [[#Find_your_language_team_and_join_in| 寻找适合于您的语言团队并加入]] | ||
你的自我介绍很重要。 它有机会提高你的操作权限。 你可能还想[https://fedoraproject.org/wiki/L10N/Guide#How-to_create_a_Bugzilla_account 创建一个Bugzilla帐户]来处理用户反映的错误。 | 你的自我介绍很重要。 它有机会提高你的操作权限。 你可能还想[https://fedoraproject.org/wiki/L10N/Guide#How-to_create_a_Bugzilla_account 创建一个Bugzilla帐户]来处理用户反映的错误。 | ||
{{Anchor|Create_a_Fedora_account}} | |||
== 创建一个FAS账户 == | == 创建一个FAS账户 == | ||
# 打开 https://admin.fedoraproject.org/accounts 并点击“New Account(新建账号)”链接。 | # 打开 https://admin.fedoraproject.org/accounts 并点击“New Account(新建账号)”链接。 | ||
Line 35: | Line 39: | ||
{{admon/tip|有关FAS的更多信息| 有关Fedora帐户系统的更多详细信息,请参阅 https://fedoraproject.org/wiki/Account_System 。}} | {{admon/tip|有关FAS的更多信息| 有关Fedora帐户系统的更多详细信息,请参阅 https://fedoraproject.org/wiki/Account_System 。}} | ||
{{Anchor|Subscribe_to_the_Mailing_Lists}} | |||
== 加入邮件列表 == | == 加入邮件列表 == | ||
=== L10n 邮件列表 === | === L10n 邮件列表 === | ||
Line 48: | Line 53: | ||
{{admon/important|邮件列表指南| 在发送消息到邮件列表之前,建议你阅读[https://fedoraproject.org/wiki/Mailing_list_guidelines 此指南]。}} | {{admon/important|邮件列表指南| 在发送消息到邮件列表之前,建议你阅读[https://fedoraproject.org/wiki/Mailing_list_guidelines 此指南]。}} | ||
{{Anchor|Introduce_Yourself}} | |||
== 介绍你自己 == | == 介绍你自己 == | ||
# 在 https://fedoraproject.org/wiki/User:Username 创建个人页面(可选). | # 在 https://fedoraproject.org/wiki/User:Username 创建个人页面(可选). | ||
Line 54: | Line 60: | ||
以上两个步骤对于Fedora贡献者相互了解和联系非常有用。 第二步还可以帮助你的语言管理员(协调员)认识你并批准你作为团队的翻译。 | 以上两个步骤对于Fedora贡献者相互了解和联系非常有用。 第二步还可以帮助你的语言管理员(协调员)认识你并批准你作为团队的翻译。 | ||
{{Anchor|Login_to_Zanata_with_your_FAS_account}} | |||
== 使用您的FAS账户登录Zanta == | == 使用您的FAS账户登录Zanta == | ||
* | * 打开 [https://fedora.zanata.org/ https://fedora.zanata.org/ ],然后单击页面右上角的蓝色“Log In(登录)”按钮。 | ||
[[File:zanata_login.png |600px]] | [[File:zanata_login.png |600px]] | ||
* 然后它将跳转到FedOAuth页面,你可以使用你在上一节中注册的FAS帐户和密码登录。 | * 然后它将跳转到FedOAuth页面,你可以使用你在上一节中注册的FAS帐户和密码登录。 | ||
Line 64: | Line 71: | ||
你应输入你的全名,用户名(FAS用户名)和你的电子邮件地址。 注意:请使用你的真实电子邮件地址,但不要使用你的Fedora项目别名(username@fedoraproject.org)。 完成后,单击“Save(保存)”按钮。 激活邮件将立即发送到你的邮件地址。 请在收件箱中找到邮件,然后打开邮件中显示的激活链接。 然后使用你的FAS用户名和密码登录。 下次登录时,你无需再次执行此步骤。 它只对新用户登录时是必要的。 | 你应输入你的全名,用户名(FAS用户名)和你的电子邮件地址。 注意:请使用你的真实电子邮件地址,但不要使用你的Fedora项目别名(username@fedoraproject.org)。 完成后,单击“Save(保存)”按钮。 激活邮件将立即发送到你的邮件地址。 请在收件箱中找到邮件,然后打开邮件中显示的激活链接。 然后使用你的FAS用户名和密码登录。 下次登录时,你无需再次执行此步骤。 它只对新用户登录时是必要的。 | ||
{{Anchor|Find_your_language_team_and_join_in}} | |||
== 寻找适合于你的语言团队并加入 == | == 寻找适合于你的语言团队并加入 == | ||
Line 74: | Line 83: | ||
[[File:Zanata_join.png | 600px]] | [[File:Zanata_join.png | 600px]] | ||
* 团队管理员(协调员)将收到有关你请求的电子邮件通知。 只要他/她批准你的请求,你将成为团队成员。 但是,管理员(协调员)可能不会批准你的每个角色请求。 换句话说,如果你要求成为翻译,审稿人和协调员,他/她可能只会批准你担任翻译角色。 | * 团队管理员(协调员)将收到有关你请求的电子邮件通知。 只要他/她批准你的请求,你将成为团队成员。 但是,管理员(协调员)可能不会批准你的每个角色请求。 换句话说,如果你要求成为翻译,审稿人和协调员,他/她可能只会批准你担任翻译角色。 | ||
= Translating = | = Translating = | ||
Line 120: | Line 130: | ||
[[File:Editor.png|800px]] | [[File:Editor.png|800px]] | ||
1. | 1. Search(搜索 ) | ||
直接在搜索框中输入相关名称或选择筛选来进行搜索。 例如,如果你只想显示自己修改的字符串,请选择“last-modified-by”并输入你的用户名。 | 直接在搜索框中输入相关名称或选择筛选来进行搜索。 例如,如果你只想显示自己修改的字符串,请选择“last-modified-by”并输入你的用户名。 | ||
Line 126: | Line 136: | ||
[[File:filter terms.png|600px]] | [[File:filter terms.png|600px]] | ||
2. | 2. String details(文字简介) | ||
允许你查看特定源文本的详细信息,包括注释。 | 允许你查看特定源文本的详细信息,包括注释。 | ||
3. | 3. Filtering(筛选) | ||
字符串可以按状态筛选:Incomplete, Complete and Invalid(未完成,完成和无效)(包含警告或错误)。 | 字符串可以按状态筛选:Incomplete, Complete and Invalid(未完成,完成和无效)(包含警告或错误)。 | ||
例如,要显示所有未翻译(未完成),草稿和无效的字符,请选中“Incomplete(未完成)”框。 | |||
仅显示特定类型的未完成符串,请选中相应的框,例如 | 仅显示特定类型的未完成符串,请选中相应的框,例如 Fuzzy(草稿)。 | ||
[[File:Incomplete2.png|600px]] | [[File:Incomplete2.png|600px]] | ||
4. | 4. Copy message from source language(从源语言复制消息) | ||
当源文本包含标签,数字或产品名称时应与需要翻译的语言保持一致,此功能非常有用。 | 当源文本包含标签,数字或产品名称时应与需要翻译的语言保持一致,此功能非常有用。 | ||
5. | 5. Profile icon(个人资料图标) | ||
单击此图标可注销或访问仪表盘。 | 单击此图标可注销或访问仪表盘。 | ||
Line 149: | Line 159: | ||
仪表盘的底部显示你的活动状态,即你最后翻译的文件的时间和位置。 | 仪表盘的底部显示你的活动状态,即你最后翻译的文件的时间和位置。 | ||
6. | 6. Document list(文档列表) | ||
单击返回此项目的文档列表 | 单击返回此项目的文档列表 | ||
7. | 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. | 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 & | 8. Project-wide Search & Replace(整个项目的搜索与替换) | ||
使用此选项可搜索并替换整个文件中的具体词或短句。 | |||
操作如下: | |||
在搜索框中输入一个词,设置搜索筛选“search target(搜索目标)”,并检查“Case sensitive(区分大小写)”的情况(如果适用)。 | |||
在第二个文本框中,输入你要使用的词语。 然后选中“Select all(全选)”或选择要应用此更改的文字,然后单击“Replace(替换)”更改。 | |||
9. Available Keyboard | 9. Available Keyboard Shortcuts(键盘快捷键) | ||
在文本编辑器页面中,单击此按钮可查看所有可用快捷键的列表。 | |||
10. | 10. Notification(通知) | ||
单击此按钮可查看最新通知,包括每个已修改文字的日期,行号,ID号。 | |||
11. Chat | 11. Chat room(群聊) | ||
使用此功能可与其他翻译人员进行交流 | |||
12. | 12. Options(设置) | ||
此功能允许你修改自定义修改默认选项。 | |||
例如,选中“Enter key saves immediately(立即输入密钥保存)”框以使用Enter键保存字符串。 | |||
[[File:Options.png|300px]] | [[File:Options.png|300px]] | ||
13. Validation | 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”选项查看比较。 | |||
[[File:Translation history.png|600px]] | [[File:Translation history.png|600px]] | ||
[[File:Translation history 2.png|600px]] | [[File:Translation history 2.png|600px]] | ||
[[File:Translation history 3.png|600px]] | [[File:Translation history 3.png|600px]] | ||
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. | 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. | 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. | 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|DNF]] 安装Fedora 22及更高版本或使用 [[yum|YUM]]安装,如果你使用旧版本运行以下命令: | |||
* | |||
<pre>sudo dnf install zanata-client | <pre>sudo dnf install zanata-client | ||
sudo yum install zanata-client</pre> | sudo yum install zanata-client</pre> | ||
* | * 或使用Ivy安装: | ||
点击“Zanata Ivy Client on github(github上的Zanata Ivy客户端)” 链接 | |||
根据你使用的系统(Fedora,RHEL或其他系统)运行相应的命令 | |||
安装Ivy后,单击zanata-cli文件。 | |||
[[File:zanata.cli.png | 600px]] | [[File:zanata.cli.png | 600px]] | ||
将可执行文件的内容复制并粘贴到文本编辑器中,并另存为“zanata-cli”。 | |||
2. 配置客户端 | |||
配置客户端需要两个操作: | |||
2.1 配置用户: | |||
首先在 ~/.config/ 中使用首选文本编辑器创建或打开“zanata.ini”。 | |||
2个步骤: | |||
2.1.1. 创建API密钥 | |||
在Zanata帐户中,转到信息中心,然后点击“Settings(设置)”。 | |||
[[File:Dashboard-settings.png | 600px]] | [[File:Dashboard-settings.png | 600px]] | ||
然后选择客户端 | |||
[[File:Client.png | 600px]] | [[File:Client.png | 600px]] | ||
如果你没有,请生成API密钥。 | |||
2.1.2. 将标记为“Configuration [zanata.ini]”的文本框的内容复制到先前创建的zanata.ini文件中并保存该文件。 | |||
2.1.2. | |||
2.2 配置项目: | |||
将项目版本配置添加到项目目录,navigate to your translation project in Zanata,,例如: | |||
Fedora安装指南 - f20 - 选择你的语言环境 - 在右上角,单击箭头并选择“Download config file(下载配置文件)” | |||
[[File:Download config file.png | 600px]] | [[File:Download config file.png | 600px]] | ||
将zanata.xml文件保存在首选位置。 | |||
3. 将文件下载到你的计算机 | |||
在命令行中运行以下命令前,make sure you are in the directory containing the zanata.xml file. | |||
运行: | |||
<pre>zanata-cli pull -s src -t trans -l <language code> --pull-type both</pre> | <pre>zanata-cli pull -s src -t trans -l <language code> --pull-type both</pre> | ||
源文件和已翻译文件将创建到目录中的src(源)和trans(已翻译)文件中。 | |||
你现在可以使用首选编辑器打开文件并翻译项目。 | |||
4. | 4. 将文件上传到Zanata | ||
将已翻译的文件推送回Zanata,请运行以下命令: | |||
<pre>zanata-cli push -s src -t trans -l <language code> --push-type trans</pre> | <pre>zanata-cli push -s src -t trans -l <language code> --push-type trans</pre> | ||
你的翻译现已被推送Zanata,并且TM已根据你的更改进行了更新。 | |||
'''方法二:通过用户界面 | |||
''' | |||
''' | ''' | ||
登陆 https://translate.zanata.org/ | |||
搜索你的项目,例如 Fedora安装指南。 | |||
选择你的语言 | |||
要下载整个项目,请单击页面右上角的箭头(“sort(排序)”旁边),然后单击“Download All (zip)(全部下载)”。 | |||
[[File:Projet entier.png | 600px]] | [[File:Projet entier.png | 600px]] | ||
仅下载一个文件,请单击文件名左侧的箭头,然后选择“Download Translated [.po].(下载已翻译的)”。 | |||
[[File:Download translated.png | 600px]] | [[File:Download translated.png | 600px]] | ||
将文件保存到首选位置。 | |||
翻译文件。 | |||
完成后,将文件上传到Zanata,选择“Upload translation(上传翻译)”。 | |||
注意:虽然可以下载整个项目,但只能通过文件,通过单击文件名左侧的箭头,然后选择“Upload translation(上传翻译)”来上传。 | |||
= | = 校对 = | ||
相对翻译人员来说很难在翻译的文字内找到拼写错误或轻微错误。 校对非常重要。 一般来说,校对仅涉及翻译的文字内容。 然而,PO文件通过L10n和i18n工作流程发挥了重要作用。 因此,翻译人员应在翻译过程中保持PO文件的有效性,以便其他翻译和维护人员可以正确地使用它们。 | |||
== | == PO文件校对 == | ||
Zanata提供的在线翻译编辑器具有检查每个字符串的校对功能。 如果你更喜欢在线翻译,此功能对你有所帮助。 | |||
校对选项位于在线编辑器的右侧。 它提供了几种验证方法。 | |||
[[File:Zanata_validation_options.png |600px]] | [[File:Zanata_validation_options.png |600px]] | ||
在此示例中,结束标记<pre></command></pre>被写为<pre></comd></pre>,编辑器会发出警告,表示可能存在错误标签(</command>)。 当你使用在线翻译期间显示这样的警告时,最好再仔细检查你的翻译。 | |||
[[File:Zanata_proofreading_error.png |600px]] | [[File:Zanata_proofreading_error.png |600px]] | ||
如果你希望离线翻译,应始终在提交前检查文件的有效性。 | |||
执行此操作的命令是: | |||
<pre>msgfmt -cvo /dev/null po_file_to_check.po</pre> | <pre>msgfmt -cvo /dev/null po_file_to_check.po</pre> | ||
确保没有错误信息。 | |||
== 翻译校对 == | |||
验证工具仅用于检查与编码语言相关的东西,变量或某些内容的有效性。 你不能指望它检查你真正翻译的文字内容。 | |||
例如,我错误地将英文单词“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|L10N/Typo Purification of po Files]] page. | |||
===创建翻译文档(书) === | |||
为了更容易地进行校对,通常在最终的上下文中看到翻译的消息。 请参考[[L10N/how_to_build_a_translated_book_from_translated_files_on_Zanata| 如何在Zanata上的翻译文件构建翻译的文档]]。 | |||
= | = 测试 = | ||
事实上,<code>/usr/share/locale/your_LOCALE/LC_MESSAGES/</code> 目录是系统组件和软件的大多数本地化文件所在地。 | |||
所以一般说来,如果你想测试软件或者系统组件的翻译,最简单的方法是: | |||
* | * 首先备份原始文件:<pre>sudo cp /usr/share/locale/your_LOCALE/LC_MESSAGES/example.mo /usr/share/locale/your_LOCALE/LC_MESSAGES/example.mo.old</pre> | ||
* | * 将新 mo 文件放到该目录里:<pre>sudo msgfmt -o new_example.po /usr/share/locale/your_LOCALE/LC_MESSAGES/new_example.mo</pre> | ||
* | * 运行要测试的软件或系统组件或命令。 | ||
(我们打算做一个新的演示。[https://www.youtube.com/watch?v=Hi-7QZrUR3k 这里]有一个旧演示。) | |||
下面两小节将介绍两种更高级的测试方法。 | |||
== | == 使用固定链接 (permalinks) == | ||
使用 Zanata 翻译平台的一大好处是能够仅用几条命令从一个固定链接拉取翻译,并安装到系统里。 | |||
* | 要获取固定链接: | ||
* | * 访问翻译项目 | ||
* | * 选择目标版本,如果有若干版本的话 | ||
* | * 选择语言 | ||
* | * 点击导航栏里的 Documents (YOUR_LOCALE) 链接 | ||
* 复制 actions 栏的固定链接 (.po) | |||
{{admon/note| | 有了固定链接后,你可以在你的系统上通过运行如下命令测试翻译: | ||
{{admon/note| 提示 | 这个例子里我们 locale 选择 'ca',测试组件选择 anaconda。}} | |||
<pre>su -c 'mv /usr/share/locale/ca/LC_MESSAGES/anaconda.mo /user/share/locale/ca/LC_MESSAGES/anaconda.mo.old; \ | <pre>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)\ | 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'</pre> | -o /usr/share/locale/ca/LC_MESSAGES/anaconda.mo'</pre> | ||
== | == 使用固定链接和 fedpkg 构建 rpm == | ||
有时候不太容易 msgfmt po 文件。我们应该构建一个包含翻译的 rpm 包进行测试。下面是一个例子: | |||
<pre>su -c ‘dnf install -y fedpkg fedora-packager rpmdevtools’ | <pre>su -c ‘dnf install -y fedpkg fedora-packager rpmdevtools’ | ||
Line 447: | Line 429: | ||
diff -urN sssd-$version sssd-${version}p > my.patch</pre> | diff -urN sssd-$version sssd-${version}p > my.patch</pre> | ||
编辑 sssd.spec 文件添加补丁(首先是文件顶部的 '''Patch999: my.patch''';第二步是 %prep 小节紧随 '''%setup -q''' 的 '''%patch999 -p1'''。如果文件里有 '''for p in %patches ; do''' 的话不需要第二步): | |||
<pre>... | <pre>... | ||
### Patches ### | ### Patches ### | ||
Line 461: | Line 443: | ||
</pre> | </pre> | ||
构建并安装打了补丁的 rpm: | |||
<pre>fedpkg local | <pre>fedpkg local | ||
su -c 'dnf install --nogpgcheck */*.rpm'</pre> | su -c 'dnf install --nogpgcheck */*.rpm'</pre> | ||
= | = 常见问题 (FAQ) = | ||
如下是关于本地化项目的常见问题解答。 | |||
===应该翻译哪个分支 (branch)?=== | |||
* 'master' 或开发中的 Fedora 版本对应的 'Fxx' 分支是优先翻译的分支。 | |||
* 已发布的 Fedora 版本对应的 'Fxx' 分支最好不要翻译。很可能会浪费你的时间。因为开发者通常不会拉取翻译并重新打包已发布的版本(“不回头看”)。但是,有些维护者会支持本地化工作并自行拉取新翻译。如果有特定原因需要更新软件包(例如影响可操作性或者功能),那是值得报 bug 强迫维护者更新翻译的。 | |||
* 'RHEL' 分支,可以忽视,因为很可能红帽翻译者会照顾的。不过这并不意味着不要翻译。如果你愿意翻译,你的贡献总是受欢迎的。 | |||
= 致谢 = | |||
如下成员贡献了本文档(的英文版): | |||
* Julie Carbone | * Julie Carbone | ||
* [[User:Rbuj| Robert Antoni Buj ]] | * [[User:Rbuj| Robert Antoni Buj ]] | ||
* [[User:tiansworld| Tian Shixiong]] | * [[User:tiansworld| Tian Shixiong]] | ||
* Noriko Mizumoto (添加了 FAQ 一节) | |||
值得一提的是本文档的部分内容直接或间接源自[[L10N/Guide|旧的针对 Transifex 平台的 Fedora 本地化指南]],所以我们这里也对旧版指南的[[L10N/Guide#Guide_information|作者]]表示感谢。 | |||
[[Category:Localization]] | [[Category:Localization]] |
Latest revision as of 12:59, 12 February 2021
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 本地化指南,所以我们这里也对旧版指南的作者表示感谢。