Mozilla の L10N システム

言語リソースファイル

Mozilla アプリケーションではメニューや設定画面などのユーザインターフェイスに表示される文字列は原則として言語リソースファイルと 呼ぶ、*.dtd ファイルや *.properties ファイルなどで、UI に使用する文字列(エンティティ)が定義されており、これらを日本語に翻訳することがローカライズ作業の基本です (厳密には他にもインストーラや設定関連のファイルなどで違う書式のものもある)。

dtd ファイルは例えば browser.dtd (en-US) -> browser.dtd (ja) のように、次のような書式になります:

<!-- コメントブロック -->
<!ENTITY entity.name    "表示する文字列"><!-- コメント -->

properties ファイルは例えば browser.properties (en-US) -> browser.properties (ja) のように、次のような書式になります:

# コメント行
entity.name = 表示する文字列

いずれのファイルも文字コードは UTF-8 です。Java の properties ファイルと異なり、Escaped Unicode 形式にする必要はありません(昔は Escaped Unicode でした)。

リポジトリ

Firefox や Thunderbird などのアプリケーション本体のレポジトリは次の URL で公開されています。

英語版の言語リソースもこのソースコードの中の様々なディレクトリに分散した形で含まれています。英語以外の言語については、言語リソースだけを集めてディレクトリを再配置したものを以下の L10N HG リポジトリで管理しています。

日本語版については他の言語と異なり、Windows/Linux と Mac とで OS の用語が大きく違うため、ja と ja-JP-mac という 2 つのロケールを管理していますが、平行して2つのファイルを修正していくのは大変なので、差分にあたる部分だけを変数として分離したファイルを編集し、機械的に置き換え処理を行った後のファイルを上記の HG リポジトリに入れています。

そのための元となる ja/ja-JP-mac 共通言語リソース、自動変換スクリプトなどは別途 mozja リポジトリで管理しています。

Firefox や Thunderbird の日本語 L10N を行う場合には、この日本語共通言語リソースを編集し、ja/ja-JP-mac 切り分けた言語リソースを生成、言語パックをビルドして実際の UI で確認するというのが基本的な流れになっています。

開発版のリポジトリではなく、リリース版やベータ版などについてはリポジトリリストを参照してください。

ディレクトリ構成

アプリケーション本体のリポジトリにおける英語ファイルのディレクトリ構成、L10N リポジトリでのディレクトリ構成、言語パック中のディレクトリ構成は全て異なります。それぞれのディレクトリ構成での言語リソースファイルの対応関係については、随時変化するため公式なドキュメントはありません。

日本語 Localization を行う上では、ディレクトリ構成の自動変換を Localization Tools が全て自動的に行うようにしているため、基本的には違いを意識する必要はありません。

L10N リポジトリ内の各ディレクトリに入っているものについては ja.status ファイル冒頭のメモを参照してください。