[分享] 如何進行軟體的中文化?

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

[分享] 如何進行軟體的中文化?

文章Tetralet » 週二 3月 09, 2004 3:44 pm

在 Linux 下使用某個軟體時,
如果覺得很好用、想要推廣給別人,
卻又發現它沒有中文化...
這時您是否曾興起把它翻譯成中文的念頭呢?

如果您想幫忙翻譯某個軟體,
首先,請發封 E-mail 和開發者連繫,
表示您想要進行繁體中文的翻譯工作,
以便確保不會有人也同時在進行一模一樣的工作,免得做白工了。
(↑這也是網路上的禮節之一哦!千萬別輕忽了!)


如果得到了確切的回應,
接下來就可以立即進行翻譯的工作了。


首先,我們可以利用 apt-get,或是到該軟體的官方網頁來下載該程式的原始碼,
以 gtk-gnutella 為例:

代碼: 選擇全部
$ apt-get -t unstable source gtk-gnutella
讀取套件清單中... Done
了解套件依存關係中... Done
需要下載 1166kB 的原始檔案。
讀取:1 http://ftp.debian.org testing/main gtk-gnutella 0.92.final-1 (dsc) [652B]
讀取:2 http://ftp.debian.org testing/main gtk-gnutella 0.92.final-1 (tar) [1165kB]
讀取 1166kB 用了 27s (43.0kB/s)                                                                                           
dpkg-source: extracting gtk-gnutella in gtk-gnutella-0.92.final


好,下載完成後,
我們會得到

  gtk-gnutella_0.92.final-1.dsc(套件相關資訊)
  gtk-gnutella_0.92.final-1.tar.gz(原始碼)
  gtk-gnutella_0.92.final-1.diff.gz(該套件的 Patchs,當然不一定會有。)

以及 gtk-gnutella-0.92.final 這個目錄。

在 gtk-gnutella-0.92.final 這個目錄中找一下,
可以找到 po 這個資料夾,(有時不只一個)
裡面有一個 gtk-gnutella.pot 檔案,
它就是翻譯檔的範例檔
我們可以把它複製成 zh_TW.po.tmp,
然後就可以用 vi、或是其它您慣用的文字處理軟體來編輯它,
開始一項一項進行翻譯了。


翻譯中請注意到,
請修改開頭的 "Last-Translator" 中把您的名字填上去,
並在 "PO-Revision-Date" 中填上最後的修改日期,
讓日後想要新增修訂這個翻譯檔的人可以找到原始的作者及得知該檔案最後的更新日期。
例:
代碼: 選擇全部
"PO-Revision-Date: 2004-02-28 10:32+0800\n"
"Last-Translator: Tetralet <tetralet@pchome.com.tw>\n"


翻譯完成後,
使用以下指令將 zh_TW.po.tmp 轉成 Unicode 編碼:(請安裝 zh-autoconvert 套件)
代碼: 選擇全部
autob5 -i big5 -o utf8 < zh_TW.po.tmp > zh_TW.po

然後用以下指令檢查一下這個 zh_TW.po 是否有什麼問題:(請安裝 gettext 套件)
代碼: 選擇全部
$ msgfmt -v -o /dev/null zh_TW.po     
217 個已翻譯的訊息.

或(如果需要 zh_TW.gmo 這個檔案時)
代碼: 選擇全部
$ msgfmt -v -o zh_TW.gmo zh_TW.po   
217 個已翻譯的訊息.


接下來是很重要的檢查工作。

我們一定要自行編譯這個程式一次,
實地體驗一下這個中文翻譯在該程式中看起來感覺是如何。

比如說,
修改它的 configure 和 configure.in 檔案,
把 zh_TW 加進去。例:
代碼: 選擇全部
ALL_LINGUAS="cs de hu mk ru sk uk zh_CN zh_TW"

然後進行編譯,
看看那些中文翻譯是否有任何需要修改的地方?

如果沒有任何問題,
就可以把這個 zh_TW.po,以及 zh_TW.gmo(必要時),提交給開發者了。


翻譯工作到此結束!



但有時候我們所參加的會是一個大型的專案,
這時,往往所有的程式碼是由 cvs 所控管的,
所以上面那些直接向作者提交的做法就行不太通了,
我們必須學會如何加入一個專案,並學會操作 cvs。


以 Debian-Installer 為例,
它必須先在 http://alioth.debian.org/ 註冊一個 ID,
然後請 Debian-Installer 這個專案的負責人員把您的 ID 加入開發人員名單中。


等到我們正式加入該專案之後,我們就可以開始進行翻譯的工作了:
(以下指令皆和 CVS 有關,如果您想對 CVS 有更進一步的了解,可以參考 [ CVS 入門 作者: 臥龍小三 ])

首先,依據其官方網站上的指示,
下載該專案裡最新的程式碼:(以敝人為例)
代碼: 選擇全部
export CVSROOT=:pserver:tetralet-guest@cvs.alioth.debian.org:/cvsroot/d-i

CVSROOT 是 cvs 的環境變數,
指出了您所要使用的 CVS Server、登入帳號及專案名稱。

代碼: 選擇全部
cvs login

登入 CVS,並鍵入您所使用的密碼。

代碼: 選擇全部
cvs -z3 co -P debian-installer

下載 CVS 裡 debian-installer 專案的最新的程式碼。


或者,您也可以使用 SSH 來下載這些程式碼:

代碼: 選擇全部
export CVSROOT=tetralet-guest@cvs.debian.org:/cvsroot/d-i
CVS_RSH=ssh cvs -z3 co -P debian-installer


最新的程式碼到手後,
當然就開始進行翻譯的工作了。
翻譯的方法和注意事項,
如:

  要修改 "Last-Translator" 和 "PO-Revision-Date",
  要記得轉成 Unicode,
  要用 msgfmt 再檢查一次,
  最好能實際把程式編譯一次... 等等,

在此就不再贅述了。


在翻譯完成之後,就是上傳工作了。
進入 剛剛所下載到的 debian-installer 目錄中,下達以下指令,
向 Server 表示要求新增 ./tools/languagechooser/debian/po/zh_TW.po 這個檔案到 CVS 資料庫中。
代碼: 選擇全部
$ cvs add ./tools/languagechooser/debian/po/zh_TW.po
cvs server: scheduling file `./tools/languagechooser/debian/po/zh_TW.po' for addition
cvs server: use 'cvs commit' to add this file permanently


然後,就照 Server 的指示,把檔案傳送上去了:
代碼: 選擇全部
$ cvs ci -m "Initial Traditional Chinese (zh_TW) translation" ./tools/languagechooser/debian/po/zh_TW.po

RCS file: /cvsroot/d-i/debian-installer/tools/languagechooser/debian/po/zh_TW.po,v
done
Checking in ./tools/languagechooser/debian/po/zh_TW.po;
/cvsroot/d-i/debian-installer/tools/languagechooser/debian/po/zh_TW.po,v  <--  zh_TW.po
initial revision: 1.1
done

其中的 -m 後面的字串是註解。


傳送完畢之後,使用
代碼: 選擇全部
$ cvs st ./tools/languagechooser/debian/po/zh_TW.po
===================================================================
File: zh_TW.po          Status: Up-to-date

   Working revision:    1.1
   Repository revision: 1.1     /cvsroot/d-i/debian-installer/tools/languagechooser/debian/po/zh_TW.po,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

來檢視上傳後檔案的狀況。


而如果日後檔案有任何更新的話,
可以用以下的指令來進行更新:
代碼: 選擇全部
cvs ci -m "Updated Traditional Chinese (zh_TW) translation" ./main-menu/debian/po/zh_TW.po

其中 -m 後面的字串表示更新版次的註解。
每更新一次,該檔的版次就會自動加 1。


而使用 ssh 來更新的方式如下:
代碼: 選擇全部
$ CVS_RSH=ssh cvs ci -m "Updated Traditional Chinese (zh_TW) translation" anna/debian/po/zh_TW.po
tetralet-guest@haydn.debian.org's password:
Checking in anna/debian/po/zh_TW.po;
/cvsroot/d-i/debian-installer/anna/debian/po/zh_TW.po,v  <--  zh_TW.po
new revision: 1.4; previous revision: 1.3

done



我們也可以用以下指令來查看改版記錄:
代碼: 選擇全部
$ cvs log ./partman/partman-target/debian/po/zh_TW.po

RCS file: /cvsroot/d-i/debian-installer/partman/partman-target/debian/po/zh_TW.po,v
Working file: ./partman/partman-target/debian/po/zh_TW.po
head: 1.4
branch:
locks: strict
access list:
symbolic names:
        version_7: 1.3
keyword substitution: kv
total revisions: 4;     selected revisions: 4
description:
----------------------------
revision 1.4
date: 2004/03/05 05:06:29;  author: tetralet-guest;  state: Exp;  lines: +7 -6
Updated Traditional Chinese (zh_TW) translation
----------------------------
revision 1.3
date: 2004/02/28 11:45:44;  author: carlosliu-guest;  state: Exp;  lines: +25 -7
run debconf2po-update to update zh_TW.po
----------------------------
revision 1.2
date: 2004/02/28 04:26:30;  author: minghua-guest;  state: Exp;  lines: +4 -4
Updated Traditional Chinese (zh_TW) translation
----------------------------
revision 1.1
date: 2004/02/27 23:02:49;  author: minghua-guest;  state: Exp;
Initial Traditional Chinese (zh_TW) translation
=============================================================================


好了,
CVS 的操作到此應該就很夠用了...


本篇說明主要是希望有興趣進行翻譯工作的朋友,
能有一個快速且有效的小小指引,
因為有多少人無私得貢獻他們的時間和精力,
我們在 Linux 上才會有那麼多又酷又炫的軟體可以自由使用。
如果您不想只是坐享其成的話,
您可以從最簡單的 翻譯工作 開始,也算是盡自己的一點點小小力量吧...


同時,如果您對以上文章有任何的指教,
或是覺得有任何需要補充的地方,
請您一定要指出來,
來讓我們在進行中文翻譯的過程中能更加順利。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:[分享] 如何進行軟體的中文化?

文章palmpilote » 週二 3月 09, 2004 6:02 pm

附註一下
有些軟體還是希望使用big5的編碼
這時候可以在檔名上面加上去big5或是utf8來區別
如果你的編輯器已經是存成utf8的話,那自然是不需要轉換的步驟
圖檔
看啥?沒看過貓有五條腿的嗎?
http://palmpilote.twbbs.org
個人blog啟動
頭像
palmpilote
快樂的大學生
快樂的大學生
 
文章: 524
註冊時間: 週四 10月 17, 2002 4:01 pm
來自: 笨呆星球

re:[分享] 如何進行軟體的中文化?

文章carlos » 週二 3月 09, 2004 8:36 pm

大部分GNU软体的翻译成果都应该通过GNU Translation Project进行翻译提交。
http://www2.iro.umontreal.ca/translatio ... team=index
大陆这边是由 http://i18n.linux.net.cn 负责的,不太清楚台湾相关网站是哪一家。
頭像
carlos
活潑的高中生
活潑的高中生
 
文章: 307
註冊時間: 週五 4月 04, 2003 7:02 pm
來自: NZ


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:Google [Bot] 和 1 位訪客