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:10msgid "Hello, World!"msgstr "Hallo, Welt!"#: Hello.pm:11msgid "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,};
Copyright and license
This software is Copyright (c) 2014 by Audrey Tang.
This is free software, licensed under:
The MIT (X11) License
Releases
12 releases since Debian 3.1 (Sarge); the text changed 8 times.