カスタム言語パックの作り方

このページでは、標準の言語リソースを元に、方言版やひらがな版のような、カスタム言語パックを作成する手順を説明します。

作業に必要なもの

  • Java 1.5 以降 (?)
  • Apache Ant 1.7.0 以降
  • Perl
  • Subversion
  • UTF-8 対応テキストエディタ
  • 理想(謎)

Linux では適当に、Mac では MacPorts などを使用して必要なコマンドを揃えてください。
Windows では Cygwin を導入するか、Java, Ant 以外については Cygwin のバイナリを ZIP にまとめた次のファイルをダウンロードし、ご利用ください。

note: devpack をご利用になる場合は展開したディレクトリを環境変数 %PATH% に追加してください。

作業概要

カスタム言語パックは標準の日本語パックを地道に書き換えていけば作成できますが、それではオリジナルの日本語版が更新されるたびに追従していく必要があります。特に新しいバージョンに対応するときには多大なメンテナンスコストがかかってしまいます。

そこで、標準の言語リソースを元にどのように書き換えるか定義する文字列置き換え表を用意すれば、最新の言語リソースを元にしたカスタム言語パックをいつでも生成できるようにしています。

語尾を書き換えて方言版、漢字を置き換えてひらがな版、OS 依存用語を置き換えて Soralis 版、その他何でも自由に作成してみてください。

環境構築

作業開始時には作業用スクリプトと言語リソースを取得してください。

  1. L10N SVN から Localization Tools (lot) を export
    svn export http://svn.mozilla.l10n.jp/trunk/lot
    cd lot
  2. L10N SVN から日本語リソースファイルを checkout
    svn checkout http://svn.mozilla.l10n.jp/trunk/ src/l10n/

    但し、L10N SVN のアカウントを持っており、サーバにコミット予定がある場合は svn+ssh で checkout

    svn checkout svn+ssh://username@svn.mozilla.l10n.jp/usr/local/var/svn/l10n/trunk/ src/l10n/

ここまでは初回のみ必要な準備であり、同期作業をする毎に繰り返す必要はありません。

作業手順

カスタム言語パックのロケール名を ja-JP-example とします。各自作成する言語パックに合わせて読み替えてください。

  1. 文字列置き換え表ファイル ja.example.replace を作成(更新)する

次のように、各行に置き換え前後の文字列をカンマ “,” 区切りで定義して、src/l10n/ja.example.replace ファイルとして保存してください。

# # で始まる行はコメント行
# 置き換え前の文字列,置き換え後の文字列
Mozilla,もじら
Firefox,Shiretoko
既定値,デフォルト
既定の,デフォルト
既定,デフォルト
プライベートブラウジング,こそこそモード
# 必要に応じて正規表現置き換えも行える
# /置き換え前の正規表現/置き換え後の文字列/
/(ENTITY\s+addons.label\s+)"アドオン"/\1"アドオンマネージャ"/
/^(nv_done\s*=\s*)完了$/\1読み込み完了/

すべての言語リソースに対して、上から定義された順に置き換え処理を行っていきます。文脈に依存する場合は前後の文字列を含めて置き換えるように定義して ください。前後の文字列だけでは求めるエンティティだけを特定できない場合、上の例のようにエンティティ ID も含めて指定してください。

  1. カスタム言語パックを生成する

次のコマンドで ja-JP-example ロケールの言語パックを生成できます。

ant auto buildfx -Ddoreplace=true -Dreplace.file=l10n/ja.example.replace -Dlocale=ja -Dlangpack.locale=ja-JP-example

毎回多数のプロパティをコマンドラインの引数で指定するのが面倒な場合は、次のような config/user.conf ファイルを作成してください。

doreplace       = true
replace.file    = l10n/ja.example.replace
locale          = ja
langpack.locale = ja-JP-example

言語パックを配布する際には langpack.conf で定義されている package.guid, package.name, package.description.em などといったプロパティについても設定するか、テンプレートファイル src/langpack/firefox/install.rdf を直接書き換えてください。特に package.guid を設定しなければ標準の言語パックを上書きインストールすることになるので注意が必要です。

  1. カスタム言語パックをインストールして UI を確認する

about:config で general.useragent.locale の設定値を ja-JP-example に変更し、生成された言語パックをインストール、再起動します。
UI を確認して意図通りに変更されているか確認してください。まだ書き換えたいところや、意図通りになっていないところがあれば、手順 1 に戻って文字列置き換え表に定義を追加や修正してください。

注意事項

Firefox 以外のアプリケーションの言語パックについて::

Thunderbird などのカスタム言語パックについても buildfx ターゲットを buildtb に読み替えるなどするだけで、ほぼ同様にして作成できます(説明割愛)。

自動ロケール切り替え機能などについて::

標準で作成される言語パックは最小限の機能(ロケールファイルを追加する)しかないパッケージです。
インストールしただけでロケールを切り替える機能などが欲しい人は各自追加してください。標準機能として追加される予定はありません。

特定ファイルだけを置き換えたい::

現在のところファイル名を指定して置き換える機能は実装していません(一応可能ですが複雑なので手順割愛)。
需要が高ければ実装も検討しますが、そのような高度な処理が必要な場合は別途スクリプトを書いて処理する方が適していると思います。

Firefox 3.0 用の言語パックを作成したい::

現在の lot では Firefox 3.0 以前をサポートしていません。また、Firefox 3.0 以前をサポートしていた古い lot にはカスタム言語パック作成のための機能が備わっていません。
l10n/ja, l10n/ja-JP-mac のファイルを

cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/l10n checkout l10n/ja
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/l10n checkout l10n/ja-JP-mac

コマンドで取得できる言語リソースファイルに置き換え、

ant auto clean prepare modify errorcheck pack

といったコマンドを実行することで一応生成できるハズですが、install.rdf の記述など調整が必要になります。