注:此網頁的中文譯本不及原英文本新。

翻譯 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 通信論壇上詢問我們。