Firefoxの日本語言語パックからiceweasel向けの日本語言語パックを作成してインストールする
Firefoxの日本語言語パックでは、「Firefox」というアプリケーション名が使用されていたり、「FirefoxとそのロゴがMozilla Foundationの商標」という記述があったりするのだが、iceweaselとして使用する場合、これらを修正したほうが、よりiceweaselらしくなる(Debian版では修正されている)。
ここでは、Firefox向け日本語言語パックを元にiceweasel向け日本語言語パックを作成する手順についてを扱う。
言語パック(xpiファイル)の場所と内容
Mozilla公式の日本語言語パックはdownload.cdn.mozilla.net/pub/mozilla.org/firefox/releases/[バージョン]/linux-i686/xpi/
以下にある。ディレクトリ名に「i686」を含んでいるが、xpiファイルに関してはCPU依存の機械語ファイルを含まず、基本的にテキストデータのみなので、x86_32でなくても使える。
言語パックのファイルja.xpiはZIP圧縮ファイルで、中には
という3つのファイルがある。
chrome/ja.jarも同様にZIP圧縮ファイルとなっていて、中には日本語メッセージなどの書かれたファイル群が含まれている。
変更する部分
iceweasel向けとして変更するファイルはの3つ。ファイルの場所は、chrome/ja.jarに含まれるパスとする。
以下は、それぞれのファイルの内容(引用)。
$ cat locale/branding/brand.dtd <!ENTITY brandShortName "Firefox"> <!ENTITY brandFullName "Mozilla Firefox"> <!ENTITY vendorShortName "Mozilla"> $ cat locale/branding/brand.properties brandShortName = Firefox brandFullName = Mozilla Firefox vendorShortName = Mozilla homePageSingleStartMain = Firefox Start - 組み込みの検索エンジンによるスタートページ homePageImport = %S からホームページ設定をインポートする homePageMigrationPageTitle = ホームページの選択 homePageMigrationDescription = 使用するホームページを選択してください: $ cat locale/browser/aboutDialog.dtd <!ENTITY aboutDialog.title "&brandFullName; について"> <!ENTITY copyright "クレジット"> <!ENTITY copyright.accesskey "C"> <!ENTITY aboutLink "&brandFullName; について"> <!ENTITY aboutLink.accesskey "A"> <!ENTITY aboutVersion "バージョン"> <!ENTITY copyrightInfo "©1998-2008 Contributors. All Rights Reserved. Firefox and the Firefox logos are trademarks of the Mozilla Foundation. All rights reserved.">
これらを修正するのだが、作業としては、
- 「Mozilla Firefox」を「Iceweasel」
- 「Firefox」を「Iceweasel」
に置換し、更に、コピーライト表記の「Firefox and the ... reserved.」の部分を削除することとなる。
修正作業例
$ wget download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/3.0b4/linux-i686/xpi/ja.xpi $ mkdir work; cd work/ $ unzip ../ja.xpi inflating: install.rdf inflating: chrome/ja.jar inflating: chrome.manifest $ rm ../ja.xpi -f $ mkdir tmp; cd tmp/ $ unzip ../chrome/ja.jar (出力略) $ sed -i -e 's:Mozilla Firefox:Iceweasel:' -e 's:Firefox:Iceweasel:' locale/branding/brand.* $ sed -i -e 's: Firefox and the:">:' -e 's: Firefox logos are trademarks of the Mozilla Foundation. All rights::' -e 's: reserved.">::' locale/browser/aboutDialog.dtd $ rm ../chrome/ja.jar -f $ find -print0 | xargs -0 zip -9 ../chrome/ja.jar -@ $ cd ../ $ rm tmp/ -fr $ find -print0 | xargs -0 zip -9 ../ja.xpi -@ adding: chrome.manifest (deflated 78%) adding: chrome/ (stored 0%) adding: chrome/ja.jar (deflated 12%) adding: install.rdf (deflated 47%) $ cd ../ $ rm work/ -fr
言語パックを直接組み込む
一般ユーザが後からxpiファイルを開いて追加するのでなく、既にインストールされているiceweaselの中に直接組み込むためには$ mkdir work; cd work/ $ unzip [ja.xpiの場所] $ ls -F chrome/ chrome.manifest install.rdf $ sudo mkdir [iceweaselのインストールディレクトリ]/extensions/$(sed -n -e '/<\?em:id>\?/!d; s/.*\([\"{].*[}\"]\).*/\1/; s/\"//g; p; q' install.rdf) $ sudo cp -r ./* [iceweaselのインストールディレクトリ]/extensions/$(sed -n -e '/<\?em:id>\?/!d; s/.*\([\"{].*[}\"]\).*/\1/; s/\"//g; p; q' install.rdf) $ cd ../ $ rm work/ -fr
のようにする。extensionsディレクトリの下のディレクトリ名部分*1の取得方法は、Gentoo Linuxの/usr/portage/eclass/mozextension.eclass(xpi_install()関数内)を参考にした。
インストールディレクトリというのは、extensionsやchrome、pluginsなどのディレクトリを含む階層で、MOZILLA_FIVE_HOMEという環境変数で指定される場所。
(2008/4/4)この記事中の作業を自動化するスクリプトを作成した。
(2014/10/3)サーバのURLを修正
使用したバージョン:
- Firefox 3 Beta 4
*1:実際にはlangpack-ja@firefox.mozilla.orgのような名前になる