注:此网页的中文译本不及原英文本新。

翻译 Debian 网页

为了让翻译人员的工作更加容易,在这些页面的生成方式和您过去所熟知的之间存在一些差异。实际上这些网页是通过由 wml 标记的源代码自动生成的。每一门语种都有各自对应的目录。

如果您计划为 Debian 网页开创一个新的语种的翻译工作,请查阅 开创一个新语种 一节。

翻译单独的页面

我们使用 WML 区分一个页面关键的内容和多个页面共通的元素。意思就是唯一需要编辑的是 WML 源代码,而不是 HTML 文件。请 使用CVS 获取当前的 源代码。您将需要签出 (check out) 至少两个目录: webwml/english/webwml/<language>/.

要将一个单独的页面从英语翻译成您所用的语言,原始的 .wml 文件需要被翻译并放置在那个语言对应的目录。文件的相对路径以及名称需要和英语目录中的保持一致, 以便链接能够正常工作。

翻译页头

强烈建议翻译人员在页头的最后一个 #usr 语句之后追加一行,用于记录该被翻译的原始文件的修订版本号,这样的话 便于更新。 这一行看上去应该像这样: #use wml::debian::translation-check translation="x.y"

另外某些翻译小组还会用这一行给每个网页标记一位官方的翻译人员。这样,当您所维护的这个页面在英语目录中相应位置发生更新时,您将会自动收到邮件通知,提醒您 更新这个翻译工作。为此,只要在刚才 #use 一行的最后简单的加上您的名字作为维护者使它看起来像这样: #use wml::debian::translation-check translation="x.y" maintainer="your name"

您还需要向机器人说明您的身份,以及自动接收邮件通知的周期。为此,编辑 (或者干脆让您的协调人编辑) CVS 中的这个文件 webwml/language/international/language/translator.db.pl 。它的语法是十分简明的,而且如果在您所用的语言中还不存在该文件的话,你可以使用法语小组的文件作为模板。所谓的机器人能够传递几种信息,对于其中的任何一种, 您可以选择接收它们的周期。这些不同种类的信息有:

然后它们每一项的取值应该是: 0 (从不),1 (每月),2 (每周),3 (每日) 其中的一个。

例如:

                'Martin Quinson' => {
                        email       => 'martin.quinson@tuxfamily.org',
                        summary     => 3,
                        logs        => 3,
                        diff        => 3,
                        tdiff       => 0,
                        file        => 0
                },

通过使用 webwml 根目录中的 copypage.pl 脚本可以很容易的产生一个网页的页头信息。这个脚本将复制页面到合适的位置,在必要时创建目录以及生成 makefile,并且自动添加所需的页头信息。您可能会收到警告该页面已经存在仓库中,表示该页面可能曾经翻译过但过期太久而被删除, 或是因为已经有人在您之前提交新的翻译。

当您执行过 ./copypage.pl file.wml 之后,便可以对这个文件中的原始内容进行翻译了。文件中的注释用于标示一些不需要被翻译的条目,请保留 它们。不要作任何有关格式方面的多余改动,如果真有需要的话,改动或许应该在原始文件中完成。

页面的编译和发布

自从我们使用 内容协商 以来,HTML 文件的命名规则就不是 file.html 而是 file.<lang>.html,这里 <lang> 指的是由两个字符代表的语种,遵循 ISO 639 (例如 zh 代表中文)。

您通过执行 make file.<lang>.html 可以从 WML 编译得到 HTML。成功的话,使用 weblint file.<lang>.html 检查语法是否完全正确。

网页将会从 www-master 服务器上的 CVS 中重新编译得到,大多数零散的错误在这个过程中都将被屏蔽。但是,如果您提交了一个有问题的文件到您翻译工作的顶级目录中 (例如顶级目录中的 index.wml 文件),那么不仅编译过程将被中断,还将连累整个网站的更新。请密切留意这些文件。

一旦一个页面准备好,您就可以将它提交到 CVS。如果您自己有这个权限的话,运行 cvs commit。否则,请把这个页面发送给有权限写入软件仓库的人

开创一个新的语种

如果您希望为 Debian 网页开创一个新的语种,请发送电子邮件 (请用英语) 给我们 webmaster@debian.org

首先,确认您已经适宜的签出了我们的源码树,请参考 我们介绍 CVS 的页面

当您签出了 webwml/ 和 webwml/english/ 目录(至少)之后,一切都从为您的语种创建一个目录开始,然后进入 english/ 或其他目录。为新语种所创建的目录的名称, 必须完全使用小写英文(例如用 "chinese" 而不是 "中文")。

从 english/ 目录复制 Make.lang.wmlrc 这两个文件到新语种的目录。这些文件对于从 WML 文件中编译出您的翻译工作发挥著重要作用。 当您复制它们到新语种目录之后,您只需要修改这些东西:

  1. Make.lang 文件中的 LANGUAGE 变量必须作修改。
  2. .wmlrc 文件中的 CUR_LANG、CUR_ISO_LANG 和 CHARSET 变量必须作修改。如果您还需要进行排序的话,请添加 CUR_LOCALE。
  3. 有些语种需要对字符进行额外处理。通过传递 --prolog 和 --epilog 参数给 wml 的方式可以满足这种要求。请在 Make.lang 文件中使用 WMLPROLOG 和 WMLEPILOG 变量实现此功能。
  4. 顶层 webwml/Makefile 文件中的 LANGUAGES 变量必须作修改, 只有这样您的语种才能和其它语种一同在 www.debian.org 上得到编译。 我们更愿意看到的是您把这部分工作留给网站管理员, 因为您可能没意识到由于您的新语种可能存在的错误将导致我们其它语种的网页无法得到有效处理。

当以上工作都完成后,在刚才的目录中新建一个名为 "Makefile" 的文件,写入下面的这一行:

include $(subst webwml/yourlanguagedir,webwml/english,$(CURDIR))/Makefile

(请用您的语种目录的名字替换 yourlanguagedir)

现在请在您的语种目录下创建一个名为 "po" 的子目录,并且把同样的 Makefile 复制到该目录 (cp ../Makefile .)。

在 po/ 目录中,运行 make init-po 产生初始的一系列 *.po 文件。

现在您已经搭建好了框架,通过使用公用的 WML 模板您可以开始添加您的翻译了。您最先翻译的模板应该是那些在所有网页中都出现的内容,比如页头关键字,导航条上的 条目,还有页脚。

开始在 po/templates.xy.po 文件 (这里 xy 指的是由两个字符代表的您的语种) 中进行翻译吧。每一个 msgid "something" 都原配一个 msgstr "",您应该在 msgstr 后面的双引号内填入翻译条目。

您不必翻译所有 .po 文件中的每个条目,除了那些你当前翻译的页面确实需要的。判断一个条目是否需要被翻译,请留意 .po 文件中在每个 msgid 条目 上方的注释。如果该注释中提及了 english/template/debian 文件,那么您多半需要翻译它。否则,您可以延缓翻译直到您实际翻译的页面需要该条目为止。

这些在 po/ 目录底下的档案的用意是让翻译人员方便工作,让他们几乎不需要自己编辑 english/template/debian 目录底下的东西。如果你发现任何模板目录内的错误,请确定该问题的修正是一般化的 (您也可以请别人帮你作这件事),而不是把真正的翻译提交到模板中,这会通常带来更严重的问题。

如果您不能确定您的某些操作是否合适,在签入代码之前请先在 debian-www 邮件列表上进行询问。

备注: 如果您发现您需要作任何其它改动,请发送电子邮件至 debian-www 说明您要改动的内容以及原因,这个问题便会得到解决。

当模板框架完成之后,您就可以开始前端页面和其它 *.wml 文件的翻译工作了。那些应当被优先翻译的文件列表,请看 指点页面。*.wml 页面的翻译事项就像 本页面开头 描述过的那样。

重建过期的翻译

如前面保持翻译的时效性所说,过期的翻译可能在很长一段时间没有更新之后,自动被系统回收。

如果您使用 copypage.pl 脚本来开始某个曾经被删除过的页面,它会提示您使用旧有的资料来开始。您可以检查为何该页会被删除,如通过对此档案下 cvs log 命令或是使用网页界面,曾被删除的档案存放在 "Attic" 子目录下。

为了取回这个过期的翻译,先使用 cvs status (或是 cvs log) 来取得被删除档案的修订号码,然后进行反方向的合并

例如,如果被删除的档案名为 "deleted.wml",而被删除时的修订号码是 1.7,则被删除前的修订号码则是 1.6 (减一)。您可以用以下命令来取回:

   cvs update -j 1.7 -j 1.6 deleted.wml

在这之后,您就必须先更新这个页面才能提交了。否则它还是会被系统删除的。

剩下来的故事

上述内容或许已经足够让您跃跃欲试了。之后,您可能想参考下列这些提供了更多详尽说明和附加信息的文档。

我们衷心的希望您认识到我们所做的努力使得翻译页面的工作变得更加容易。就像已经说过的,如果您有任何问题,您可以在 debian-www 邮件列表上询问我们。