Pootleと日本語翻訳の状態

日本語化したUpdate1を試していたら、メニューがほとんど日本語表示されていないことに気がつきました。以前より悪くなっているような気がします。

Value Chain

翻訳活動に参加されている方は、Pootle上で翻訳入力した内容がどのようにXOのソフトウェアに入るのかをご存知ない、あるいは実際に入ったものを確認するところまで見届けられていないのではないかと感じます。ここでは、XOのディストリビューション側から上流(Pootle)に遡って、何が起きていたのか見てみます。

(1) ディストリビューション
OLPCプロジェクトの対象国でないものも含めて、Update1のOSイメージには(ファイルが存在する)全ての言語のコンパイル済翻訳データ(MOファイル)が含まれています。ちゃんと日本語用のものも入っていました。

(2) gitリポジトリ
gitリポジトリに登録されているPOファイルが、OSイメージのビルドの際に使われます。リポジトリhttp://dev.laptop.org/git から閲覧できます。
たとえば sugarの ja.poは ここ です。中を見てみると、

  • sugarのPOの場合、翻訳が編集されたのは2008/1/4が最後である。
  • Fuzzyフラグがついたレコードが非常に多い。Fuzzyレコードはコンパイル時に無視されるため、実行時の翻訳には使われません。翻訳はちゃんと入力されているのに、これは非常にもったいないです。

(3) Pootle
Pootleで入力された翻訳データは、Pootleサーバー上のローカルファイルで管理されており、そのままではリポジトリとは別管理です。Pootle上の翻訳プロジェクト(たとえば Sugar/Japanese)の管理者がコミット操作を行って、はじめて Pootle上の翻訳データがgitリポジトリに登録されます。
gitへのコミットがいつ行われたかは、gitで履歴を照会するしかないと思います。たとえば、sugar/jaであれば、これです。日本人参加者はコミットしていなくて、誰か (Markusさん?)がまとめてコミットしてくれたようです。
日本語のコミットはこの2008/2/1のMarkusさんの操作が最後です。

※Etoysについては、Etoys-notifyメーリングリストに、Tracチケットの更新・新バージョンのビルドなどのイベントとともに、gitへのコミットのログが自動的に投稿されます。他のプロジェクトも似たようなことしてくれると追いかけるのが楽なのですが、、、

なぜコミットされないかの推測

  • そもそもコミットしないといけないということが理解されていない?
  • 「翻訳が完成したらコミットする」というように誤解されている→Fuzzyも含めて、完成させる活動はしないといけません。でも未完成だとしても、あるマイルストーンに来たと当事者が思ったらどんどんコミットしてよいと思うのですが。
  • コミットしていい期間を過ぎているから、コミットしてはいけないと誤解されている。下流のOSビルドのスケジュールに間に合うようにコミットすれば取り込まれるというだけで、ビルドの後でも必要ならコミットすればいいはずです。実際、ドイツ語は6月のコミットの履歴がありますよ。
  • 翻訳データはPootleからPOを直接ダウンロードして入手するものと思われている。Wikiの日本語化の手順もそうなってますね。でもこれはコミットされる前の最新データを入手する方法です。コミットして、OSビルドに取り込んでもらうのが本道です。

Fuzzyレコード

Pootle上の日本語のプロジェクトには、Fuzzyレコードの割合が表示されています。(グラフ表示の灰色部分がFuzzy)Fuzzyがかなりの量あることがわかります。せっかくの翻訳者のみなさんの貢献が取り込まれていないのは本当にもったいないです。
あとあまり知られていないのですが、更新されたPOTがマージされるタイミングで、いままで有効だったレコードが無効になったりFuzzyになることもあります。ですからPOTの更新タイミングも追いかけておく必要があります。

まとめ

  • gitにコミットされるまでが翻訳プロジェクトの範囲→OSビルドのスケジュールを確認して、Pootle上と積極的に同期してOSビルドに渡していくことが必要
  • fuzzyは未翻訳と同じ→レビューしてfuzzyをつぶすところまでが翻訳プロジェクトの範囲

Pootleを使っていると、システムに向かって翻訳を入力するのが作業範囲と思いがちですが、Pootleでできないところのマネージメントや人間系の活動が非常に大事なことがわかります。