mozdev.org

Mozilla 擴充套件中文化的小教學

Mozilla 擴充套件中文化的小教學

這文件是寫給非程式設計師的人的,主要是讓所有人可以只看這文件就能懂如何對 Mozilla 擴充套件做中文化,所以如果你有不懂的地方,不是你的錯,也請將問題傳至作者 Daniel Wang

  1. 認識擴充套件 .xpi 安裝檔案
  2. 在擴充套件中加入中文語言包
  3. 選擇編輯器
  4. 編輯中文語言檔案
  5. 編輯 install.js 檔案
  6. 一般注意要項

認識擴充套件 .xpi 安裝檔案

所謂的 .xpi 安裝檔案其實是一般的 zip 檔案。卸包後你應該會看到一個 install.js 安裝檔還有其它的資源檔案。資源檔案可以有兩種型式,一是另外壓縮,有 .jar 檔尾名的 zip 檔案(例如 extension.jar),二是未(另外)壓縮,以原本型式出現在次檔案夾的檔案。

extension.xpi 卸包後的範例(一)

install.js
extension.jar

extension.xpi 卸包後的範例(二)

install.js
resources/
 +- content/
 |  +- content.rdf
 |  +- extension.xul
 |  +- extension.js
 |  +- ..
 |
 +- locale/
    +- en-US/
       +- content.rdf
       +- extension.dtd
       +- extension.properties
       +- ...

其中,在 locale 檔案夾以下,你會看到其它以 ISO 語言代碼為名的檔案夾,如 en-US (English US 英文-美國)。中文的語言代碼是 zh-TW (臺灣),zh-HK (香港),與 zh-CN (中國大陸)。我們主要關心的是語言檔案夾裡的檔案,這些和 install.js 檔都是文字檔,都可以用支援萬國碼文字的編輯器檢視與修改。做中文化的更改會在以下幾節解釋。

在擴充套件中加入中文語言包

要在擴充套件裡加入你的語言的語言包,首先複製一份 en-US 語言檔案夾,並將之取名為你的語言代碼(例如 zh-TW)。打開新的語言檔案夾裡的 contents.rdf 文字檔,把所有的 en-US 字改成你的語言代碼,例如

<RDF:Seq about="urn:mozilla:locale:root">
  <RDF:li resource="urn:mozilla:locale:en-US"/>
</RDF:Seq>

變成

<RDF:Seq about="urn:mozilla:locale:root">
  <RDF:li resource="urn:mozilla:locale:zh-TW"/>
</RDF:Seq>

接下來,打開 install.js 文字檔,找如以下的程式碼(暗示:找 en-US 字):

var returnval = registerChrome(LOCALE | DELAYED_CHROME, calendarLocale, "en-US/");

把這行複製到它的下面,然後將 en-US 改到你的語言代碼,例如:

var returnval = registerChrome(LOCALE | DELAYED_CHROME, calendarLocale, "en-US/");
var returnval = registerChrome(LOCALE | DELAYED_CHROME, calendarLocale, "zh-TW/");

接下來將擴充套件重新包裝成 .xpi 檔。注意修改包裝後的檔案夾層級應與修改前的檔案夾層級一樣,例如假設你的 .jar 檔案原有以下的檔案夾層級:

 content/
 locale/

它不應變成

extension/
 +-  content/
 +-  locale/

最後將 .xpi 檔拖曳到 Mozilla 重新安裝擴充套件。如果安裝成功,那你以上動作應無誤。

選擇編輯器

要編輯中文語言檔案,你必需要有合適的編輯器。Mozilla 有些特定的檔案格式要求,所以你的編輯器最少要有以下的功能:

  1. 支援 UTF-8 文字檔型
  2. 可選擇檔案是否要有萬國碼檔案簽名 BOM (Byte Order Mark, U+FEFF)
  3. 支援逸出萬國碼 (escaped Unicode,\uXXXX) 的文字編碼

可惜的是在 Windows 2000 與 XP 上的 Notepad 沒有第二項的支援,所以你必須用其它的編輯器。以下是一些建議:

  1. UniRed: freeware,很好用
  2. SC UniPad: 測試版有字元數限制,正式版太貴了,功能好但可能不適用。

這些程式的使用請參見 Mozilla 地方化的工具

編輯中文語言檔案

現在你已經有了中文語言包,不過它顯示的仍是英文。接下來便是將英文介面翻譯成中文。要翻譯擴充套件你可以修改原檔案,重新包裝,然後重新安裝,不過這過程對部份人可能過於繁雜。建議你可以直接修改 Mozilla 安裝後的存檔,這可以在 Mozilla 安裝路徑下的 chrome 子路徑上看到,其出現型式依原來的資源檔案是否壓縮而定,例如: C:\Program Files\Internet\Mozilla1.6zh\chrome\chatzilla.jar 或是

C:\Program Files\Internet\Mozilla1.6zh\chrome\calendar\
 +- content
 +- locale
 |  +- en-US
 |  +- zh-TW  
 +- skin

(註:擴充套件也可能被存到你的個人設定檔(profile)裡。)

為避免檔案存取衝突,你要重新儲存這些檔案時應先關閉 Mozilla。另外,更改的部份要在 Mozilla 重新開啟後才會出現(雖然仍是要重新啟動 Mozilla,這可少去重新包裝 .xpi 檔與安裝的步驟)。

在你的語言檔案夾裡你會看到一個(或一些) .dtd 檔案。.dtd 檔定義程式介面的文字,你會看到許多行有如以下的語法:

<!ENTITY alarm.units.minutes  "minute" >

其中雙引號內的便是介面文字,將它翻成中文即可,如

<!ENTITY alarm.units.minutes  "" >

儲存時將 .dtd 檔存為 UTF-8 格式。注意 .dtd 檔不得有 BOM 開頭字元。

你的語言檔案夾裡,你可能也會看到一些 .properties 檔。這些檔是做對話框文字與非固定的介面文字的定義用的。它的文字格式是逸出萬國碼 (escaped Unicode),例如「一」將被存成「\u4E00」。

你會看到許多行有如以下的語法:

Cancelled=Cancelled

等號後面的是介面文字,將其翻成中文,例如

Cancelled=已取消

(或)

Cancelled=\u5DF2\u53D6\u6D88

.dtd 與 .properties 檔案翻譯完成後就好了。記得把你的作品(locale/zh-XX/ 部份)傳給擴充套件作者讓大家可以使用。

編輯 install.js 檔案

有些擴充套件的 install.js 安裝檔可能會尋問使用者是否要存檔到 Mozilla 的路徑或個人設定檔(profile),或者它可能有其它的對話框。為方便使用者,你可以翻譯對話框的文字。存檔時將檔案存為逸出萬國碼格式。

如果你翻譯安裝檔的話,你可能需要聯絡擴充套件的作者,問是否可以製作用你的安裝檔的擴充套件版本,或者你另外在自己的網站上提供給你的語言的版本。

一般注意要項

  1. 記得要改 content.rdf (把 en-US 改到 zh-TW)
  2. .dtd 檔是 UTF-8 格式,注意 .dtd 檔不得有 BOM 開頭字元
  3. .properties 檔是用 \uXXXX 表示字元的格式
  4. 存檔時記得要定期查你的存檔格式。
  5. Mozilla 啟動時有問題不會告訴你問題在那裡(例如你不知道是檔型錯誤或語法錯誤),所以記得一定要定時在 Mozilla 上測試。
  6. 建議初次安裝擴充套件前備份 c:/program file/mozilla.org/mozilla/chrome/installed-chrome.txt 檔。如果初次安裝擴充套件時有誤,可以還原 installed-chrome.txt 然後再試一次(不用重裝 Mozilla)

Questions or comments not answered in the FAQ can be submitted from our feedback page.
Copyright © 2000-2019. All rights reserved. Terms of Use & Privacy Policy.