学科: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)

参考来源[编辑 | 编辑源代码]