LOCALE::PO4A::TRANSTRACTOR.3PM(1) User Contributed Perl Documentation Locale::Po4a::TransTractor - ( ). po4a (PO for anything - PO ) ( , ) gettext , . po4a , , PO . , : - ; - PO . , : - PO , ; - , , PO . : --\ /---> \ / () +-> parse() -----+ / \ PO --------/ \---> PO () parse() : , . . , . process() , new(), , . docheader() , . , po4a(7), . ,,

". , , . '

' , . sub parse { my $self = shift; PARAGRAPH: while (1) { my ($paragraph,$pararef)=("",""); my $first=1; my ($line,$lref)=$self->shiftline(); while (defined($line)) { if ($line =~ m/

/ && !$first--; ) { #

. # , # $self->unshiftline($line,$lref); # , : # - $paragraph =~ s/^

//s; # - () # () $self->pushline( "

" . $self->translate($paragraph,$pararef) ); next PARAGRAPH; } else { # $paragraph .= $line; $pararef = $lref unless(length($pararef)); } # ($line,$lref)=$self->shiftline(); } # ? . return; } } , , . process(%) po4a . . : . PO po_in_name . file_in_name . . . file_out_name ( ) . PO po_out_name ( ) , new() ( ): file_in_name (@) . file_in_charset ($) ( , UTF-8). file_out_name ($) . file_out_charset ($) ( , UTF-8). po_in_name (@) PO , . po_out_name ($) PO , . addendum (@) . addendum_charset ($) . new(%) po4a . ( ): verbose ($) . debug ($) . wrapcol ($) (: 76). . Po-: porefs, copyright-holder, msgid-bugs-address, package-name, package-version, wrap-po. read($$$) "@{$self->{TT}{doc_in}}". . * ; * PO ; * ( UTF-8) "@{$self->{TT}{doc_in}}" . * $textline . * "$filename:$linenum" "reference" ("linenum" 1). , , . , parse(). write($) . : * "$self->docheader()" , * "@{$self->{TT}{doc_out}}" . PO readpo($) ( ) PO. . writepo($) PO . stats() . , , msgfmt --statistic. PO , msgfmt . Locale::Po4a::Po::stats_get function PO . : [ po4a ...] ($percent,$hit,$queries) = $document->stats(); print " $percent\% ($hit $queries) .\n"; addendum($) po4a(7) , . , ;) , . , . shift/unshift push/pop Perl. * Perl shift . * Perl unshift . * Perl pop . * Perl push . , . : , shift, , push. shiftline() ( ) "@{$self->{TT}{doc_in}}" 2 . "$filename:$linenum". unshiftline($$) Unshift- shift- "{$self->{TT}{doc_in}}". pushline($) push "{$self->{TT}{doc_out}}". popline() pop push- "{$self->{TT}{doc_out}}". . translate($$$) : - - (. ) - (. ; Locale::Po4a::Po::gettextization(); po4a(7), ?) . . : $self->translate("string","ref","type", 'wrap' => 1); wrap . , , . wrapcol (: wrapcol TransTractor 76). . comment . : - push , po_out. - ( po_in) doc_out. - po_out . verbose() TransTractor . debug() TransTractor . get_in_charset() get_out_charset() ( ). . , PO, PO ,,CHARSET", , .. TransTractor , debconf , .desktop . , : - po_in_name ( ) - translate - pushline_all, pushline , map: $self->pushline_all({ "Description[".$langcode."]=". $self->translate($line,$ref,$langcode) }); ;) (mquinson#debian.org) perl v5.38.2 2024-06-26 LOCALE::PO4A::TRANSTRACTOR.3PM(1)