Locale::Po4a::Pod(3) PO ファイルと POD データの変換

書式


use Locale::Po4a::Pod;
my $parser = Locale::Po4a::Pod->new (sentence => 0, width => 78);
# Read POD from STDIN and write to STDOUT.
$parser->parse_from_filehandle;
# Read POD from file.pod and write to file.txt.
$parser->parse_from_file ('file.pod', 'file.txt');

説明

Locale::Po4a::Pod は、POD フォーマット (Perl のドキュメント用に用意された言語) のドキュメントを他の [自然] 言語へ翻訳するのを助けるモジュールです。

このモジュールの状態

このモジュールは岩のように安定していると思いますが、/usr/lib/perl5/Tk/MainWindow.pod (とその他のページ。以下参照) には、たったひとつ以下のような既知のバグがあります。

  C<" #n">

残念ながら、po4a のバージョンでは、折り返しにより空白で分割されてしまいました。その結果、オリジナルバージョンでは、man に以下を含みますが、

 " #n"

私のところでは以下を含みます。

 "" #n""

このロジックにより C<foobar> が ``foobar'' に書き換えられてしまいます。

私のところで問題のあるページの完全なリストです (564 ページから。折り返す桁の選択に依存することに注してください)。 /usr/lib/perl5/Tk/MainWindow.pod /usr/share/perl/5.8.0/overload.pod /usr/share/perl/5.8.0/pod/perlapi.pod /usr/share/perl/5.8.0/pod/perldelta.pod /usr/share/perl/5.8.0/pod/perlfaq5.pod /usr/share/perl/5.8.0/pod/perlpod.pod /usr/share/perl/5.8.0/pod/perlre.pod /usr/share/perl/5.8.0/pod/perlretut.pod

内部構造

Pod::Parser の派生クラスと同様に、Locale::Po4a::Pod は同じメソッドとインターフェースをサポートしています。すべての詳細は Pod::Parser をご覧ください。簡単に言うと、"Locale::Po4a::Pod->new()" で新しいパーサを作成し、parse_from_filehandle()parse_from_file() のどちらかを呼び出します。

new() はキーと値の組の形のオプションを取り、パーサの振る舞いを制御できます。認識する以下のオプションは、Pod::Parser のすべての派生クラスで共通です。

alt
値を true とすると、代替出力フォーマットを選択します。他にもありますが、異なる見出しのスタイルを用い、左マージンとコロンで =item エントリをマークします。デフォルトは false です。
code
値を true とすると、入力ファイルの非 POD 部分を出力に含めます。POD ブロックで説明されているコードを、コードが損なわれないままに POD をレンダリングして表示するのに便利です。
indent
通常のテキストをインデントする空白の数で、=over ブロックに対するデフォルトのインデントです。デフォルトは 4 です。
loose
値を true とすると、空行を =head1 見出しの後に出力します。値を false (デフォルト) とすると、=head2 の後には空行を出力しますが、=head1 の後に空行を出力しません。マニュアルページが期待している形式であるため、これをデフォルトとしています。任意のテキストドキュメントを整形する場合、true と設定すると、より満足する出力結果となるでしょう。
quotes
C<> で囲んだテキストに使用する、引用符を設定します。値が 1 文字の場合、左右の引用符にその文字を使用します。2 文字の場合、1 文字目が左引用符とし、2 文字目を右引用符とします。4 文字の場合、最初の 2 文字を左引用符とし、続く 2 文字を右引用符とします。

ここには特殊な値 none も設定できます。この場合、C<> テキストのまわりに引用符を追加しません。

sentence
値を true とすると、Locale::Po4a::Pod は各文が 2 つの空白で終わると仮定し、その空白を保持しようとします。値を false とすると、非逐語段落にある連続した空白すべてを、ひとつの空白に圧縮します。デフォルトは true です。
width
右端でテキストを折り返す文字数です。デフォルトは 76 です。

著者

 Denis Barbier <[email protected]>
 Martin Quinson (mquinson#debian.org)

著作権・ライセンス

Copyright 2002 by SPI, inc.

本プログラムはフリーソフトウェアです。GPL の条項に基づき再頒布と変更を行うことができます (COPYING ファイルをご覧ください)。