Practice of Programming

プログラム とか Linuxとかの話題

JPRPの翻訳文書をPOD2::JA対応

昨日一昨日は、perldocjp/new-perldocjp懇親会行ってきました。
皆様お疲れ様でした。いろいろ話せて有意義でした。

弾さんに「真面目過ぎる」と怠惰分が足りないという指摘を受けましたw

その後、なんとなく、POD2に準じた形でいけないかなぁと思って、ちょっとプログラムを書いてみました。

http://coderepos.org/share/browser/lang/perl/POD2-JA

特徴ですが、

  • JPRP(Japanized Perl Resource Project)cvsからチェックアウトしたデータを使う
    • ので、最初に、cvs checkout が必要
  • =encoding がついていないドキュメントにはEncode::Guessで判断して、自動でつける
  • バージョンは同じか直近の新しいバージョンを拾う
  • インストールされていないドキュメントの翻訳はインストールしない
  • モジュールに関しては、インストールされているバージョンと、翻訳したバージョンを示す

perl Makefile.PL で、ごちゃごちゃファイルを生成するようにしたので、そこで依存があったら困るので、気をつけましたが...
なんか、もうちょっと別のやり方なかったのかな。めんどくさい。Encodeには依存してます。


インストール後の使い方は、

% perldocjp -L JA Test::Base

のようにします。perldocコマンドじゃなくて、perldocjpコマンドです。
素のperldocコマンドがマルチバイトを理解してくれないので、charsbarさんの、Pod::PerldocJpに同梱されている perldocjp コマンドを使います。
タイプ数を考えると、perldocjp -J で読めたほうがうれしいので、後で何かするかもしれません。


インストールされているバージョンと、翻訳のバージョンは、ドキュメントの先頭に以下のように表示されます。

ABOUT TRANSLATION VERSION
    This pod is generated at Wed Dec 16 15:52:53 2009

    Yours: 0.55
    Transation: 0.52

名前
    Test::Base - データドリブンのテストフレームワーク

概要
    A new test module:

    新しいテストモジュール:

バージョンにあんまり違いがあると、参考にならないと判断出来ると思います。


日時はPOD2::JAをインストールしたときの時間が入ります。
時々インストールしなおしたら,新しいバージョンの翻訳が入るかもしれない、です。
現状、白方さんがメンテされている(感謝!!!)コアドキュメント以外では、その可能性は限りなく0に等しいけど...。


ところで、モジュールのファイル名の特定なんですが...

 Test-Simple-0.42/lib/Test/Simple.pod
 Test-Simple-0.42/lib/Test/More.pod

みたいなのなら、モジュールの先頭の文字列(この場合ならTest)を再帰的に検索して、見つかったところ以降を使います。
ただ、下記のようなやつが結構多くて...

 Test-Simple-0.42/Simple.pod
 Test-Simple-0.42/More.pod

こういう場合は、各podを開いて、二番目の =head1 までに、モジュールっぽい文字列があったら、それをモジュール名としています(^^;
まぁ、ほぼほぼ問題ないはず...。