最新の英語リソースと同期させるには
このページでは Mozilla アプリケーションの日本語リソースを、新バージョンの製品用に更新する手順について説明します。
はじめに
新バージョン対応ではなく、既存バージョンの翻訳を修正するだけならもっと簡単です。日本語リソースを修正するには ページを参照してください。製品リリースに向けて hg.mozilla.org のリポジトリへプッシュし、リリース用リソースとして Sign-off する場合には「製品リリースに向けて」ページを参照してください。
Mozilla アプリケーションの新バージョンに対応するため、英語リソースの差分を元に日本語リソースを最新のビルド用に更新する場合にこのページの手順に従って作業してください。日本語化作業環境として Mercurial と Ant が使用できることを前提としています。
新バージョン対応を始める前に旧バージョンのブランチが切られていない場合、先に「ブランチの切り方」に従ってブランチを作成してから作業してください。
作業概要
同期作業の流れは大まかに次のようになります。
- 現在の日本語リソースが対応する英語リソースのリビジョンを確認する
- 前回同期時(以前)の英語リソースと最新のものを取得し、差分ファイルを生成する
- 英語リソースの差分ファイルを見ながら日本語リソースを書き換える
- 更新後の日本語リソースに過不足や構文ミス、用語ミスがないか確認する
- 同期作業が完了したら同期対象リビジョンを明記してリポジトリにコミットする
日本語リソースの同期作業は、対象となるアプリケーションのディレクトリ単位で行われることが多いです。異なるリビジョンに同期した複数のディレクトリのファイルを同期する場合、ここに書かれた手順をそれぞれ繰り返してください。
なお、ここで言及するディレクトリパスは、lot のディレクトリ(build.xml を含む)に対する相対ディレクトリとします。
作業環境の準備または更新
初回であれば日本語化作業環境の準備にあるとおり、Localization Tools (lot) と言語リソースファイルを取得します:
hg clone https://code.google.com/p/mozja.lot/ lot; cd lot
ant setupl10n
このとき英語版のファイルについて、mozilla/comm リポジトリ (約1GB) を clone するか、取りあえず zip ファイル (約2MB) をダウンロードするか確認されます。今後英語の任意のバージョン間差分を取得するには clone してください。
次回からは次のように Localization Tools (lot) と日本語リソース、英語版ファイルを最新のものに更新します:
hg pull -u
ant pull-src pull-mozilla pull-comm
# または直接 hg コマンドで:
# hg -R src/trunk pull -u
# hg -R hg/mozilla-aurora pull -u
# hg -R hg/comm-aurora pull -u
英語リソースの差分を生成する
英語リソースとの同期作業時にはどのディレクトリを en-US ファイルのどのチェンジセット(リビジョン)と同期したか ja.status ファイルに記録していますので、それを見て確認してください。適切に記録されていない場合は Changes のコミットログなどを参照して前回同期時のリビジョンを調べてください。ここで確認した changeset id (12桁英数字)を $MOZ_OLDREV, $COMM_OLDREV とします。
現在同期している古いリビジョンの英語リソースと、最新英語リソースの差分は次のコマンドで生成できます:
ant diff-revisions -Dmozrev1=$MOZ_OLDREV -Dcommrev1=$COMM_OLDREV
l10n/aurora ディレクトリ配下に指定したリビジョンと最新の英語リソースファイルを含むディレクトリが作成され、それらの差分ファイルが生成されます。ファイル名中の番号はそれぞれ mozilla/comm リポジトリの新旧リビジョン番号です。
日本語リソースを更新する
英語リソースの差分ファイルを確認しながら src/l10n/trunk/ja ディレクトリの日本語リソースを更新していってください。エンティティの値の変更だけでなく、エンティティ名やコメント行の追加削除についても忘れず反映してください。
日本語リソースを更新したら、次のコマンドで src/l10n/trunk/ja の共通日本語リソースから ja.filters の定義に従い l10n/aurora/ja, l10n/aurora/ja-JP-mac ディレクトリに個別の言語リソースを生成します:
ant convert
途中の上書き確認などをスキップして自動実行する場合は auto ターゲットを先に実行させます:
ant auto convert
このとき同時に構文エラーや用字用語違反など基本的な問題がないか確認されます。問題なければ BUILD SUCCESSFUL と表示され完了します。重大なエラーが見つかった場合はその旨表示してから BUILD FAILED と出力されます。
用語エラーや使用文字エラーについては検出された用語や文字が [WORDERROR[使用禁止語句]WORDERROR] のようにマークされるので、その部分を適切や用語や文字に変更するか、プラットフォーム依存用語の変数 @@VARNAME@@ で置き換えるなどしてください。PluralForm エラーについては問題ないものもあります(ビルド停止しません)。分からなければ無視してください。
エラーがなければ、次は英語リソースと比較してエンティティの過不足がないか確認します:
ant compare
ant compare -Dlocale=ja-JP-mac
ファイルやエンティティの過不足を確認し、追加すべきエンティティと削除すべきエンティティが表示される他、アクセスキー比較や重複エンティティの確認などが行われます。出力されたメッセージを参照しながら同期作業の抜け落ちやミスを修正してください。
構文エラーや用語エラー、あるいは過不足比較の結果はコンソールに出力されるだけでなく、log ディレクトリのファイルにも出力されます。必要に応じて参照してください。
言語パックを生成して確認する
Localization Tools では Firefox の言語パックは buildfx、Thunderbird は buildtb、Seamonkey は buildsm などのターゲットで生成できます:
ant auto buildfx
重大なエラーが検出されなければ dest/aurora/langpack ディレクトリに言語パックが生成されるので、それを Aurora ビルドにインストールして動作確認してください。英語版にインストールする場合は about:config で general.useragenet.locale を ja に変更してから再起動してください。
新しい日本語リソースをリポジトリに反映する
L10N SVN ファイルのステータスと差分を確認するまずは他の人のコミットと競合していないか、自分の修正は意図した通りか最終確認してください。
cd src/trunk
hg pull -u
hg status
hg diff
問題なければ最後に、新しく同期している英語リソースが分かるように、ja.status ファイルにどのディレクトリをどのリビジョンと同期したか書き残してください。
ディレクトリ全体ではなく途中まで同期した段階で push する場合、英語リソースの差分ファイルのうち、未処理部分だけを ja.todo ファイルに残してください。その続きを作業するときや引き継いだときには ja.todo ファイルの差分から完了部分を削除してください。
それでは、コミット、プッシュして完了です:
hg commit -m "sync toolkit with en-US rev$MOZ_NEWREV+$COMM_NEWREV"
hg push
cd ../..
mozilla, comm リポジトリを clone していない場合
mozilla-aurora, comm-aurora リポジトリを clone していなければ ant diff-revisions コマンドが使えません。ant clone-mozilla clone-comm コマンドで clone してから差分を生成するか、以下のように新旧の英語リソースを含んだ zip ファイルをダウンロードして手動で差分を生成してください(これはあくまでも非常手段で、clone することを推奨します)。
上記同様に、ja.status ファイルを見て現在同期している英語リソースのチェンジセット(リビジョン)を確認したら、新旧英語リソースの zip パッケージをダウンロードします。
mozilla/comm リポジトリから言語リソースファイルだけを抜き出し、L10N リポジトリと同じディレクトリ構造に整理したものを zip パッケージにして定期自動生成しています。
元の mozilla-central リポジトリのリビジョンを $MOZ_REV、comm-central リポジトリのリビジョンを $COMM_REV として、en-US-${生成日時}-rev$MOZ_REV+$COMM-REV というファイル名になっています。最新のファイルと、先ほど確認した$MOZ_OLDREV, $COMM_OLDREV 以前のファイルを含む zip パッケージをダウンロードします。
changeset id を http://hg.mozilla.org/releases/mozilla-aurora 右上のテキストボックスに入力すると、該当 changeset 以前のログが表示されます。これを使って changeset id の新旧が比較できます。前回同期した changeset の日時を調べ、その前の日付の zip を探してください。
zip ファイルが見つかったら両方展開し、diff コマンドで差分を生成してください:
unzip en-US-rev$MOZ_OLDREV+$COMM_OLDREV.zip -d l10n
mv l10n/en-US l10n/en-US-rev$MOZ_OLDREV+$COMM_OLDREV
unzip en-US-rev$MOZ_NEWREV+$COMM_NEWREV.zip -d l10n
mv l10n/en-US l10n/en-US-rev$MOZ_NEWREV+$COMM_NEWREV
diff -ru l10n/en-US-rev$MOZ_OLDREV+$COMM_OLDREV l10n/en-US-rev$MOZ_NEWREV+$COMM_NEWREV > en-US-rev$MOZ_OLDREV+$COMM_OLDREV-rev$MOZ_NEWREV+$COMM_NEWREV.diff
もちろん実際に同期していたリビジョンより古いものとの差分になるため、一部の差分は既に日本語リソースに反映されていることになります。その部分については作業済みとして単に無視すれば OK です。
注意事項
- lot を使っていて文字化けやエラーが発生するなども問題が生じる場合は、lot の FAQ ページをご覧ください。
- 日本語リソースに過不足がある場合、別バージョンの Firefox にインストールしてしまった場合、XML パースエラーで Firefox が起動しなくなることがあります。その場合はセーフモードでアドオン(言語パック)を無効化して起動するか、プロファイルディレクトリの extensions ディレクトリ配下にインストールされた言語パックファイルを削除してください。
- 日本語ファイルの過不足を英語ファイルでマージした言語パックを作りたい場合は ant convert insertnew buildfx などとします。詳しくは Localization Tools のページの説明をご覧ください。
- JDK 環境によっては compare 時に StackOverflowError? が発生することがあります。そのような場合はスタックサイズを大きくして実行してみてください:
export ANT_OPTS=-Xss10M