跳至內容

學科:MozTW文件專案/如何中文化Firefox擴充套件

來自維基學院

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

認識擴充套件 .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 有些特定的檔案格式要求,所以你的編輯器最少要有以下的功能:

支援 UTF-8 文字檔型 可選擇檔案是否要有萬國碼檔案簽名 BOM (Byte Order Mark, U+FEFF) 支援逸出萬國碼 (escaped Unicode,\uXXXX) 的文字編碼 可惜的是在 Windows 2000 與 XP 上的 Notepad 沒有第二項的支援,所以你必須用其它的編輯器。以下是一些建議:

  • UniRed: freeware,很好用
  • 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),或者它可能有其它的對話框。為方便使用者,你可以翻譯對話框的文字。存檔時將檔案存為逸出萬國碼格式。

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

一般注意要項

[編輯 | 編輯原始碼]

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

參考來源

[編輯 | 編輯原始碼]