以下摘錄 kde3 翻譯小組的一些建議,原始文件可以在 http://www.linux.org.tw/~ycheng/kde/trans-po.txt 找到。
Contributed by pofeng@linux.org.tw
Last Update 2003年 5月10日 周六 11時26分18秒 CST
標頭部份:
每個 po 檔一開頭的幾行,大多固定長的像底下的樣子, 其中比較要注意的幾個項目為:
==== 標頭範例 =============================================================== # traditional Chinese translation for XXX. # Pofeng Lee <pofeng@linux.org.tw>, 2001-2002. # Abel Cheung <maddog@linux.org.hk>, 2002. # Yuan-Chung Cheng <platin@ms.ccafps.khc.edu.tw>, 1998. msgid "" msgstr "" "Project-Id-Version: XXX X.X.X\n" "POT-Creation-Date: 2001-07-23 14:32-0400\n" "PO-Revision-Date: 2001-08-27 15:53+0800\n" "Last-Translator: Chung-Yen Chang <candyz@linux.org.tw>\n" "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" =============================================================================
PO-Revision-Date: 此欄位就請填入您翻譯時的日期時間
Last-Translator: 最後翻譯的人,若您是最後翻的人,就填入您的資料,以便讓人有疑問時可以連絡的上。 至於之前翻譯者的資料該如何處理呢? 或許比較好的方式,您可以把他的資料放在最前面,並將該行以 # 開頭註解起來, 如在 po 檔的最前面幾行加入這樣的資訊:
# Translator: aaa <aaa@aaa.com>, bbb <bbb@bbb.com> # ccc <ccc@ccc.com> # ddd <ddd@ddd.com>
Language-Team: 若原本已是 Chinese (traditional) <zh-l10n@linux.org.tw> 那就不須要變動, 若是新的 po 檔,則可以將其改為 Chinese (traditional) <zh-l10n@linux.org.tw> 表示這是由繁體中文的翻譯小組所翻譯的。
Content-Type: text/plain; charset=utf-8 字元集部份,KDE3 用 utf-8,gnome & gnu 目前還在用 big5。
Content-Transfer-Encoding: 8bit encoding 部份中文字都是用 8bit。
翻譯提示(hint) (注意, 這是 KDE 獨有的 extention), 如底下的範例,在 msgid 中您會看到有 "_:" 開頭的字串, 凡以 "_:" 開頭的即表示之後的字串是翻譯的提示, 這部份是給您參考用的,所以您只要翻譯 "Screen at %1" 這行即可。
==== 翻譯提示(hint)範例 ===================================================== #: ui/konsole_mnu.cpp:85 #, c-format msgid "" "_: Screen is a program controlling screens!\n" "Screen at %1" msgstr "" "視窗於 %1" =============================================================================
翻譯者的姓名及e-mail: 如下的範例,若碰到這樣的狀況,請填您自己的姓名及e-mail, 千萬不要把它給翻成了 "您的姓名"、"您的電子郵件帳號"。 ref: Getting Credit for Your Work
==== 翻譯者的姓名及e-mail範例 =============================================== #: _translatorinfo.cpp:1 msgid "" "_: NAME OF TRANSLATORS\n" "Your names" msgstr "" "張崇嚴, 張三" #: _translatorinfo.cpp:3 msgid "" "_: EMAIL OF TRANSLATORS\n" "Your emails" msgstr "" "candyz@linux.org.tw,someone@linux.org.tw" # ^ 註: 為了對齊, 英文逗點後勿留空白 =============================================================================
HTML TAG 部份: 如底下範例,若有 <p><b> 等 HTML TAG, 您必須保留其語法部份。
==== HTML TAG 部份範例 ====================================================== #: toplevel.cpp:110 msgid "<p><b>What can I do?</b></p><p>%1</p>>" msgstr "<p><b>我能做什麼?</b></p><p>%1</p>" =============================================================================
快速鍵部份: 如底下範例,若有看到 "&" 開頭的地方,如 &D, 則表示這可能是選單中的某快速鍵, 可以按 alt + d 鍵來快速執行等等, 此部份的翻譯方式,則是在最後面加上 "(&D)" 來表示。
==== 快速鍵部份範例 ========================================================= #: toplevel.cpp:61 msgid "&Debugger" msgstr "除錯器(&D)" # (&D) 之前不留空格 #: toplevel.cpp:61 msgid "&Debugger..." msgstr "除錯器(&D)..." # ... 是半形 ; (&D) 要放在 ... 之前" #: toplevel.cpp:61 msgid "&Debugger:" msgstr "除錯器(&D):" # : 是半形 ; (&D) 要放在 : 之前" =============================================================================
c-format 部份: 如底下範例中的 %1、%2 等變數,不一定 %1 就一定在前 %2 在後, 可以視翻譯的文法句型做適當的調整。
==== c-format 部份範例 ====================================================== #, c-format msgid "%1 is beated by %2" msgstr "%2 擊敗 %1" msgid "%s is beated by %s" msgstr "%2$s 擊敗 %1$s" ^^^^ ----------------> 請注意, %2$s 代表的是 msgid 中第二個 %s =============================================================================
fuzzy(模糊)部份: 若看到 "#, fuzzy",則表示這部份的翻譯是電腦自動猜測幫您翻的, 有時候會對,但也有時會錯的很離譜,因此,您必須檢查一下, 並做適當的翻譯調整調整完後,也要記得把 "#, fuzzy" 那行給拿掉。
==== fuzzy(模糊)部份範例 ==================================================== #: ../partitioning.py:1425 #, fuzzy msgid "" "You are about to delete a RAID device.\n" "\n" "Are you sure?" msgstr "您必須選擇一個磁碟陣列裝置" #: ../partitioning.py:1428 #, fuzzy, c-format msgid "" "You are about to delete the /dev/%s partition.\n" "\n" "Are you sure?" msgstr "您確定要刪除這個分割區嗎" =============================================================================
淘汰部份: 有些在舊版本中有的訊息,但在新版本中已經沒有了,因此這部份就沒有用了, 會出現在整個 po 檔的最後面部份,都以 "#~" 為開頭, 關於這部份,您可以將它刪除掉,或是也可以將其保留,當做日後參考用也行。
==== 淘汰部份範例 =========================================================== #~ msgid "&About" #~ msgstr "關於(&A)" #~ msgid "Panel Menu" #~ msgstr "面板選單" #~ msgid "Settings..." #~ msgstr "設定..." #~ msgid "Legacy Application" #~ msgstr "傳統應用程式" =============================================================================
單數複數: 中文沒有單數複數的問題,請直接填 msgstr[0] 即可。
==== 單數複數範例 =========================================================== msgid "found %d fatal error" msgid_plural "found %d fatal errors" msgstr[0] "找到了 %d 個重大的錯誤" =============================================================================
其他綜合建議:
標點符號請儘量用全形標點符號,但欄名尾的冒號則用回半形。
提示要用 "您" 取替 "你"。
編譯: msgfmt -cv xxx.po -o /dev/null
安裝: msgfmt -cv xxx.po -o /usr/share/locale/zh_TW/LC_MESSAGES/xxx.mo
測試: LC_MESSAGES=zh_TW.Big5 xxx ;
參考資料:
The KDE Translation HOWTO http://i18n.kde.org/translation-howto/
翻譯工具 KBabel http://i18n.kde.org/tools/kbabel/