翻譯 Debian 網頁
為了讓翻譯人員的工作更加容易,在這些頁面的生成方式和您過去所熟知的之間存在一些差異。實際上這些網頁是透過由 wml 標記的原始碼自動生成的。 每一門語種都有各自對應的目錄。
如果您計劃為 Debian 網頁開創一個新的語種的翻譯工作,請查閱 開創一個新語種 一節。
翻譯單獨的頁面
我們使用 WML 區分一個頁面關鍵的內容和多個頁面共通的元素。意思就是唯一需要編輯的是 WML 原始碼,而不是 HTML 文件。 請 使用 Git 獲取當前的原始碼。您將需要簽出 (check out) 至少兩個目錄:webwml/english/ 和 webwml/<language>/。
要將一個單獨的頁面從英語翻譯成您所用的語種,原始的 .wml 文件需要被翻譯並放置在那個語種對應的目錄。文件的相對路徑以及名稱需要和英語目錄中的保持一致,以便鏈接能夠正常工作。
翻譯頁首
強烈建議翻譯人員在頁首的最後一個 #use
敘述句之後追加一行,用於記錄該被翻譯的原始文件的版本,來 方便更新。這一行看上去應該像這樣:
#use wml::debian::translation-check translation="<git_commit_hash>"
請注意如果您使用 copypage.pl 工具產生翻譯用檔案(推薦使用此方式),將會自動填入 git 版本。
copypage.pl 工具的用法將後述。
另外某些翻譯小組還會用這一行給每個網頁標記一位官方翻譯人員。如此一來,當您所維護的這個頁面在英語目錄中相應位置有更新時,您將會自動收到郵件通知,提醒您更新這個翻譯工作。
為此,只要在剛才 #use
一行的最後簡單地加上您的名字作為維護者使它看起來像這樣:
#use wml::debian::translation-check translation="git_commit_hash" maintainer="your name"。如果您設定了 DWWW_MAINT 環境變數,或是使用 -m 命令列參數,copypage.pl 將能自動填入。
透過使用 webwml 根目錄中的 copypage.pl 命令稿可以很容易的產生一個網頁的頁首資訊。這個命令稿將複製頁面到正確的位置,在必要時建立目錄以及產生 makefile,並且自動添加所需的頁首資訊。 您可能會收到警告該頁面已經存在倉庫中,表示該頁面可能曾經翻譯過但過期太久而被移除,或是因為已經有人在您之前提交新的翻譯。
在開始使用 copypage.pl 之前,您需要先設定在 webwml 根目錄下的 language.conf 檔案,它被用來指定您要翻譯的語種。該文件最多需要兩行:第一行設置語言名稱(如 german),第二行是可選的,用於設置負責維護的翻譯者的名字。您也可以透過使用 DWWW_LANG 環境變數來設定語種,並使用 DWWW_MAINT 環境變量設置您的名字,以便 copypage.pl 將其添加到翻譯維護者生成的 wml 文件的頂部。也存在第三種可選方案,您可以透過使用命令行參數 -l german -m "Donald Duck" 設置語言和維護者名字(可選), 而根本不使用 language.conf 文件。這個命令稿還提供其他功能,只要不帶參數執行即可得到說明資訊。
當您執行過 ./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 伺服器根據 git 內的原代碼重新編譯。大多數零散的錯誤在這個過程中都將被忽略。 但是,如果您提交了一個有問題的文件到您翻譯工作的頂級目錄中(例如頂級目錄中的 index.wml 文件),那麼不僅編譯過程將被中斷,還將連累整個網站 的更新。請密切留意這些文件。
一旦一個頁面準備好,您就可以將它提交到 Git。如果您自己有權限的話,請提交至 webwml git 版本庫。 否則,請把這個頁面發送給 有權限寫入版本庫的人。
開創一個新的語種
如果您希望為 Debian 網頁開創一個新的語種,請發送電子郵件(請用英語)/給我們 webmaster@debian.org。
首先,確認您已經適宜的簽出了我們的源碼樹,請參考 我們介紹 Git 的頁面。
當您簽出了原代碼之後,先在 english/ 目錄旁邊為您的語種建立一個目錄。該目錄名稱必須完全使用小寫英文(例如用“chinese”而不是“中文”)。
從 english/ 目錄複製 Make.lang 和 .wmlrc 這兩個文件到新語種的目錄。這些文件對於從 WML 文件中編譯出您的翻譯工作發揮著重要作用。 當您複製它們到新語種目錄之後,您只需要修改這些東西:
- Make.lang 文件中的 LANGUAGE 變量必須作修改。
- .wmlrc 文件中的 CUR_LANG、CUR_ISO_LANG 和 CHARSET 變量必須作修改。如果您還需要進行排序的話,請添加 CUR_LOCALE。
- 有些語種需要對字符進行額外處理。透過傳遞 --prolog 和 --epilog 參數給 wml 的方式可以滿足這種要求。請在 Make.lang 文件中使用 WMLPROLOG 和 WMLEPILOG 變量實現此功能。
- 頂層 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 頁面的翻譯事項就像 本頁面開頭 描述過的那樣。
重建過期的翻譯
如前面保持翻譯的時效性所說,過期的翻譯可能在很長一段時間沒有更新之後,自動被系統回收。
如果您發現有些檔案已被移除,而且您想要簽出檔案來編輯,您可以使用 git 標準命令來在版本歷史中搜尋。
例如,如果被刪除的檔案是 "deleted.wml",您可以執行以下命令來搜尋歷史紀錄:
git log --all --full-history -- <path/to/file/deleted.wml>
您可以找到移除該檔案的正確版本,與該版本的雜湊字串。要顯示該版本的詳細修改內容,您可以執行 git show
子命令:
git show <COMMIT_HASH_STRING> -- <path/to/file/deleted.wml>
如果該版本只刪除了該檔案,您可以使用 git checkout
來復原該檔案:
git checkout <COMMIT_HASH_STRING>^ -- <path/to/file/deleted.wml>
當您完成了這些步驟,您當然必須在提交之前更新該文件。否則該文件還是會再度被移除。
剩下來的故事
上述內容或許已經足夠讓您開始嘗試了。之後,您可能想參考下列這些提供了更多詳盡說明和附加資訊的文件。
我們衷心的希望您認識到我們所做的努力使得翻譯頁面的工作變得更加容易。就像已經說過的,如果您有任何問題,您可以在 debian-www 通信論壇上詢問我們。