The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Log::Report::Extract - Collect translatable strings

INHERITANCE

 Log::Report::Extract is extended by
   Log::Report::Extract::PerlPPI
   Log::Report::Extract::Template

SYNOPSIS

 # See the extensions

DESCRIPTION

This module helps maintaining the POT files, updating the list of message-ids which are kept in them. After initiation, the process() 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 textdomain/xx.po file will be created.

METHODS

Constructors

Log::Report::Extract->new(%options)
 -Option --Default
  charset  'utf-8'
  lexicon  <required>
charset => STRING

The character-set used in the PO files.

lexicon => DIRECTORY

The place where the lexicon is kept. When no lexicon is defined yet, this will be the directory where an domain/xx.po file will be created.

Accessors

$obj->addPot($domain, $pot, %options)
$obj->charset()

Returns the character-set used inside the POT files.

$obj->domains()

Returns a sorted list of all known domain names.

$obj->index()

Returns the Log::Report::Lexicon::Index object, which is listing the files in the lexicon directory tree.

$obj->pots($domain)

Returns the list of Log::Report::Lexicon::POT objects which contain the tables for $domain.

Processors

$obj->cleanup(%options)

Remove all references.

 -Option--Default
  keep    []
keep => HASH|ARRAY

Keep the information about these filename, either specified as ARRAY of names, or a HASH where the keys are the named.

$obj->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.

$obj->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'
$obj->store( $domain, $filename, $linenr, $context, $msg, [$msg_plural] )

Register the existence of a ($msg, $msg_plural) in all POTs of the $domain.

$obj->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.

SEE ALSO

This module is part of Log-Report-Lexicon distribution version 1.11, built on March 22, 2018. Website: http://perl.overmeer.net/CPAN/

LICENSE

Copyrights 2007-2018 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 http://dev.perl.org/licenses/