NAME
Log::Report::Lexicon::Table - generic interface to translation tables
INHERITANCE
Log::Report::Lexicon::Table is extended by
Log::Report::Lexicon::MOTcompact
Log::Report::Lexicon::POT
Log::Report::Lexicon::POTcompact
SYNOPSIS
# use one of the extensions, for instance:
my $pot = Log::Report::Lexicon::POT->read('po/nl.po', charset => 'utf-8')
or panic;
DESCRIPTION
This base class defines the generic interface for translation tables.
Currently, there are three extensions:
-
This is a relatively heavy implementation, used to read but also to write PO files. It is used by xgettext-perl, for instance, to administer the collection of discovered msgid's.
Log::Report::Lexicon::POTcompact
Light-weighted read-only access to PO-file information.
Log::Report::Lexicon::MOTcompact
Read-only access to MO-file information. These binary MO-files are super efficient.
METHODS
Constructors
Attributes
Managing PO's
Translation
- $obj->msgid( STRING, [$msgctxt] )
-
Lookup the Log::Report::Lexicon::PO with the
STRING
. Returnsundef
when not defined. - $obj->msgstr( $msgid, [$count, $msgctxt] )
-
Returns the translated string for
$msgid
. When not specified,$count
is 1.
Administration
- $obj->add($po)
-
Add the information from a
$po
into this POT. If the msgid of the$po
is already known, that is an error. - $obj->header($field)
-
The translation of a blank MSGID is used to store a MIME header, which contains some meta-data. The
$field
value is looked-up (case-insensitive) and returned. - $obj->nrPlurals()
-
Returns the number of plurals, when not known then '2'.
- $obj->pluralIndex($count)
-
Returns the msgstr index used to translate a value of
$count
. - $obj->setupPluralAlgorithm()
-
This method needs to be called after setting (reading or creating) a new table header, to interpret the plural algorithm as specified in the
Plural-Forms
header field. [1.09] The header field is not required when not used.A full list of plural forms per language can be found at https://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html
- $obj->translations( [$active] )
-
Returns a list with all defined Log::Report::Lexicon::PO objects. When the string
$active
is given as parameter, only objects which have references are returned.
DIAGNOSTICS
- Error: invalid plural-form algorithm '$alg'
-
Cast by setupPluralAlgorithm()
- Error: only acceptable parameter is 'ACTIVE'
-
Cast by translations()
- Error: there is no Plural-Forms field in the header, but needed
-
Cast by pluralIndex()
SEE ALSO
This module is part of Log-Report-Lexicon version 1.14, built on September 08, 2025. Website: http://perl.overmeer.net/CPAN/
LICENSE
For contributors see file ChangeLog.
This software is copyright (c) 2007-2025 by Mark Overmeer.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.