ファイルの変更内容をPEAR マニュアルの翻訳者が 追跡することを支援するツールはありますか?

翻訳作業に携わるということは、 単に英語のファイルを翻訳し結果をコミットするだけで終わりません。 英語ファイルの内容にあうように 翻訳済みのファイルをアップデートすることにも、 たくさんの労力が必要となります。 英語ツリーのファイルに加えられた変更を追跡するためには、 PEAR ドキュメンテーション メーリングリスト を購読し、コミットメッセージやアーカイブを読むべきです。 ファイルが更新されなければ、翻訳の利用価値がなくなっていきます。

更新するべき場所がどこなのかに加え、 いつ・だれがそのファイルを翻訳したのかということがわからなければ、 翻訳済みファイルの更新は困難となります。 そこで、PEARには、 peardoc のファイルの変更日および リビジョンを追跡するシステムがあります。

リビジョンコメント

中央の単一ファイルに全情報を保持するシステムとは異なり、 リビジョンコメントのシステムはファイルごとに情報をストアします。 翻訳者・リビジョン番号およびステータス情報に関する情報を、 リビジョンコメントに格納します。 それではサンプルのファイルのヘッダがどのようなものか見てみましょう。 bookinfo.xmlファイルです。

<!-- EN-Revision: 1.16 Maintainer: jane Status: ready -->

翻訳の更新がされた最後の英語ファイルのリビジョン番号 (EN-Revision: 1.16)、および、 翻訳者の CVS アカウント名が記されています。 必要ならば、いくぶんかのステータス情報を追加することができます (例、部分的な翻訳に対しては"partial")。 このリビジョンコメントのシステムでは、情報を 中央の1つの場所ではなく、各 XML ファイルに記述します。 英語ツリーには 1300 以上ものファイルがあるので、このほうが非常に便利です。

現在、3 つのフィールド (英語リビジョン・メンテナ・状態) すべてが必須項目です。 メンテナ (Maintainer) は CVS のユーザ名、 あるいは空白文字のないニックネームを用います。 状況 (Status) は空白なしで何でもでありです。 このヘッダは、CVS によって、 (自動的に更新される $Revision と異なり) 自動的に更新されませんので注意してください。 自分自身で編集し、更新します。

リビジョンコメントの良さは理解いただけたことと思います。 ただし、リビジョンコメントを使用すると、 (1ファイルに全情報を記述した場合と異なり) 翻訳済ファイルのリストをさっと見ることはできなくなります。 しかし、より良いリストを得ることができます。 /peardoc/ ディレクトリで以下のコマンドを実行すると、 翻訳済ファイルの全リストを作成できます。

./scripts/revcheck_pear.php xx > revcheck.html
ここで、xx は仮の言語コードです。 このスクリプトを実行させると、 同ディレクトリに revcheck.html が作成され、 指定した言語の全ファイルのリビジョンの比較や、diff への リンクが纏められています。 さらに、メンテナの名前をパラメタとして付加すると、 指定したメンテナが係わったファイルのリストを得ることもできます。

このスクリプトには、生成される HTML ページに対して適用できる いくつかのオプション拡張があります。 translation.xml というファイルはこの拡張ためにあります。 以下は、仮の xx 言語向けのシンプルなな translation.xml のファイルです。

<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE translation SYSTEM "../dtds/translation.dtd">

<translation>

 <intro>
  This is some introductory text for the xx language translators
  about who is the manager of the translation, and where to find
  more information. This paragraph is printed on the top of the
  generated revcheck.html page.
 </intro>
 
 <translators>
  <person name="Joe Doe"     email="joe@hotmail.com"
   nick="joedoe" cvs="yes" editor="yes"/>
  <person name="Jane Smith"  email="jsmith@yahoo.com"
   nick="jane"   cvs="yes"/>
  <person name="Joe Forever" email="joe@forever.net"
   nick="joefo"  cvs="no"/>
 </translators>
 
 <work-in-progress>
  <file name="appendices/aliases.xml" person="joedoe"
   type="working"/>
  <file name="functions/dbx.xml"      person="joefo"
   type="working"/>
 </work-in-progress>

</translation>
このファイル(の translators 要素)には、 CVS アカウントを持たないユーザも加えることができ、 翻訳済のドキュメント(のリビジョンコメント)にも、 更新中のファイル(work-in-progress 要素)にも アサインできます。 このアドオンを使用する最大の利点は、 revcheck.html のファイル中に、 翻訳者やファイルについての動的なテーブルを生成する際に、 これらの情報が使われるということです。 各ファイルから関連する各翻訳者へのリンクが生成されます。 また、きれいな表で各翻訳者のステータスを表示します。 時間がかかる更新が行われている場合は、 更新中のファイルを(work-in-progress 要素に)アサインすると良いでしょう。

<file> には、2つのオプションのパラメータが付加できます。 date および revision です。 前者は、作業が開始された日付です。後者は、 作業の開始のためにチェックアウトされた英語ファイルのリビジョンです (表中にそのリビジョンが記載されます)。 現在のところ、date パラメータに決まった形式はありません。。

さらに、このシステムには、個々のファイルについて、現在のメンテナ以外に作業した すべての人のクレジット(名前表示)をするためのアドオンがあります。 この目的を達成するためには、クレジットコメントを付加します。 たとえば、history.xml におけるクレジットコメントは、 このようになります(この場合、Joe Doe がはじめにファイルを翻訳しましたが、 Jane がメンテナを引き継いでいます)。

<!-- CREDITS: joedoe -->
クレジットコメントには、コンマ区切りのリストを記すことができます。 revcheck.html の翻訳者に関する表の表示のところに、 これらのコメントの内容が反映されます。