File: Extract.pod

package info (click to toggle)
liblog-report-lexicon-perl 1.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 440 kB
  • sloc: perl: 2,673; makefile: 9
file content (144 lines) | stat: -rw-r--r-- 3,424 bytes parent folder | download
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/>