本文出自:迎風閣


 

各種應用軟體,要適合全世界各地方的語言,是一件大工程。若從程式開發的角度來看,那幾乎是不可能的任務。
首先試想,假設程式開發者,先針對英文使用者界面,開發好程式。
接下來,如果要改成繁體中文版,那就必須修改原始程式碼,所有的界面文字從英文改成繁體中文,再編譯程式發行。
如果要發行日文版、德文版等等,都必須重新改一次、編譯一次。就算那個程式開發者精通全世界各國的語言,要發行各種不同的語言版本,也是會把人累死的。

因此,在unix的世界裡,為了讓程式與界面文字分開
若採用的是GNU gettext的技術,那程式開發者,只要開發英文的應用程式和界面
接下來,各地方的語系,是採用對照表的方式來完成。也就是說,假設英文是「this is a dog」。
這時,如果你的語系是繁體中文語系,就可以對應到「這是一隻狗」
當然,只要建立好各種不同的語系對應檔,不管是法文、德文、印度文等等,都可以很輕易的顯示各地區的文字界面。
這種界面文字對應檔,不一定要由程式開發者完成。
程式開發者,只要把英文的對應表配合程式一起放出來
接下來各地方的熱心人士,就可以把那個對應表用文字編輯器改成自己當地的語系,就完成了當地語系的應用程式版本。
而且,因為沒有動到原始程式碼,所以,任何一個沒有學過程式開發的人,只要會英文,就可以動手把應用程式修正成為支援當地語系的應用程式。
如果把這個修改好的語系檔,寄給程式開發的作者,那這個程式,在未來只要下傳使用的人是屬於你自己的語系,它就可以享受你的翻譯成果了。
所以,在未來如果你看到哪一個應用程式沒有中文版,你就可以動手把它翻譯一下,讓以後的人都可以享有中文版的應用程式了。


有興趣的讀者可以到GNU gettext的官網看看完整的說明吧。http://www.gnu.org/software/gettext/
好了,說了那麼多,那要如何做呢?我們來試做一個例子吧。
首先,打開終端機,鍵入下列的指令。(當然使用檔案總管也可以啦)
cd /usr/share/locale/zh_TW/LC_MESSAGES
有沒有看到zh_TW?這個就是繁體中文的語系目錄。
如果你到上一層,也就是 /usr/share/locale這個目錄,可以看到很多目錄名稱,這就是世界各國預設的語系目錄。
在這個目錄裡,你會發現有很多*****.mo的檔案,所謂的MO指的是Machine Object(機器物件),也就是系統讀入的語系資料
假設你有安裝realplayer這個多媒體播放程式,你就可以看到有一個realplay.mo 這個檔案
通常這個檔案我們無法直接使用,必須要轉成我們可以讀取修改的檔案,這個特別的檔案,其副檔名為po,指的就是Portable Object(可攜物件)。
要轉換前,我們先安裝必要的轉換程式吧。以終端機或是套件管理程式都可以安裝,底下以終端機指令為例。

sudo apt-get install gettext
上述的指令執行完畢,就可以嚕。接下來,你就可以把  ****.mo 檔轉換成 ****.po檔。相關的指令如下
msgunfmt realplay.mo -o realplay.po          <-----把mo檔改成一般的文字檔po
gedit realplay.po                                        <-----使用文字編輯改成繁體中文
msgfmt realplay.po -o realplay.mo              <-----繁體中文mo檔

當然啦,以上只是簡單的告訴你可以利用其它的方式取得原始的 .po檔來使用
這是當你無法取得時原始的 .po檔時使用。比如,你可以先把德文版的 .mo檔先轉成 .po檔,再進行翻譯。
(不要怕看不懂德文,因為是一行英文、一行德文,只要把德文刪掉,改成對應的中文即可)。
如果你真的要翻譯,可以在應用程式的官網裡取得原始的  .po檔來翻成你的中文語系檔,最後再編成 .mo檔來使用。

底下的網址是介紹翻譯PO檔時要注意的一些事項。
http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/po.html
一般來說,如果使用文字編輯程式確實有些不方便,因此網路上也有專門處理 .po檔案的應用程式
poedit是個人推廌的使用軟體。官方網址如下http://www.poedit.net/

創作者介紹

胖虎的祕密基地

idobest 發表在 痞客邦 PIXNET 留言(0) 人氣()