Qt 是一個開源的 C++ 庫,源代碼十分龐大。如果你想為 Qt 作出自己的貢獻,卻又苦於找不到入手點,那麼,就從文檔翻譯開始吧!
以前我曾經在 sourceforge.net 上面開啟過一個翻譯項目,而今天,我們試圖完成一個真正的文檔工程:其結果是提交到 Qt 的代碼庫,讓全世界所有人都閱讀到你翻譯的代碼。
Qt 的源代碼使用 git 作為版本控制系統。git 是一個分布式版本控制系統,類似於 SVN而後者是中央集權式的版本控制系統)。簡單來說,就是可以把你的文件的每個版本詳盡的記錄下來,並且可以恢復到任意版本;同時,如果多人同時修改同一文件,git 可以保證你的修改不會丟失。由於 Qt 的代碼庫已經建立完全,所以,我們的工作流程是,從 Qt 的 git 版本庫 pull 下來所有的源文件這一過程在 SVN 中稱為 check out,也就是簽出),然後做自己的修改,修改完畢後 commit 到自己的 git 庫這是與 SVN 不同的地方,SVN 的 commit 會將你的修改提交到 SVN 代碼庫,而 git 的 commit 只是將修改提交到本地資源庫。也就是說,每個客戶端都有一個完整的 git 資源庫,這也就是“分布式”的含義),最後將本地庫修改的部分一次性全部 push 到遠程資源庫這一步才相當於 SVN 的 commit 操作)。這就是 git 的簡單使用步驟,了解了這些之後,我們才能將自己的翻譯提交到 Qt 代碼庫。
git 在 Linux 下應用廣泛,Linux kernel 即使用 git 做版本控制的。Windows 下,你可以通過安裝 MSYSGIT 從而使用 git。如果你希望為 Qt 做出自己的貢獻,建議先仔細學習下 git 的使用。
我們的項目地址是在 http://gitorious.org/~cavendish/qt/qt-l10n-zh_cn。打開這個網頁,可以看到頁面上方有我們項目的地址:
這裡有三個選項。如果你的賬號沒有加入 commiter,那麼就只有兩個: GIT 和 HTTP。首先,我們根據它給出的地址,使用下面的命令將所有源文件下載到本地:
git clone git://gitorious.org/~cavendish/qt/qt-l10n-zh_cn.git
注意,這一過程會很慢,鑒於國內網絡的速度,大概要有半個小時或者更長的時間,總計大約 800M 以上。這時,你就有了所有的源文件。下面來到 doc/src,這裡面放置的就是 Qt 文檔的源代碼。我們所要做的,就是將這裡面的所有文件翻譯成中文。在 src 下面已經建立了 zh_CN 文件夾,這裡面就是我們的工作目錄。當你翻譯某一文檔的時候,先將它復制到 zh_CN 文件夾下,然後對其進行翻譯。注意,不要修改文件中的標簽,例如 \list 或者 {} 內的數據,這些都是在生成文檔的時候所必需的。我們要做的是將其中的顯示內容如果你不確定哪些是顯示出來,或者顯示到什麼地方的,不妨打開生成的文件對照著翻譯)翻譯成中文。當你完成之後,使用
git commit
將所作修改提交到本地資源庫。最後,使用 git push 即可提交到遠程資源庫。這樣,我們的 qt-l10n-zh_CN 資源庫就有了你所做的工作。然後,你要做的是,點擊頁面右側的 Request merge 連接,向 Qt 資源庫提交一個合並請求。這一操作只需要做一次,目的是要你同一一個法律條款。當你提交了合並請求並獲得許可之後,你的代碼就已經加入到 Qt 代碼庫之中了。別人在 pull 最新代碼的時候,就可以獲得你所提交的代碼。最後說明一點,為了便於管理,我們希望你只提交唯一一次 merge request,目的就是同意那個法律條款,之後,你所要做的就是將自己的修改 push 到 qt-l10n-zh_CN 資源庫,由資源庫的 creator 在 Qt 發布之前向 Qt 做 merge request。這樣就不需要每個人都做這一請求了。
這就是我們大體的流程。如果你還不是 commiter,你是沒有權限進行 push 操作的。此時,你可以使用頁面右側的 Clone repository 連接創建自己的資源庫,翻譯結束後做 qt-l10n-zh_CN 的 merge request,這樣,我們就可以將你的修改 merge 到 qt-l10n-zh_CN,然後再進行統一的提交。
我們希望能夠通過這一項目,將中文版的 Qt 文檔提交到 Qt 源代碼庫中,讓更多人了解、學習 Qt。如果你不熟悉版本控制系統,或許會感到十分不便,不過,如果你試著去學習,就會發現版本控制系統的好處,也會越來越多地在自己的項目中應用起來。
本文出自 “豆子空間” 博客,請務必保留此出處http://devbean.blog.51cto.com/448512/389439