NAME

Text::PO::Element - PO Element

SYNOPSIS

    use Text::PO::Element;
	my $po = Text::PO::Element->new;
	$po->debug(2);
	$po->dump;

VERSION

v0.3.0

DESCRIPTION

This is the class for PO elements.

CONSTRUCTOR

new

Create a new Text::PO::Element object acting as an accessor.

You can pass it an hash or hash reference of the following keys. For more information on those, see their corresponding method:

  • msgid

  • msgstr

  • msgid_plural

  • auto_comment

  • comment

  • context

  • encoding

  • file

  • flags

  • is_meta

  • line

  • fuzzy

  • plural

  • po

ATTRIBUTES

A Text::PO::Element object has the following fields :

  • msgid

    The localisation id

  • msgstr

    The localised string

  • msgid_plural

    The optional localised string in plural

  • context

    The optional context.

  • fuzzy

    The fuzzy flag set when the entry has been created but not yet translated

    See also the GNU PO documentation

  • comment

    The optional comment that can be added to provide some explanations to the translator

  • auto_comment

    The optional comment added automatically

  • flags

    An optional set of flags, stored as an array reference

    For example:

    #: src/msgcmp.c:338 src/po-lex.c:699
    #, c-format
    msgid "found %d fatal error"
    msgid_plural "found %d fatal errors"
    msgstr[0] "s'ha trobat %d error fatal"
    msgstr[1] "s'han trobat %d errors fatals"

    Here the flag would be c-format

    See also the GNU PO documentation and here

  • plural

    Whether this has a plural form

  • encoding

    The character encoding

  • file

    The file in which this l10n string was found. This is set when automatic parsing was executed

    For example:

    #: lib/error.c:116
    msgid "Unknown system error"
    msgstr "Error desconegut del sistema"

    This would specify a file lib/error.c and a line number 116

  • line

    The line at which this l10n was found. This is set when automatic parsing was executed

  • po

    The parent Text::PO object

  • is_meta

    An optional boolean value provided if this element represents a meta information

METHODS

add_auto_comment

Add an auto comment

add_comment

Add a comment

add_msgid

Add a msgid

add_msgid_plural

Add a plural version of a msgid

add_msgstr

Add a msgstr

add_reference

Add a reference, which is a file and line number

auto_comment

Set or return the auto_comment field

comment

Set or return the comment field

context

Set or return the context field

delete

Remove the element from the list of elements in Text::PO

This only works if the element was added via Text::PO, or else you need to have set yourself the Text::PO object with the "po" method.

dump

Return the element as a string formatted for a po file.

encoding

Set or get the encoding for this element. This defaults to an empty string

file

Set or get the file path where this PO element was initially be found.

flags

Set or return the flags as array reference

fuzzy

Set or gets whether this element has the fuzzy flag. Default to false.

id

Return the value of msgid as a string

is_meta

Set or gets the flag that this element represents the meta information for this PO (a.k.a portable object) file.

Meta information for a po file is stored in a unique msgid whose value is null.

line

Set or get the line number at which this PO element was initially be found.

merge( Text::PO::Element )

Given a Text::PO::Element object, it merge its content with our element object.

The merge will not overwrite existing fields.

It returns the current object

msgid

Sets or gets the msgid for this element.

In list context, this return the element as an array. Thus. if this element has multiple lines, it will return an array of lines. In scalar context, it returns this element as a string, or if it is a multi line element, it will return an array reference.

msgid_plural

Sets or gets the msgid version for plural. This is typically a 2-elements array. The first one singular and the second one plural.

msgid_as_string

This returns the msgid escaped and with surrounding quotes, suitable for "dump"

msgid_as_text

This returns a simple text representation of the msgid. It differs from msgid_as_string in that this is simply the string representation of the msgid, but would not be suitable for a PO file.

msgid_plural_as_string

Returns the msgid property as a string when it has plural implemented.

msgstr

Set or return the msgstr as a value without surrounding quote and without escaping.

msgstr_as_string

This returns the msgstr escaped and with surrounding quotes, suitable for "dump"

msgstr_as_text

This returns a simple text representation of the msgstr. It differs from msgstr_as_string in that this is simply the string representation of the msgstr, but would not be suitable for a PO file.

normalise

"normalise" will return a string properly formatted with double quotes, multi lines if necessary, suitable for "dump"

plural

Boolean. Sets or gets whether this element is an element with plural version of its msgid

po

Sets or gets the Text::PO object associated with this element. Best that you know what you are doing if you change this.

reference

Given an array reference or a string separated by ':', it sets the file and line number for this element object.

wrap

Given a text, it returns an array reference of lines wrapped

wrap_line

Given a string, it returns an array reference of lines. This is called by "wrap"

AUTHOR

Jacques Deguest <jack@deguest.jp>

SEE ALSO

https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html

COPYRIGHT & LICENSE

Copyright (c) 2020-2023 DEGUEST Pte. Ltd.

You can use, copy, modify and redistribute this package and associated files under the same terms as Perl itself.