2011年5月29日 星期日

Linux 桌面正體中文補完

不知道為什麼在自由軟體世界中常常看到半殘的正體中文翻譯,也許比較多人用的軟體翻譯會比較完整一點,但還是多少會看到沒翻的字串。正所謂求人不如求己,當你看翻譯不順眼的時候可以用以下的方法對付。

GNU gettext

大多數的自由軟體是採用 GNU 的 i18n 架構,locale的翻譯訊息是從原始的 .po 檔編譯成程式在讀的 .mo 檔。這些檔案會隨著套件安裝到 /usr/share/locale/zh_TW/LC_MESSAGES 裡,如果你要修改翻譯,你需要 msgfmt 和 msgunfmt 這兩個工具。

我們可以先用 msgunfmt 將 .mo 檔轉成 .po 檔進行文字編輯,在將編輯過的 .po 檔用 msgfmt 輸出 .mo 檔。指令如下:

msgunfmt gtk20.mo -o gtk20.po
msgfmt gtk20.po -o gtk20.mo


除了應用程式中的字串外,選單與 MIME 也常常看到沒翻譯的字串。要編輯它們可以到以下的地方找到定義檔:

  • /usr/share/applications 選單中的應用程式項目
  • /usr/share/desktop-directories 選單中的應用程式目錄
  • /usr/share/mime/packages 檔案類型

MIME 編輯完以後需要跑 update-mime 才會生效。