CVS を使った Firefox のローカライズ
著者: Benjamin Smedberg <bsmedberg@covad.net>
Firefox は、集中化された 2 つの場所を通じてソースツリーからローカライズされます。Thunderbird と Firefox が共有している主要なローカライズファイルは、CVS ツリーの mozilla/toolkit/locales (LXR) にあります。また、Firefox のみが使用しているローカライズファイルは mozilla/browser/locales (LXR) にあります。
英語の元ファイルを入手
ローカライズ担当者は、次の 3 つの方法で、翻訳対象となる英語の元ファイルを取得できます。
- CVS レポジトリからファイルをチェックアウト
- Firefox のソースツリー全体 (TAR.GZ または ZIP アーカイブ) を mozilla.org の FTP サーバからダウンロード
- ロケールファイルの ZIP アーカイブをダウンロード (このアーカイブはリリース前のローカライズ確定時に提供されます)
CVS からソースファイルを入手
CVS からソースファイルを取得するのに CVS アカウントは必要ありません。mozilla.org の CVS サーバは、読み取り専用の anonymous アクセスが可能になっています。ソースコード全体をチェックアウトする方法を説明した こちらのドキュメント が参考になるでしょう。ロケールファイルだけを取得したい場合は、次のコマンドを実行してください。
cvs checkout mozilla/toolkit/locales
cvs checkout mozilla/browser/locales
Firefox 1.0 のソースは、メインの CVS トランクではなく、AVIARY_1_0_20040515_BRANCH という名前のブランチにあります。このブランチからロケールファイルをチェックアウトするには、CVS コマンドに必ず -r オプションを付けます。
cvs checkout -r AVIARY_1_0_20040515_BRANCH mozilla/toolkit/locales
ダウンロードした ZIP ファイルを展開
JAR、ZIP、XPI ファイルは、名前は違いますが、どれも同じアーカイブ形式です。これらはすべて unzip コマンドラインユーティリティか WinZip のような GUI ツールを使って展開できます。アーカイブファイルの入れ子構造 (XPI ファイルに含まれる JAR ファイルなど) を調べたい場合は 7-ZIP アーカイブエクスプローラを使うと良いでしょう。
Firefox 0.9(.x) の言語パックを変換
ソースツリーのディレクトリ構造は、Firefox の完成品のディレクトリ構造とは異なるため、Firefox 0.9(.x) のクローム JAR ファイルを新しい形式に変換する perl スクリプトを用意してあります。この perl スクリプトを実行するには Unix ライクな環境 (Linux、Mac OS X、Cygwin) が必要で、Windows では Cygwin がなければ動きません。お使いのマシンが Windows だけで、Cygwin をインストールできない場合は、IRC の #firefox チャンネルにいる bsmedberg か誰かに、あなたが持っているロケールファイルにこのスクリプトを実行してもらうよう頼んでください。このスクリプトは 1 回しか実行する必要はありません。また、次の 5 つのファイルが必要です。
ja-JP.jar(プラットフォームに依存しない言語クローム)JP.jar(地域クローム)ja-win.jar(Windows 用言語クローム)ja-mac.jar(Mac 用言語クローム)ja-unix.jar(Unix 用言語クローム)
repackage-0.9.pl はこちらからダウンロードできます。
スクリプトを実行するには、上の 5 つのファイルを空のディレクトリに置いて、そのディレクトリに移動 (cd) し、以下のコマンドを実行してください。
perl -w <repackage-0.9.pl へのパス> ja-JP
スクリプトの実行が完了すると、toolkit-ja-JP.jar と browser-ja-JP.jar という 2 つの JAR ファイルが生成されるはずです。
ローカライズの内容と元の英語版を比較
再パッケージスクリプトの実行が終わっても、まだいくつかのファイルをお使いの言語に手作業でコピーする必要があります。それは、プロファイル用デフォルトファイル (bookmarks.html など)、ローカライズした検索プラグイン、その他インストーラが必要とするいくつかのファイルです。どのファイルが必要かを把握できるよう、2 つの言語パックを比較できる別の perl スクリプトを用意しました。このスクリプトでは、ファイルが一致するかどうかと、DTD ファイルや .properties ファイルに同じローカライズエントリーがあるかどうかまで確認できます。言語パックをアップグレードしたときもこのスクリプトを実行する必要があるでしょう。このスクリプトは Mozilla ソースツリーの一部、mozilla/toolkit/locales/compare-locales.pl にあり、ZIP アーカイブと圧縮していないローカルディレクトリのどちらでも比較できます。この perl スクリプトは、Cygwin を必要としない ActiveState perl など、様々な perl で実行できます。例:
perl -w compare-locales.pl toolkit-en-US.jar toolkit-ja-JP
このコマンドでは、互換性のあるロケールパックを作るために解決しなければらない、一致しなかったファイルやその他の問題の一覧が出力されます。なお、この比較は絶対に確実というわけではありません。完全な構文解析ではなく、正規表現を使ってプロパティやエントリーをチェックするものです。もし間違いに気付いたら、bugzilla.mozilla.org の Firefox プロダクト、Build Config コンポーネントにバグを登録して知らせてください。
ローカライズファイルを CVS にチェックイン
ロケールパックが完成して、比較スクリプトが明らかなエラーを出さなくなったら、ローカライズの成果を CVS レポジトリにチェックインする準備が整いました。今まで一度も CVS を使ったことがない方は、ZIP アーカイブにしたロケールパックを私に送ってもらうのが一番良いでしょう。そうすれば、私が必要なディレクトリを CVS に追加して、送ってもらったファイルを commit します。CVS の使い方をご存じの方は、自分でファイルを commit してください。その場合、Firefox 1.0 のロケールパックは aviary ブランチにあり、新しいロケールファイルもそのブランチに commit するということを忘れないでください。
CVS レポジトリへの commit アクセス権を持っていない場合は、こちらの指示 に従ってアクセス権を手に入れてください。CVS アクセス権の承認に 3 人のスーパーレビュー担当は必要ありません。バグを登録するときに bsmedberg@covad.net を CC に入れてくれれば、あなたがローカライズチームのオーナーまたは共同作業者であることを私が保証します。