» L10N (製品日本語化)

Mozilla Hackathon 2012 成果発表~翻訳グループ編~

7/28、29 日に行われた Mozilla Hackathon 2012 の成果発表の翻訳グループ編です。この記事では、ドキュメント翻訳や製品 L10N を行っていた人の成果を発表します。順番は順不同です。

※8/4 深夜に MDN が新システムに移行したのを受けて、MDN へのページへのリンクを書き換えました。

yyss さん

MDN 技術ドキュメントの翻訳。

ethertank さん

MDN 技術ドキュメントの翻訳。

ko さん

Mozilla 公式プロジェクトブログ記事の翻訳。

mar さん

製品 L10N 作業。

knagato さん

Fennec Beta の L10N。

dskmori さん

SUMO 記事の翻訳。

池田さん

Mozilla 開発者のブログ記事の翻訳。
pdf.js:PDF を HTML5 と JavaScript で表示する

濱崎さん

Mozilla Hacks ブログ記事の翻訳。

野田さん

Mozilla Verbaitam での Web サイト翻訳。

Mozilla Privacy ブログ記事の翻訳。

富田さん

Mitchell Baker のブログ記事の翻訳。
July 27th から July 5th まで訳しているが、まだラフドラフトなので、後ほど投稿。

potappo

MDN の新システムに関する調査やまとめ。

MDN 技術ドキュメントの翻訳。

MDN テンプレートで上手くコンバートされなかった部分の修正。

ハッカソン会場という特別な場で集中して作業できただけでなく、普段はオンラインでしか交流がない人にオフラインで会えたり、初心者の人はわからないところを詳しい人に訊けたりと、大変意義深いイベントだったと思います。参加者のみなさん、お疲れ様でした!

Moziila Verbatimに投稿してみました

突然の投稿失礼します。
誰でも参加できるコチラに投稿をさせていただきます。

私たちは,Mozilla Verbatimにおいて日本語翻訳を行いました。

そして、こちらの場所にも、洗練された投稿ばかりで、私の洗練されていない投稿をすることが非常に心苦しいですが、投稿をしてみました。

ここで、私が考えた翻訳の問題点を、もちろん既に議論がなされた点もあるかとは思いますが、簡単に挙げてみたいと思います。

  • 査読があまり行われていない
  • Verbatimが見つけづらい

このような問題があるのではないかと考えました。

査読について

査読については、査読のできるユーザ数を増やす必要があるのではと感じました。
せっかく翻訳しても、それが放置されていると現実があるので、選定は難しいと思いますけど、もう少しアクティブなユーザを増やす必要があるのではと感じました。

また、特定のユーザにだけ査読の権限を与えるのだけではなく、不特定のユーザに対する投票で、一定の超えたら査読を通すというシステムも考えられるのではないかと考えました。

Verbatimが見つけづらい問題について

オープンソースに関わりたいという人は少なくはないと思いますが、その中でプログラムを書ける人はそれほど多くはないのでしょうか。
つまり、私のようにプログラムを書くことはそれほど得意じゃなくても、何か貢献できればと考えていた人にも、Verbatimの存在を上手く伝えて、そのような人を取り込んでいければと考えてました。
FireFoxのスタートページを拡充(目に付くように)し、その中でVerbatimについてを記述することにより今まで目につかなかったような人にも伝えていければと考えました。

以上、簡単で申し訳ございませんが、こちらでを記述してみました。

ブランチの切り方

Rapid Release に切り替わったことで、mozja リポジトリは 6 週間毎に新バージョンに対応する作業を始める前に、ブランチを切る必要があります。ここでは簡単にブランチの作成手順を説明します。

まずは lot の src ディレクトリに移動して最新のチェンジセットを pull してください。

cd src/trunk
hg pull -u

次に現在の作業領域のブランチと既存のブランチ一覧を確認してください。
hg branch
# default と表示されることを確認
hg branches
# 次のようにブランチのリストが表示される:
# default                      716:4b441380456b
# l10n-mozilla-6.0             697:da8136038d5e
#     ... 中略 ...
# l10n-central                 190:8bb850322668 (非アクティブ)

作成したいブランチがまだ存在しないことを確認したら、新しいブランチを作成してください。

hg branch l10n-mozilla-7.0
# 作業領域が新しいブランチに切り替わる
hg commit -m "create l10n-mozilla-7.0 branch"

再度 hg branches でブランチが追加されたことを確認したら、ブランチを default に戻し、mozja リモートリポジトリに push します。

hg branches
# 次のように新しいブランチが追加される:
# l10n-mozilla-7.0             718:5ff4c7b544fc
#     ... 中略 ...
# default                      717:81d1dbc11c68 (非アクティブ)
# l10n-central                 190:8bb850322668 (非アクティブ)
hg up default
# リモートリポジトリにブランチを追加するので --new-branch を付ける
hg push --new-branch

あとは普通に default ブランチで新しいバージョン向けの作業を続けてください。

Mozilla のリポジトリ

Firefox や Thunderbird など Mozilla 製品のソースコードや言語リソースファイルは Github や Mercurial (HG) リポジトリで管理されています。ここではそのうち L10N に関連するリポジトリをリストアップしています。

Mozilla L10N 日本語リソースのリポジトリ

Mozilla & Comm リポジトリ (アプリケーション本体)

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 ファイル冒頭のメモを参照してください。

日本語化作業環境の準備

このページでは Mozilla アプリケーションの日本語化のための作業環境を用意する手順を解説します。

必要なものを用意する

作業環境を準備する前に、日本語化作業に必要なものを確認し、足りないものがあれば用意してください。各種コマンドにはパスを通しておくのを忘れないようにしてください。

手順を気にせず一気にセットアップする場合

次のコマンドを実行してください。

hg clone https://code.google.com/p/mozja.lot/ lot; cd lot
ant setupl10n

これだけでセットアップできます。簡単ですね。(・・)v

ユーザ設定の確認やリポジトリ clone の確認などが行われるので、それに答えていってください。英語リソースの zip をダウンロードするのではなく、差分も取れるように mozilla/comm リポジトリを clone する場合、1GB 程度の空き容量が必要となりかなり時間がかかります。

手作業ですべて1つずつセットアップする場合

詳細が気になる人、1つずつ作業したい人、lot を使わずセットアップしたい人は下の説明を読んでください。

Localization Tools を clone

hg clone https://code.google.com/p/mozja.lot/ lot
cd lot

自分で mozja リポジトリに push しないのであれば Mercurial (hg) を使う必要はありません。Localization Tools は FTP サイト に zip したものがありますので最新版をダウンロードしてください(ファイル名の revXXX は対応する hg リビジョン)。ただし lot が更新されたときには hg pull -u するだけで済むところを手動で入れ替える必要があります。

Localization Tools のユーザ設定ファイルを生成

ant genconf

指示に従って入力すると、ユーザ設定ファイル config/user.conf が生成されます。デフォルト設定のまま使う場合にはこの手順は省略できます。

mozja リポジトリの日本語リソースファイルを clone

ant clone-src

自分でリポジトリにコミットすることなく、修正したファイルを送付したりテストしたりするだけであれば、これで準備は完了です。

clone-src ターゲットでは mozja リポジトリを clone します。lot ではなく手動で処理したい場合、Trunk (Aurora対応) であれば次のコマンドを実行してください。

hg clone https://code.google.com/p/mozja/ src/trunk/

hg.mozilla.org の L10N リポジトリを clone

ant clone-locale

日本語の L10N SVN リポジトリ側だけで作業し、hg.mozilla.org の L10N HG リポジトリにコミット予定がない場合、HG リポジトリとの差分を確認する必要がない場合にはこの手順は不要です。

clone-locale ターゲットでは l10n hg レポジトリを clone して、.hg/hgrc の [path] セクションに default-push を自動追加します。lot ではなく手動で処理したい場合、Aurora であれば次のコマンドを実行してください。

mkdir l10n
hg clone http://hg.mozilla.org/releases/l10n/mozilla-aurora/ja l10n/aurora/ja
vi l10n/aurora/ja/.hg/hgrc
# 次の行を追加する:
# default-push = ssh://hg.mozilla.org/releases/l10n/mozilla-aurora/ja
hg clone http://hg.mozilla.org/releases/l10n/mozilla-aurora/ja-JP-mac l10n/aurora/ja-JP-mac
vi l10n/aurora/ja-JP-mac/.hg/hgrc
# 次の行を追加する:
# default-push = ssh://hg.mozilla.org/releases/l10n/mozilla-aurora/ja-JP-mac

hg.mozilla.org のリポジトリから英語リソースファイルを取得

# mozilla, comm リポジトリの clone には時間がかかります
ant clone-mozilla
ant clone-comm
ant get-en-US

各レポジトリから最新のファイルを取得せずとも少し古いファイルで構わない場合、特定のリビジョンを指定してファイルを取得する必要がない場合については、リポジトリを clone せずとも単に en-US の言語リソースをダウンロードしてくるだけでも構いません:

ant download-en-US

clone-mozilla, clone-comm ターゲットでは mozilla, comm レポジトリを clone します。get-en-US ターゲットでは各レポジトリから言語リソースファイルを抜き出して l10n レポジトリのディレクトリ構成で l10n/en-US ディレクトリにコピーします。lot に頼らず手動処理したい場合、Aurora 対応であれば次のコマンドを実行してください(get-en-US の手動処理は大変なので lot を使ってください):

hg clone http://hg.mozilla.org/releases/mozilla-aurora hg/mozilla-aurora
hg clone http://hg.mozilla.org/releases/comm-aurora hg/comm-aurora

リポジトリの取得方法について詳しくは MDC の Mozilla Source CodeL10N on Mercurial ページなどを参照してください。

Mercurial の設定

Mercurial を初めて使う場合などは忘れずに ~/.hgrc に設定しておきます:

[ui]
username = foo <foo@example.com>
merge = diff3
ignore = ~/.hgignore

[diff]
git = 1

[defaults]
add    = --encoding=utf-8
clone  = --encoding=utf-8
commit = --encoding=utf-8
init   = --encoding=utf-8
pull   = --encoding=utf-8
push   = --encoding=utf-8
remove = --encoding=utf-8
revert = --encoding=utf-8
update = --encoding=utf-8
diff   = -p -U 8

[web]
push_ssl = false

~/.hgignore ファイルに Mercurial が無視するファイルとして、エディタや OS が自動生成してしまうファイル、Subversion 管理ファイルなどを指定しておくと便利です。

syntax: glob
*~
.DS_Store
.svn
.hgignore

username や merge については各自適切に置き換えてください。
~/.hgrc に書いた設定はそのユーザが Mercurial を使用するときに常に利用されます。Mozilla 以外のリポジトリでは別の設定にしたい場合、その設定はリポジトリ毎の .hg/hgrc ファイルに記述してください。

hg.mozilla.org に push する際は SSH で接続しますので、SSH のアカウント設定を ~/.ssh/config で指定しておきます(推奨):

Host hg.mozilla.org
User user@example.com

あるいは ~/.hgrc で SSH ユーザ、サーバを指定することもできます:

[ui]
ssh = ssh user@example.com@hg.mozilla.org

日本語化作業に必要なもの

このページでは Mozilla 製品の日本語化 (L10N) に参加する際に必要なものについて説明します。

日本語版のレビューに必要なもの

日本語版の製品レビューをする上で特に必要なものはありません。

実際にテストしたり、リポジトリの差分を確認して気づいた点をフォーラムなどで報告していただくには、ブラウザさえあれば大丈夫です。

言語リソースの修正に必要なもの

日本語リソースや英語のソースコードは Mercurial リポジトリで管理されています。変更点を自分でリポジトリに反映しないのであれば、hg clone コマンドでリポジトリのファイルを取得する代わりに FTP サーバから ZIP ファイルをダウンロードすることもできます。ただし、更新時や差分の確認などがしやすい hg コマンドの利用を推奨します。

日本語リソースから xpi 言語パックを生成したり、英語のレポジトリから言語リソースファイルだけを取得したり、書き換えたファイルのエラーチェックなどを行ったりするには、Aapche Ant で書かれた Localization Tools を使います。

また、Google Code のリポジトリに変更を反映させるには、書き込み権限のある Google アカウントが必要です。権限のない人は変更後のファイルや差分ファイルを権限のある人に送るか、書き込み権限をリクエストしてください。

製品リリース作業に必要なもの

  • 上記のツール (ant, lot, hg)
  • hg.mozilla.org のアカウント
  • 各製品を Signoff する権限
  • 情熱 .(><).

製品リリースに使用するファイルを hg.mozilla.org の l10n リポジトリにプッシュし、サインオフする権限が必要です。

各ツールの入手方法

Windows では MozillaBuild 環境を推奨します。MozillaBuild 環境をインストールすると JDK + Ant 以外すべて揃います。C:¥mozilla-build¥start-l10n.bat を起動してください。CygwinMinGW などを使っていればそれでも構いません。Ant を使うにはシステム環境変数に JAVA_HOME, ANT_HOME, PATH の設定が必要になります。JAVA_HOME は “C:¥Program Files¥Java¥jdk1.7.0″ など、ANT_HOME は Ant の zip を展開したディレクトリ、PATH の末尾には “;%ANT_HOME¥bin” を追加してください。

Mac では MacPorts などを使用して必要なコマンドを揃えてください。各コマンドを個別にインストールしても構いませんが、個人的には MacPors を推奨します。

Linux は大丈夫だと思いますので、各自適当にどうにかしてください。

Localization Tools FAQ

今時何故 Apache Ant なんか使ってるの?

L10N 関連の自動化スクリプトを書き始めた時、マルチプラットフォームで比較的簡単に目的を果たす環境として Ant が便利だったからです。その後色々機能追加したり、世間の情勢の変化により、今となっては Ant であることに必然性はなくなっているのですが、Python などへの移植作業を行う時間が取れずにいます。

Apache Ant が動作しない

Linux の一部環境ではデフォルトの JDK のバージョンが古いため、Ant をインストールしても動作しないことがあります。ant help や ant -p などの基本的なコマンドでエラーが発生する場合は Ant が正しく動作していません。JDK と Ant のバージョンが最新 (少なくとも JDK 1.5 以降、Ant 1.8 以降) であるか確認し、古ければアップデートしてください。

Localization Tools のメッセージが文字化けしている

Mac OS X 10.4 などのデフォルト設定では lot (Java, Ant) の日本語出力が文字化けすることがあります。それは Ant (Java) の出力メッセージが Shift_JIS となっており、ターミナル側の設定と異なるからです。

ターミナルの文字セットエンコーディング設定を “Unicode(UTF-8)” と指定した上で、~/.bash_profile, ~/.bashrc などに UTF-8 で出力するように指定してください:

export ANT_OPTS=-Dfile.encoding=UTF8

Unable to locate tools.jar. Expected to find it in … といった警告メッセージが表示される

JDK をインストールしたが JAVA_HOME 環境変数が設定されていない場合や、JDK でなく JRE だけをインストールして Ant を実行すると表示される警告です。今のところ、通常のローカライズ作業範囲内のターゲットでは tools.jar (JDK) に依存するタスクを使用しておらず、動作に支障はないと思われます。

但し、JRE 上での実行は推奨しておりませんし、将来的には JDK に依存するタスクを常用するようになる可能性もあります。

… src/l10n/trunk/ja not found. といったエラーメッセージを表示して BUILD FAILED になる

lot には言語リソースファイルを同梱していません。以下のコマンドで言語リソースを取得してからご利用ください。

ant pull-src

Aurora ブランチ以外に Beta ブランチも対象に作業される場合は次のコマンドで言語リソースを取得してください。

ant forbeta pull-src

いずれも hg コマンドをキックするだけですので自分で l10n/src/trunk や l10n/src/beta などに hg clone (と hg up)しても結構です。

clone-mozilla ターゲットが終了しない

clone-mozilla は hg.mozilla.org から 1GB 近いリポジトリの clone を取得するコマンドです。普通に数十分かかるので暫く放置しておいてください。

Firefox 4 BetaX の日本語版について

Firefox 4 は現在 Beta 2 のリリース候補版が公開されており、間もなく Firefox 4 Beta 2 として一部の言語版がリリース予定です。これまでは通常、英語以外にもリリースするときには日本語版も同時にリリースしていますが、Firefox 4 Beta 2 には日本語版は含まれない予定です。

どうして日本語版が含まれないのか、いつから日本語版が含まれるようになるのか疑問に思う方もいらっしゃるかと思いますので、ここで少し書かせていただこうかと思います。

(さらに…)

LpDiff

LpDiff

LpDiff (Language Pack Diff) は Java で書かれた言語リソース差分解析ツールであり、バージョン間の差分を色分け表示したりリソース対照表を生成できます。
リソース対照表の出力は言語リソースファイル毎に個別の HTML を出力するだけでなく、フォルダ内の全リソースを一括比較した結果を 1 つの HTML ファイルにまとめて出力することも可能です。コマンドラインから使用することもできるため処理の自動化も可能であり、言語リソースのメンテナンスには欠か せないツールとなっています。

なお、このツールは既に Localization Tools へと統合されており、その一機能として使用することもできます。

使い方

LpDiff の使い方の解説を日英両言語、スクリーンショット付で用意しました。

  • LpDiff の使い方

ダウンロード

特に理由のない限り最新版をご利用になる事をお薦めします。なお、LpDiff は Java で書かれているため、ご利用になるには Java の実行環境が必要となります。 Java でコーディングされてはいますが、クロスプラットフォームを意識したコードとなっていないため残念ながら Mac OS X などでは動作しないようです。

  • (2004/09/23) LpDiff.20040923.jar
    “×” ボタンで終了時にプロセスが残るバグを修正
  • (2004/09/22) LpDiff.20040922.jar
    “>” を含む dtd の実体定義パースに失敗する問題を修正
  • (2004/02/11) LpDiff.20040211.1.jar
    新規ファイルのパス出力が間違っているバグを修正
  • (2004/02/11) LpDiff.20040211.jar
    新規フォルダ中のファイルを表示しないバグを修正
  • (2004/02/02) LpDiff.20040202.jar
    欠落していた css を同梱し、不正なコマンドライン引数や不正な保存先パスで異常終了するバグを修正
  • (2004/01/19) LpDiff.20040119.jar
    不正なパスの読み込みで異常終了するバグを修正
  • (2004/01/18) LpDiff.20040118.jar
    dtd ファイルの読み込みに関するバグを修正
  • (2002/09/24) LpDiff.20020924.jar
    properties ファイルの比較に関するバグなどを修正
  • (2001/01/10) LpDiff.20010110.jar
    古川さんによる最終版

このソフトウェアは MPL 1.1( 参考和訳) の下で配布されています。
バグや機能追加の要望などお気づきの点がありましたらこの Trac でチケットを発行するか、 L10N フォーラム までお知らせ下さい。

原作者と現メンテナ: 古川 良一, dynamis, kozawa