試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Firefoxの日本語言語パックからiceweasel向けの日本語言語パックを作成してインストールする

Firefoxの日本語言語パックでは、「Firefox」というアプリケーション名が使用されていたり、「FirefoxとそのロゴがMozilla Foundationの商標」という記述があったりするのだが、iceweaselとして使用する場合、これらを修正したほうが、よりiceweaselらしくなる(Debian版では修正されている)。
ここでは、Firefox向け日本語言語パックを元にiceweasel向け日本語言語パックを作成する手順についてを扱う。

  1. 言語パック(xpiファイル)の場所と内容
  2. 変更する部分
  3. 修正作業例
  4. 言語パックを直接組み込む

言語パック(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向けとして変更するファイルは

  • locale/branding/brand.dtd
  • locale/branding/brand.properties
  • locale/browser/aboutDialog.dtd

の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          "&#169;1998-2008 Contributors. All Rights Reserved. Firefox and the
                                 Firefox logos are trademarks of the Mozilla Foundation.  All rights
                                 reserved.">

これらを修正するのだが、作業としては、

に置換し、更に、コピーライト表記の「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()関数内)を参考にした。
インストールディレクトリというのは、extensionschromepluginsなどのディレクトリを含む階層で、MOZILLA_FIVE_HOMEという環境変数で指定される場所。
(2008/4/4)この記事中の作業を自動化するスクリプトを作成した。
(2014/10/3)サーバのURLを修正

使用したバージョン:

*1:実際にはlangpack-ja@firefox.mozilla.orgのような名前になる