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 までに、モジュールっぽい文字列があったら、それをモジュール名としています(^^;
まぁ、ほぼほぼ問題ないはず...。