---
name: "Log::Report::Lexicon::MOTcompact"
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::MOTcompact"
---

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

use translations from an MO file

## NAME

Log::Report::Lexicon::MOTcompact - use translations from an MO file

## INHERITANCE

```
 Log::Report::Lexicon::MOTcompact
   is a Log::Report::Lexicon::Table
```

## SYNOPSIS

```
 # using a MO table efficiently
 my $mot = Log::Report::Lexicon::MOTcompact->read('mo/nl.mo')
    or die;
 my $header = $mot->msgid('');
 print $mot->msgstr($msgid, 3);
```

## DESCRIPTION

This module is translating, based on MO files (binary versions of the PO files, the "Machine Object" format)

Actually, this module is not "compact" anymore: not trading off speed for memory.  That may change again in the future.

To get a MO file, you first need a PO file.  Then run *msgfmt*, which is part of the gnu gettext package.

```
   msgfmt -cv -o $domain.mo $domain.po
   # -c = --check-format & --check-header & --check-domain
   # -v = --verbose
   # -o = --output-file
```

Extends "DESCRIPTION" in Log::Report::Lexicon::Table.

## METHODS

Extends "METHODS" in Log::Report::Lexicon::Table.

### Constructors

Extends "Constructors" in Log::Report::Lexicon::Table.

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

  Inherited, see "Constructors" in Log::Report::Lexicon::Table

- Log::Report::Lexicon::MOTcompact-\>**read**($filename, %options)

  Read the MOT table information from `$filename`.

  ```
   -Option --Default
    charset  <from header>
  ```

  - charset =\> STRING

    The character-set which is used for the file.  When not specified, it is taken from the "Content-Type" field in the PO-file.

### Attributes

Extends "Attributes" in Log::Report::Lexicon::Table.

- $obj-\>**filename**()

  Returns the name of the source file for this data.

- $obj-\>**index**()

  Returns a HASH of all defined PO objects, organized by msgid.  Please try to avoid using this: use **msgid()** for lookup.

- $obj-\>**originalCharset**()

  Returns the character-set as found in the PO-file.  The strings are converted into utf8 before you use them in the program.

### Managing PO's

Extends "Managing PO's" in Log::Report::Lexicon::Table.

*Translation*

Extends "Translation" in Log::Report::Lexicon::Table.

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

  Lookup the translations with the STRING.  Returns a SCALAR, when only one translation is known, and an ARRAY when we have plural forms. Returns `"undef"` when the translation is not defined.

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

  Returns the translated string for `$msgid`.  When not specified, `$count` is 1 (the singular form).

*Administration*

Extends "Administration" in Log::Report::Lexicon::Table.

- $obj-\>**add**($po)

  Inherited, see "Administration" in Log::Report::Lexicon::Table

- $obj-\>**header**($field)

  Inherited, see "Administration" in Log::Report::Lexicon::Table

- $obj-\>**nrPlurals**()

  Inherited, see "Administration" in Log::Report::Lexicon::Table

- $obj-\>**pluralIndex**($count)

  Inherited, see "Administration" in Log::Report::Lexicon::Table

- $obj-\>**setupPluralAlgorithm**()

  Inherited, see "Administration" in Log::Report::Lexicon::Table

- $obj-\>**translations**( \[$active\] )

  Inherited, see "Administration" in Log::Report::Lexicon::Table

## 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/*
