yetist 发表于 2006-8-27 03:25:01

再次发起GTK2 API 参考手册翻译计划

想再次发起翻译GTK+ Reference Manual文档计划,不知有没人响应?

历史:

早在2002年,中国Linux论坛的孔晖(时任linux论坛RAD版版主)发起了一个计划:翻译GTK2 API参考手册(http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=kylix&Number=297755&page=1&view=collapsed&sb=5),并且很快得到一群热爱GNOME和GTK的中国年轻人的支持。于是在共创联盟建立了CFFD项目(http://cosoft.org.cn/projects/cffd/)。项目开始之初,他们发现需要一个功能齐备的字典,来协调多人翻译,于是这个项目就成为GTK2 API参考手册翻译计划的先期项目:首先要做一个 GTK 词库,包含 GTK2 中所有术语。
这个项目从2002年7月初启动,8月16日发布了第一版本,然后在半个多月的时间里连续发布了两个版本(cffd0.02,cffd0.03)。此项目最终完成了GTK+ 2.0 Tutorial的翻译(http://www.mjhy.cn/gtk/book1.html),不过遗憾的是,这个项目在2002年12月停止了。计划中其它部分的翻译没有再进行下去。

准备:

一、确定字典及词库
星际译王如何?用哪个字典?不过它不能对词库进行编辑

二、为了以后方便维护和转换成其它格式,只翻译docbook形式的文档(sgml/xml)
这个已经取出来了:http://www.osprg.org/uploads/yetist/gtk-doc-reference.tar.gz
解压,运行以下命令就可以在当前目录生成html格式文件:
wget http://www.osprg.org/uploads/yetist/gtk-doc-reference.tar.gz
tar -jxvf gtk-doc-reference.tar.gz
cd gtk-doc-reference/gtk-cn/html/
gtkdoc-mkhtml gtk ../gtk-docs.sgml
firefox index.html

三、为了多人共同翻译,采用wiki的形式进行合作。
文档内容已经添加了部分:
http://www.gtk.org.cn/modules/dokuwiki/doku.php?id=gtk_reference_manual

对于这样一个工程来说,前期的准备工作很重要,对此我并没有多少经验,只是有想法而已,还望高人支招。

lvjinhua 发表于 2006-8-28 01:42:42

下边的链接为什么不能访问!
http://www.gtk.org.cn/modules/dokuwiki/doku.php?id=gtk_reference_manual

lvjinhua 发表于 2006-8-28 01:50:31

非常愿意参加!明天再说

sagaeon 发表于 2006-8-28 13:11:52

支持。 :-D:-D

yetist 发表于 2006-8-28 13:57:58

写了翻译文档的同步程序

首先感谢版主将本贴置顶。

这两天服务器有点问题,今天我们网管才弄好,辛苦他了。

昨天写了翻译文档的同步程序,今天调试了一下,已经可以运行。

这个程序可以自动分析网站wiki中的最新翻译结果,然后编译成html文件并上传至服务器,方便大家查看,同时能保护大家的激情。现在打算每天同步一次,以后同步周期可以适当放长一些。

对应的同步地址如下:

gdk:http://osprg.org/uploads/doc/gtk/gdk-cn/

gdk-pixbuf:http://osprg.org/uploads/doc/gtk/gdk-pixbuf-cn/

gtk:http://osprg.org/uploads/doc/gtk/gtk-cn/

lvjinhua 发表于 2006-8-29 00:11:24

得赶紧出统一的字典啊!

yetist 发表于 2006-9-1 23:09:43

CFFD自带的两个字典基本没法用。
试了一下星际译王的计算机字典stardict-kdic-computer-gb,常见的词条都能查到,只是有些翻译我感觉有点不太习惯,大家看看以这个字典为准怎么样?

KDE 发表于 2006-10-8 05:43:10

我想提醒一句,翻译十分枯燥,保护热情很重要。直接翻译 xml 文件存在一个问题,就是当版本升级后你的翻译无法自动继承,现在 gtk 2.8.20 和 2.10.2 早就出来了,你如何跟踪? 2.8.18 翻译完也陈旧了。

印象中 gnome 社区在 2.10 起有人提供了 xml2po 工具,用 python 写成,需要 libxml,就包含于 gnome 的文档工具包里,你们可以用它转换成 linux 下通用的标准翻译格式 po,这样就可以通过国际化工具 gettext 软件包轻松实现老翻译的继承。kde 自带的那个相应工具不太可靠。当初 i18n 工作组的 fundawang(mandrikechina) 和那个作者分别在开发相应工具,但是只有后者成功了。我用 perl 写了一个 html2pot、po2html 的工具,叫 getpo,里面也涉及到如何继承翻译的方法,这个工具被 qt 中文文档维护者使用,因 qt 没有提供 xml,只有 html 文档,参见翻译汉化版。其他只有 html 文件的文档同样适用 getpo。

cavendish 发表于 2006-11-15 19:38:49

强烈建议使用getpo
不知道gtk的文档是html的还是xml的

yetist 发表于 2007-3-5 20:26:04

看了KDE和cavendish两位兄弟的回贴以后,我已经意识到了这个问题。尝试过 xml2po 工具, 却无法完成这个任务,所以之前的翻译已经停止了。
由于gtk+(以及其它gnome开发包)的文档都使用了gtkdoc, 文档是写在源文件中的, 通过gtkdoc工具转换生成html.因此最近在尝试写一个工具,通过直接读取源文件, 根据gtkdoc格式标准从中取出需要翻译的内容,直接产生pot文件。然后就可以把这个po文件翻译成不同语言(不仅仅局限于中文)。 最后将翻译的po文件合并到源文件中,再编译产生html等格式。
如果这项工作能完成的话,那么只要使用gtkdoc产生的文档都可以翻译成多国语言,呵呵。
目前,这个工具只实现了从源代码文件产生po文件这一步骤, 具体可以下载这个文件看一下:
ftp://download.inlsd.org/gtk+-2.10.6.po.tgz
这是从gtk+-2.10.6的源代码产生的相应po文件, 其中的PACKAGE.pot是一个总的文件,也就是通过msgcat把其它po文件合并后产生的。

为了便于后面再将po文件合并到源代码中,我对po文件做了一点加工,比如:

# #-#-#-#-#gtkwidget.pott (PACKAGE VERSION)#-#-#-#-#
# used by: GtkWidget::parent-set:
# #-#-#-#-#gtkwidget.pott (PACKAGE VERSION)#-#-#-#-#
# used by: GtkWidget::style-set:
#: /tmp/gtk+-2.10.6/gtk/gtkwidget.c:626@1
#: /tmp/gtk+-2.10.6/gtk/gtkwidget.c:653@1
msgid "@widget: the object on which the signal is emitted"
msgstr ""

以# #-#-#-#-#开头的不用管。
#used by:GtkWidget::style-set: :表示这个msgid被GtkWidget::style-set使用。如果使用poedit翻译的话,就能看到这是个注释。
/tmp/gtk+-2.10.6/gtk/gtkwidget.c:653@1: 表示这个条目在源文件中的行号及从本行起共占用的行数。像这行的内容表示在gtkwidget.c文件中第653行,只占一行。同时也出现在第626行。后面的@1是我加上去的,目前看来用gettext工具可以正常处理。
像@widget是gtkdoc的格式,翻译时要保留原样。
再如:

# #used by: GtkWidget::drag-data-get:
#: /tmp/gtk+-2.10.6/gtk/gtkwidget.c:1245@4
msgid ""
"The ::drag-data-get signal is emitted on the drag source when the drop site "
"requests the data which is dragged. It is the responsibility of the signal "
"handler to fill @data with the data in the format which is indicated by "
"@info. See gtk_selection_data_set() and gtk_selection_data_set_text()."
msgstr ""

说明这个条目被函数GtkWidget::drag-data-get使用,开始于源文件gtkwidget.c的1245行,共4行内容,即1245到1248行。

关于正式翻译中要注意的事项,等我把这个工具做完以后 ,再写一个详细的手册。

现在希望能有更多的人关注, 等一切准备妥当以后大家再讨论具体的翻译事项, 也许可以请i18n上面的人帮忙或者直接提交到i18n。

yetist 发表于 2007-3-10 18:53:00

作为一个示范,发布一份中文文档(没翻译完),希望大家支持并参与。
http://groups.google.com/group/gtk-doc-cn/attach/f1129f8a8c1a90db/libgksu-2.0.0-beta2.tar.gz?part=2&hl=zh-CN

解压缩后直接可以用浏览器查看。

如果要在devhelp中查看,请按以下操作:
yetist@localhost:~$ mkdir .devhelp/books -p
yetist@localhost:~$ cd .devhelp/books/
yetist@localhost:~/.devhelp/books$ tar -zxf /tmp/libgksu-2.0.0-beta.tar.gz -C .
yetist@localhost:~/.devhelp/books$ ls
libgksu
yetist@localhost:~/.devhelp/books$ devhelp
页: [1]
查看完整版本: 再次发起GTK2 API 参考手册翻译计划