Translations-tw
English | 简体中文 | 正體中文 | Deutsch | Español | Português | Korean | Russian
Contents
簡介
aMule 設計時就已考慮到各種語言顯示問題,支援 Unicode,因此可以直接顯示世界各國的語言文字。
就只欠協助翻譯的熱心人士而已了。
作翻譯不必懂怎麼編 C++ 程式碼或 克林貢語!你只需要知道你自己的母語,和有基本的英語能力即可。
有興趣嗎? 立即加入吧。
怎麼做?
aMule 開發團隊大約每個月更新一次各國語言的翻譯,請找到正體中文 (Traditional Chinese) 文字檔 zh_TW.po,下載並編輯它。
您可以直接使用文字編輯程式編修翻譯,但也有更方便的翻譯工具程式,像是 KDE 桌面環境的 KBabel、Gnome 桌面環境的 PoEdit,或是 gTranslator。
使用這些程式時,別忘記在偏好設定中設定您的姓名、email、編碼、翻譯版本等參數。
這是 KBabel 的界面:
左上角:英文字串。
右上角:使用這個字串的檔案。
您只需要在左下角輸入翻譯的字串,像這樣:
在翻譯時要注意字串中的特殊字元,像是 &、%i、\n 等等,且首尾若有空格時應予以保留
請參考 format specifiers 以瞭解哪些字元不應該被修改掉。
依以上要領完成翻譯後,把它貼到翻譯論壇,這樣大家都會感謝您的貢獻。
如何繼續處理未完成的舊翻譯檔
舊版的翻譯經過處理後,可以整合套用到新版檔案上,而不必重頭翻譯起
例如,您想要翻譯法語版:
- 手上有翻譯到一半的舊版 fr.po。
- 從翻譯公佈區取得新的 fr.po 並另外儲存 (假設存為 fr_string.po)。
- 輸入指令:
msgmerge --no-fuzzy-matching -o new_fr.po fr.po source_strings.po
- 就可得到將舊版整合到新版的翻譯檔 new_fr.po
- 然後,也是用工具程式處理 new_fr.po,翻譯未完成的部份。
測試你的翻譯
First notes
翻譯完文件後,你需要重編譯 aMule,或者先測試一下你得翻譯是否成功(這一步在編譯aMule得時候自動做了)
後一個選項的好處是,你不需要重新編譯整個aMule,而只需要產生翻譯的二進制文件。
建議嘗試翻譯文件測試知道成功,然後[[#用這個翻譯測試aMule|]]看看如何工作。
只測試翻譯文件
簡單方法
如果你沒有開發環境,你甚至不能運行./configure,因為它需要找到編譯器,頭文件等等。所以只能模仿源Makefiles如何做。在.po存在的目錄裡面運行msgfmt -c --statistics -o translation_language.gmo translation_language.po比如msgfmt -c --statistics -o en_GB.gmo en_GB.po。
[~/aMule/amule-dev-cvs/po]$ msgfmt -c --statistics -o en_GB.gmo en_GB.po 1354 translated messages
提示消息的含義和下面是相同的,你可以參考它。這種方法只需要gettext,Linux和*NIX一般都安裝。
更複雜的方法
首先,運行./configure.
現在,把翻譯放入po/目錄,運行make translation_language.gmo,比如make en_GB.gmo
如果你翻譯得正確,會顯示:
[~/aMule/amule-dev-cvs/po]$ make en_GB.gmo rm -f en_GB.gmo && /usr/bin/msgfmt -c --statistics -o en_GB.gmo en_GB.po 1354 translated messages
上面是個成功的完整的翻譯。
一個「成功」的翻譯,無論是否完整,因為沒有語法錯誤所以可以使用。
一個成功的但是不完整的翻譯如下:
[~/aMule/amule-dev-cvs/po]$ make ru.gmo rm -f ru.gmo && /usr/bin/msgfmt -c --statistics -o ru.gmo ru.po 1333 translated messages, 79 untranslated messages.
這樣,翻譯中的79行需要重新翻譯。
你的翻譯可能會有失真。失真翻譯是gettext給出猜測的翻譯,可能是錯的(也可能很接近)。他們用#, fuzzy標識。如果你有失真翻譯,搜索並改正他們(如果沒問題只需要除掉#, fuzzy這行)。
下面是一個失真翻譯的輸出:
[~/aMule/amule-dev-cvs/po]$ make hr.gmo rm -f hr.gmo && /usr/bin/msgfmt -c --statistics -o hr.gmo hr.po 544 translated messages, 412 fuzzy translations, 443 untranslated messages.
最後,你的翻譯可能有錯。這樣的話,你的文件會報告所有錯誤,每個錯誤都有一個解釋。
[~/aMule/amule-dev-cvs/po]$ make de.gmo rm -f de.gmo && /usr/bin/msgfmt -c --statistics -o de.gmo de.po de.po:88: number of format specifications in 'msgid' and 'msgstr' does not match /usr/bin/msgfmt: found 1 fatal error make: *** [de.gmo] Error 1
在上面的例子中,在88行的翻譯有一個錯誤,所以要修改這個錯誤,否則不會有二進制翻譯生成。
測試 aMule
簡單方法
如果你的aMule不是老到翻譯已經不兼容的地步,你可以直接安裝以前的made結果(也就是.gmo文件)直接測試,不需要編譯。
警告:你必須備份當前的 /usr/share/locale/your_language/LC_MESSAGES/amule.mo。你必須有足夠的權限去修改文件。另外,有可能讓你的aMule安裝崩潰。如果是這樣,恢復原來的amule.mo文件。
下面就是例子。看懂這個例子。在your_language.gmo (這裡是en_GB.gmo)存在的目錄裡面:
$ cp /usr/share/locale/en_GB/LC_MESSAGES/amule.mo . $ cp en_GB.gmo /usr/share/locale/en_GB/LC_MESSAGES/amule.mo
如果第一個cp提示文件不存在,你需要把目錄(這裡是 /usr/share/...)切換到aMule安裝的目錄,比如/usr/X11R6/share/... 或者/usr/local/share/...
如果第二個cp提示"Permission denied",說明你沒有足夠權限修改它。多數情況下你需要root權限。
更複雜的方式
你可以通過重新編譯aMule觀察結果來測試你的翻譯。
如果你的語言沒有被aMule支持,你必須把它加入數據庫中,這樣aMule就可以知道它存在並用它編譯。這麼做需要把你的語言的代碼加入po/LINGUAS文件(每種語言一行)。
高級翻譯
如果你不是開發或者Linux新手,或者你不耐煩等待總想要最新的翻譯...
自己生成source_strings.po!
如何進行?
- 解壓縮檔案文件,進入根目錄並生成Makefiles:
tar -xjf aMule-cvs-20041009.tar.bz2
cd amule-cvs
./configure
- 更新 POTFILE.in 檔案:
grep -m 1 '_(' `find * -name "*.cpp"` | cut -d: -f1 > po/POTFILES.in
- 複製新的 zh_TW.po:
cd po mv amule.pot amule.pot.old make amule.pot mv amule.pot zh_TW.po mv amule.pot.old amule.pot