---
name: "Log::Report::Lexicon::Table"
section: "3pm"
platform: "linux"
package: "liblog-report-lexicon-perl"
version: "1.12-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Log::Report::Lexicon::Table"
---

# Log::Report::Lexicon::Table(3pm)

generic interface to translation tables

## 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:

- •

  Log::Report::Lexicon::POT

  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

- Log::Report::Lexicon::Table-\>**new**(%options)

  ### Attributes

### Managing PO's

*Translation*

- $obj-\>**msgid**( STRING, \[$msgctxt\] )

  Lookup the Log::Report::Lexicon::PO with the STRING. Returns `"undef"` 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 *http://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: only acceptable parameter is 'ACTIVE'

  ## SEE ALSO

This module is part of Log-Report-Lexicon distribution version 1.12, built on April 18, 2025. Website: *http://perl.overmeer.net/CPAN/*

## 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 *http://dev.perl.org/licenses/*
