这篇的主要内容比较实用主义……后面很多也适合其他项目。
1、工具
lokalize,svn。为什么不是poedit或者gtranslator,或者linguist,这是有原因的。lokalize的项目才用的是和KDE一样的工作流,所以更好管理。其次lokalize的翻译存储很强大,很适合这种大型项目的翻译。svn是因为KDE的翻译还是svn管理。
2、下载翻译
# 下载翻译的根目录 # 如果你有账号请自行更改 svn 地址 # kf5 的目录是 l10n-kf5,kde4 的是 l10n-kde4 svn co svn://anonsvn.kde.org/home/kde/ --depth empty cd kde svn up trunk branches --depth empty cd branches/ svn up stable --depth empty cd stable/ svn up l10n-kf5 --depth empty cd l10n-kf5/ svn up zh_CN templates cd ../../../trunk svn up l10n-kf5 --depth empty cd l10n-kf5/ svn up zh_CN templates
无论你翻译哪个,下载全部的翻译都是很必要的,因为能够填充本地的翻译存储的内容。此步需要下载上百MB数据,准备个好网络,然后喝口茶吧。
3、lokalize的配置
设置-> 配置 lokalize,填写个人信息。
工程->创建新工程
目录选择 zh_CN 的根目录,检查高级标签下模板文件的目录是否指向了templates,填写正确其他信息。中文翻译的邮件列表是 kde-china@kde.org
4、工程概述
工程->工程概述,或者 F4 查看,之前步骤正确,应该只显示了 messages 和 docmessages 两个目录。
5、翻译存储
工具->翻译存储,第一次使用会有个 KDE 的任务进度提示。等他完成。完成后查看下”管理翻译存储“里面的项目是不是 en_US 到 zh_CN 的对应。如果不是删除手动创建一个……然后选择重新扫描工程,扫描完 KDE 的总量应该约有 20 万的记录。也请检查数量是否正确。
6、选择翻译文件
然后你就可以去工程概述选文件翻译了。如果这个文件从未有个中文翻译,双击会创建这个文件,记得保存后手动修改:
“Plural-Forms: nplurals=2; plural=n != 1;\n”
改成 “Plural-Forms: nplurals=1; plural=0;\n”
修改是中文的复数设置。
7、翻译
以下内容比较零散,作为指导和参考。
中英混合:中英混合时在英文两侧加入空格。
标点:常见使用全角的标点都使用全角,括号使用半角,并在括号周围留空格,例外包括括号后紧跟其他标点,或者是为了快捷键字符的括号。引号无论内容是单引号还是双引号,优先使用双引号,嵌套时才使用单引号。
省略号使用三个点。
注意句尾的句号,如果有不要忘记写句号,如果没有不要擅自加上。
例:
Size (mb)
对应
大小 (mb)
快捷键
&Ok
对应
确定(&O)
上面两个例子的区别是后者无空格。
&表示的是经常在界面中的下划线快捷键,Alt + 字母可以直接激活。这个表示法是 Qt 的。其他Toolkit不通用。无论原文快捷键对应的字母是大写或者小写,翻译后一律使用大写。
快捷键项目之后带省略号一般表示为会打开新窗口,翻译时
&Open
对应
打开(&O)...
省略号放在后面。
参数:QString 在 format 时使用 %1 %2 等等作为占位符,翻译时请注意保持,以及按对应语言调整顺序。参数一般也视作和中英混合一样需要加空格。
KRunner:KRunner的翻译有两点需要注意,krunner的功能是基于搜索词的,搜索词一般都标注了本地化,但是针对中文这种情况,不要翻译。例如 kill 作为杀进程的搜索词,如果翻译成杀,那么必须在 krunner 里面使用 杀 才能触发这个功能,是很不方便的。外加 krunner 有帮助可查,所以本地化搜索词只会让 krunner 使用上添加不便。
其次,krunner 的搜索句的占位符是 :q: ,需要注意保留。
X-KDE-Keyword 和 Keywords:KDE 的关键词,在krunner 这种搜索程序时使用,采用半角逗号 (老格式)或者分号分割 (新格式),采用哪种参照原文即可。翻译时建议保留全部原文,然后附加上翻译内容。保证使用英文依然可以搜索到内容。其次,遇到一词多个翻译,可以把认为相关的翻译都附加上。
keyboard,num pad keyboard
可以对应
keyboard,num pad keyboard,键盘,小键盘,数字键盘
表达方式:同一个程序内,经常会有类似说法,但是只换了一个动词和名词的句子,注意表达方式的一致。不同程序也需要考虑这个情况。
上下文:对于短词,直译的选择可能有很多,因此需要考虑上下文。例如 Start,单独翻译成开始,但是在 Start,Pause,Resume都作为需要被的词时也许可以采用,启动,暂停,恢复这样的翻译。
同样拿不准的应当到源代码或者程序中参考当时的语境。
-er的名词:英语喜欢把一个动词名词化,类似情况可以考虑翻译成 XXXX 器,例如 cleaner 翻译成清理器
没有合适的对应名词:例如 ksecrets 里面的密码容器这个概念,在 #kde-cn 上讨论后决定翻译成密匣。拿不准的翻译总可以和其他人讨论,也许有时候还可以发明个比较中国风的词出来。
you的翻译:需要翻译 you 时翻译成您,但要注意有时候这类句子可以省略主语。中文的说法一般都可以更加简洁。例如:
Do you want to save?
对应
是否保存?
并不一定非要把you翻译掉。
褒义和贬义:同一个词的准确翻译在不同语言里面的褒贬可能不同。例如 fancy,选择翻译成花俏可能就更偏贬义(无聊的附注,尤其是一群人都喜欢用花俏来喷KDE的场合……花俏这词就更糟了……),考虑对应的语境,可以选择”有趣“,”漂亮“这一类的词。例如 legacy,经常用于形容老硬件,或者老设备,但形容对方的电脑老可能会让人感觉不愉快,这个词例如可以翻译成”传统“。
通顺:翻译出来是给人看的,所以保持语句的通顺很重要,多读两遍不会有什么坏处。
中文的习惯:中文和英文的语序在习惯上有很大差别,英语很多内容都后置了,对应的中文可能采用前置更好。以及英语喜欢用被动,中文喜欢用主动,原文是被动不代表你也要用被动。
例如:
File is being saved.
对应
正在保存文件。
时态:界面中很多地方都使用了现在分词,用来表示正在进行的动作,例子参见上一个。还有过去时,翻译时需要注意是否加上”了“,”已经“表达时之前发生的事情。
8、申请自己的账号
最近 KDE 申请账号似乎变严格了,所以在申请之前还请先做出足够的贡献。(如何定义实在拿不清楚……),然后找其他人来 back up 你的申请。在此之前如果想参与将翻译好的 po 文件发到邮件列表即可。上面的svn地址是不需要账号的。
9、什么时候翻译
翻译和发布周期之间的关系是很重要的,如果你想要你的翻译在某个版本之前被包括,那可要注意什么时候发布正式版,正式版之前的几天会tag,所以尽量早点完成是有好处的。其次如果说为了避免string的频繁改动,在String Freeze之后翻译是可行的(事实上KDE即使不String freeze你也不会做太多无用功),但是除了 KDE SC之外,其他的软件,例如 Amarok,KDevelop 可不一定都有这个阶段或者你能找到这个阶段……发现一个软件 Beta 了就抓紧开始吧。(当然也有完全不 Beta 的……)
订阅 Planet KDE 来注意新闻是个不错的选择。
感谢 Ni Hui 对我曾经的指导,还有 Amesists 今天听我白活了半天,让我有机会整理下这些内容。
Update:
(日期不详……) 更新标点,快捷键和中英混合。
(2015/9/15) 更新新的 Keywords 部分。
6 FEEDBACKS