Locale::Maketext::Lexicon::Gettext(3pm)

Locale::Maketext::Lexicon::Gettext3pm

Po and mo file parser for maketext

Usage

Called via Locale::Maketext::Lexicon:

    package Hello::I18N;
    use base 'Locale::Maketext';
    use Locale::Maketext::Lexicon {
        de => [Gettext => 'hello/de.mo'],
    };

Directly calling parse():

    use Locale::Maketext::Lexicon::Gettext;
    my %Lexicon = %{ Locale::Maketext::Lexicon::Gettext->parse(<DATA>) };
    __DATA__
    #: Hello.pm:10
    msgid "Hello, World!"
    msgstr "Hallo, Welt!"
    #: Hello.pm:11
    msgid "You have %quant(%1,piece) of mail."
    msgstr "Sie haben %quant(%1,Poststueck,Poststuecken)."

Version

version 1.00

Overview

This module implements a perl-based "Gettext" parser for Locale::Maketext. It transforms all %1, %2, <%*>... sequences to "[_1]", "[_2]", "[_*]", and so on. It accepts either plain PO file, or a MO file which will be handled with a pure-perl parser adapted from Imacat's "Locale::Maketext::Gettext".

Since version 0.03, this module also looks for "%function(args...)" in the lexicon strings, and transform it to "[function,args...]". Any %1, %2... sequences inside the args will have their percent signs ("%") replaced by underscores ("_").

The name of function above should begin with a letter or underscore, followed by any number of alphanumeric characters and/or underscores. As an exception, the function name may also consist of a single asterisk ("*") or pound sign ("#"), which are "Locale::Maketext"'s shorthands for "quant" and "numf", respectively.

As an additional feature, this module also parses MIME-header style metadata specified in the null msgstr (""), and add them to the %Lexicon with a "__" prefix. For example, the example above will set "__Content-Type" to "text/plain; charset=iso8859-1", without the newline or the colon.

Any normal entry that duplicates a metadata entry takes precedence. Hence, a "msgid "__Content-Type"" line occurs anywhere should override the above value.

Options

use_fuzzy

When parsing PO files, fuzzy entries (entries marked with "#, fuzzy") are silently ignored. If you wish to use fuzzy entries, specify a true value to the "_use_fuzzy" option:

    use Locale::Maketext::Lexicon {
        de => [Gettext => 'hello/de.mo'],
        _use_fuzzy => 1,
    };

allow_empty

When parsing PO files, empty entries (entries with "msgstr """) are silently ignored. If you wish to allow empty entries, specify a true value to the "_allow_empty" option:

    use Locale::Maketext::Lexicon {
        de => [Gettext => 'hello/de.mo'],
        _allow_empty => 1,
    };

Releases

12 releases since Debian 3.1 (Sarge); the text changed 8 times.

  1. 3.1
  2. 4.0
  3. 5.0
  4. 6.0
  5. 7
  6. 8–10
  7. 11
  8. 12–13
  9. Arch

Authors

Audrey Tang <[email protected]>

Authors

•

Clinton Gormley <[email protected]>

•

Audrey Tang <[email protected]>

From perl-locale-maketext-lexicon 1.00-5 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.