本页面要介绍什么
- 本页面介绍本地化规范
- 本页面分享本地化经验
谁应该阅读
- 有兴趣加入本地化的志愿者
- 有兴趣测试本地化成果的志愿者
- Fedora 中文本地化项目贡献人员
- 其他对本地化工作感兴趣的朋友
本地化规范
(标点)符号规范(软件及文档)
句号(.)
当“.”用于表示版本号,时间、日期等非标点符号用途时,翻译中应继续使用“.”;当“.”做标点符号使用时,翻译中改为中文句号“。”
原文 | 译文 | 注释 |
Fedora 19 features the 3.9.0 kernel. | Fedora 19 采用 3.9.0 内核。 | 3.9.0 是版本号,因此“.”不能改为“。”。句末尾“.”做为句号使用,翻译中使用中文句号“。”。 |
You may also find assistance on the #fedora channel on the IRC net irc.freenode.net. | 同时您也可以通过 IRC 网络 irc.freenode.net 的 #fedora 频道获得帮助 | 其中的“.”用于网址。翻译中应继续使用“.”。 |
逗号/顿号
括号(及译文中的扩展使用)
- 文档翻译:文档翻译中,如果译文中括号内是半角字符或数字,则使用英文半角括号,并在括号与两侧文字间保留一个空格;如果译文括号内包含双字节字符(比如,汉字),则使用中文全角括号,括号与外面文字之间不留空格。例如:
原文 译文 注释 ...with the <package>reSIProcate</package> (repro) SIP proxy and <package>reTurnServer</package>... ...包括 <package>reSIProcate</package> (repro) SIP 代理和 <package>reTurnServer</package>... 由于括号中内容为英文内容 "repro",因此括号使用英文半角括号并且括号外与其它字符间保留一个空格 and run either from your desktop's application menu (under Programming) 既可以从桌面应用程序菜单运行(位于编程菜单) 译文中括号内为汉字,因此括号采用中文全角括号 ' ' ' - 软件翻译/字符界面翻译:软件界面和字符界面中,译文均使用英文半角括号。如果括号外为英文或数字等半角字符,则与括号间要保留一个空格。例如:
原文 译文 注释 ' ' ' ' ' ' ' ' ' - 扩展使用:有时原文中会出现一些不常见的词语、缩写或术语等等,这些内容可能没有通用性,可能也没有统一、标准的翻译,或者干脆是新出现的。在翻译这类内容时,如果直接将这些缩写或术语翻译过来,可能会让读者/用户对译文迷惑不解,甚至是误解。这样就与本地化的初衷相悖。因此为了解决这个问题,可以在译文后使用括号引用原始内容。比如:
原文 译文 注释(示例不是特别贴切,可替换) ...the graphical programming environment from the <literal>Lifelong Kindergarten Group</literal> ...终身幼稚园团队 (Lifelong Kindergarten Group) 创造的图形编程环境。 ' Rich Language for rule configuration 富语言 (Rich Language) 用于防火墙规则配置 ' 在软件翻译中以这种方式使用括号时,要考虑排版,界面等因素。以防止译文超出软件界面造成显示不完整的情况发生。
省略号
破折号
冒号
与“.”用法类似,做为标点符号使用时,冒号应在翻译中改为中文冒号;做分隔符用于时间或其它用途时,翻译中应继续使用英文“:”。
原文 | 译文 | 注释(示例不是特别贴切,可替换) |
For news and details about the Cinnamon project, visit http://cinnamon.linuxmint.com | 有关 Cinnamon 的新闻和细节可访问 http://cinnamon.linuxmint.com | 这里的“:”非标点符号,因此翻译中不做改变。 |
' | ' | ' |
更多本地化规范可参考:
- http://people.ubuntu.com/~wzssyqa/gnome-translation-details.pdf
- http://people.ubuntu.com/~happyaron/l10n/
本地化注意事项
您需要翻译什么?
- PO 文件简介(transifex.net 在线进行翻译时可跳过本部分)
Fedora 本地化项目主要包括 Fedora 操作系统本地化、Fedora 网站本地化、Fedora 文档本地化以及 Fedora 社区在线内容(维基页面)本地化。 前三者主要采用 PO 文件翻译实现,而社区在线内容则是直接进行翻译。 以下以 PO 文件为例,解释需要翻译的内容。
# Translations template for PROJECT. # Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: # translator <translator@fedoraproject.org>, 2008, 2009, 2010, 2011, 2012. msgid "" msgstr "" "Project-Id-Version: Fedora Account System\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/fas/report/3\n" "POT-Creation-Date: 2012-01-30 10:23-0800\n" "PO-Revision-Date: 2012-02-16 21:11+0800\n" "Last-Translator: translator <translator@fedoraproject.org>\n" "Language-Team: Chinese (China) (http://www.transifex.net/projects/p/fedora/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0\n"
以上是一个 PO 文件的开始部分。“#”开头的部分是注释部分,包括翻译文件的版权信息,翻译人员信息等等。接下来以双引号开始的内容,则是 PO 文件的格式、修改历史等等内容。对于翻译人员来说,这部分并不是要翻译的部分。在您使用 Poedit 等翻译软件进行 PO 文件翻译时,上述内容并不会出现。 但是,这并不代表以上内容不重要。 一个完整、准确、清晰的 PO 文件注释,就像是 PO 文件的摘要一样。可以让其它翻译人员清楚的了解 PO 文件的概况,以及已有的翻译人员信息。在发现 PO 文件翻译问题时,可通过注释里的联系方式联系到翻译人员。
#: fas/auth.py:360 #, python-format msgid "%s membership required before application to this group is allowed" msgstr "在申请加入此组之前您要成为 %s 成员" #: fas/configs.py:126 #, python-format msgid "You cannot look at configs for %s" msgstr "您无法查看 %s 的配置" #: fas/configs.py:167 #, python-format msgid "You cannot edit configs for %s" msgstr "您不能编辑 %s 的配置" #: fas/configs.py:191 #, python-format msgid "Error saving the config to the database: %s" msgstr "向数据库保存配置时出错:%s"
以上是 PO 文件的“正文”部分,也就是需要翻译人员发力的地方。其中 msgid 一行中引号内的内容为原始未翻译语句,msgstr 一行中引号内的内容是翻译的内容。做为翻译人员,msgid 行的内容是不建议您去直接更改的。如果您发现该行内存在问题,可向维护/开发人员联系,或提交 bug。请注意:对于使用 Poedit 或在线翻译 (如 transifex.net) 的用户,并不会看到 msgid 和 msgstr 以及双引号,它们会直接显示原文或翻译内容。
The <package>Window Switcher</package> now has six possible layouts. You can choose between layouts in the <package>System Settings</package> application. 翻译为: <package>Window Switcher</package> 目前有六种布局。您可在 <package>系统设置</package> 中切换布局。
上面内容摘自 Fedora 17 发行注记的 Desktop PO 文件,原文中带有 <package> 标记,这类标记主要用于表现所翻译内容的样式、格式等等,本身并不需要翻译,而其中的内容仍需要根据具体情况进行翻译。比如:
<filename>/run/media/$USER/</filename> 译为 <filename>/run/media/$USER/</filename> ##文件名或目录保留原文 <primary>Dolphin</primary> 译为 <primary>Dolphin</primary> ##软件包名称保留原文 <primary>Reporting</primary> <secondary>Bug and Feature Request</secondary> 译为 <primary>报告</primary> <secondary>Bug 与特性请求</secondary>
怎样检验您的翻译是否具有价值?
这里的价值当然不是指翻译到底有多少经济利益:D 这个价值,简单地说,就是指您的翻译对最终用户有没有用处,有多大用处。 我们还是通过举例来说明。
您翻译的语句是否准确、简洁、到位?
准确
准确是翻译的一个基本点。不准确的翻译可能会让读者感到莫名其妙。(例如 wget 1.12 中将 eta 翻译为“英国中部时间”,实为“估时”)
容易在准确性上出问题的情况往往是不清楚上下文的多义词。拿到的 PO 文件中有些原文只是单词或者短语,难以琢磨具体含义。有时候开发者会给翻译人员留下一些注记,提示词句的语境。这些注记会出现在词条上方的注释中。此时一定要好好利用这些解释说明,弄清具体含义。
然而不是所有的都有额外的注释。对于缺少注释而拿不准的条目,最好从版本库或者源码包中找到源代码,阅读代码中的上下文。PO 文件中显示了词条对应的源代码文件名和行数,对此很有帮助。
简洁
一般说来,常用的首字母缩写词在第一次出现时尽量给出英文全称和中文翻译,之后则可以直接使用首字母缩写词。
翻译时可以考虑使用简洁明了的成语。
到位
有时翻译原文中会有多个程序中变量的占位符(如%s
),而翻译时不调整其顺序无法将意思表述到位。对于这个问题,我们需要对不同编程语言得到的 PO 文件区别对待。对于 C/C++ 程序源码中提取的词条,可以使用类似 %1$s
的带位置标志的占位符。对于 Python 程序,则需要联系开发者,请求给出类似 %(word)s
的带含义标志的占位符。
翻译的一致性
开源项目的翻译往往由多个志愿者参与完成。每个人可能有自己的习惯,所以翻译的一致性较难保证。对此我们建议利用以下资源或途径减少不一致的出现:
- 已有译文。请大家翻译前浏览下已有的翻译内容,一来了解翻译风格习惯,二来可以帮助校对。
- 术语表。本地化贡献人员整理了一份术语表(维基版本,git仓库中最新版),可供翻译时参考。也欢迎大家丰富、更新这一术语表。另外还有一个 GNOME, KDE 术语的查询界面,可供参考。
- 网络搜索结果以及词典条目。可以考虑借助网络搜索了解常用翻译,借助词典明晰词义。
- 邮件列表讨论。对于拿捏不准的词句和段落,可以发邮件到 trans-zh_cn 列表,与全体本地化贡献人员讨论。
翻译要避免什么
- 错别字
错别字也许是翻译中最容易出现也是最不容易找到的问题之一,但却是最让人恼火的错误之一。举例说明:
Fedora 由 红帽赞助,石阶上最受信赖的开源技术提供商。
很明显,石阶应该是”世界“才对。
- 对时态不做僵硬转换
- 通常不翻译不定冠词
英文中常出现 a、an 等词。如果做不定冠词的话,多数情况是不翻译的。也就是说我们不能把它翻译成一个什么什么。举例说明:
...if you have a fast Internet connection available...
如果翻译做:
如果您有一个高速的网络连接……
,没什么问题。但是如果翻译做
如果您有高速网络连接……
会更好些。
要逐字翻译吗?
不一定。 (加入实例)