1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
=encoding utf8
=head1 NAME
Log::Report::Extract - Collect translatable strings
=head1 INHERITANCE
Log::Report::Extract is extended by
Log::Report::Extract::PerlPPI
Log::Report::Extract::Template
=head1 SYNOPSIS
# See the extensions
=head1 DESCRIPTION
This module helps maintaining the POT files, updating the list of
message-ids which are kept in them. After initiation, the L<process()|Log::Report::Extract/"Processors">
method needs to be called with all files which changed since last
processing and the existing PO files will get updated accordingly. If no
translations exist yet, one C<textdomain/xx.po> file will be created.
=head1 METHODS
=head2 Constructors
=over 4
=item Log::Report::Extract-E<gt>B<new>(%options)
-Option --Default
charset 'utf-8'
lexicon <required>
=over 2
=item charset => STRING
The character-set used in the PO files.
=item lexicon => DIRECTORY
The place where the lexicon is kept. When no lexicon is defined yet,
this will be the directory where an C<domain/xx.po> file will be created.
=back
=back
=head2 Accessors
=over 4
=item $obj-E<gt>B<addPot>($domain, $pot, %options)
=item $obj-E<gt>B<charset>()
Returns the character-set used inside the POT files.
=item $obj-E<gt>B<domains>()
Returns a sorted list of all known domain names.
=item $obj-E<gt>B<index>()
Returns the L<Log::Report::Lexicon::Index|Log::Report::Lexicon::Index> object, which is listing
the files in the lexicon directory tree.
=item $obj-E<gt>B<pots>($domain)
Returns the list of L<Log::Report::Lexicon::POT|Log::Report::Lexicon::POT> objects which contain
the tables for $domain.
=back
=head2 Processors
=over 4
=item $obj-E<gt>B<cleanup>(%options)
Remove all references.
-Option--Default
keep []
=over 2
=item keep => HASH|ARRAY
Keep the information about these filename, either specified as ARRAY of
names, or a HASH where the keys are the named.
=back
=item $obj-E<gt>B<process>($filename, %options)
Update the domains mentioned in the $filename. All text-domains defined
in the file will get updated automatically, but should not written before
all files are processed.
Returned is the number of messages found in this particular file.
=item $obj-E<gt>B<showStats>( [$domains] )
Show a status about the DOMAIN (by default all domains). At least mode
verbose is required to see this.
The statistics are sent to (Log::Report) dispatchers which accept
notice and info. This could be syslog. When you have no explicit
dispatchers in your program, the level of detail get controlled by
the 'mode':
use Log::Report mode => 'DEBUG'; # or 'VERBOSE'
=item $obj-E<gt>B<store>( $domain, $filename, $linenr, $context, $msg, [$msg_plural] )
Register the existence of a ($msg, $msg_plural) in all POTs of
the $domain.
=item $obj-E<gt>B<write>( [$domain] )
Update the information of the files related to $domain, by default all
processed DOMAINS.
All information known about the written $domain is removed from the cache.
=back
=head1 SEE ALSO
This module is part of Log-Report-Lexicon distribution version 1.12,
built on April 18, 2025. Website: F<http://perl.overmeer.net/CPAN/>
=head1 LICENSE
Copyrights 2007-2025 by [Mark Overmeer <markov@cpan.org>]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://dev.perl.org/licenses/>
|