NAME
Locale::File::PO::Header - Utils to build/extract the PO header
$Id: Utils.pm 602 2011-11-13 13:49:23Z steffenw $
$HeadURL: https://dbd-po.svn.sourceforge.net/svnroot/dbd-po/Locale-File-PO-Header/trunk/lib/Locale/PO/Utils.pm $
VERSION
0.004
SYNOPSIS
require
Locale::PO::Utils;
$obj
= Locale::PO::Utils->new;
DESCRIPTION
Utils to build or extract the PO header
The header of a PO file is quite complex. This module helps to build the header and extract.
SUBROUTINES/METHODS
method msgstr - read and write the header as string
reader
$msgstr
=
$obj
->msgstr;
If nothing was set before it returns a minimal header:
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
writer
$obj
->msgstr(<<
'EOT'
);
Content-Type: text/plain; charset=UTF-8
EOT
If nothing else was set before the msgstr is:
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
method all_keys - names of all items
This sub returns all header keys you can set or get.
@all_keys
=
$obj
->all_keys;
The returned array is:
qw(
Project-Id-Version
Report-Msgid-Bugs-To_name
Report-Msgid-Bugs-To_address
POT-Creation-Date
PO-Revision-Date
Last-Translator_name
Last-Translator_address
Language-Team_name
Language-Team_address
MIME-Version
Content-Type
charset
Content-Transfer-Encoding
Plural-Forms
extended
)
method data - modify lots of items
$obj
->data({
Project-Id
-Version
=>
'Example'
,
Report-Msgid-Bugs
-To_address
=>
'bug@example.com'
,
extended
=> {
X
-Example
=>
'This is an example'
,
},
});
If nothing else was set before the msgstr is:
Project-Id-Version: Example
Report-Msgid-Bugs-To: bug
@example
.com
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Example: This is an example
An example to write all keys:
$obj
->data({
'Project-Id-Version'
=>
'Testproject'
,
'Report-Msgid-Bugs-To_name'
=>
'Bug Reporter'
,
'Report-Msgid-Bugs-To_address'
=>
'bug@example.org'
,
'POT-Creation-Date'
=>
'no POT creation date'
,
'PO-Revision-Date'
=>
'no PO revision date'
,
'Last-Translator_name'
=>
'Steffen Winkler'
,
'Last-Translator_address'
=>
'steffenw@example.org'
,
'Language-Team_name'
=>
'MyTeam'
,
'Language-Team_address'
=>
'cpan@example.org'
,
'MIME-Version'
=>
'1.0'
,
'Content-Type'
=>
'text/plain'
,
'charset'
=>
'utf-8'
,
'Content-Transfer-Encoding'
=>
'8bit'
,
'extended'
=> [
'X-Poedit-Language'
=>
'German'
,
'X-Poedit-Country'
=>
'GERMANY'
,
'X-Poedit-SourceCharset'
=>
'utf-8'
,
],
});
The msgstr is:
Project-Id-Version: Testproject
Report-Msgid-Bugs-To: Bug Reporter <bug
@example
.org>
POT-Creation-Date:
no
POT creation date
PO-Revision-Date:
no
PO revision date
Last-Translator: Steffen Winkler <steffenw
@example
.org>
Language-Team: MyTeam <cpan
@example
.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Poedit-Language: German
X-Poedit-Country: GERMANY
X-Poedit-SourceCharset: utf-8
method item - read or write one item
writer
$obj
->item(
'Project-Id-Version'
=>
'Example'
);
reader
$value
=
$obj
->item(
'Project-Id-Version'
);
method items - read lots of items
@values
=
$obj
->items(
@keys
);
@values
=
$obj
->items(
qw(Project-Id-Version charset)
);
EXAMPLE
Inside of this distribution is a directory named example. Run the *.pl files.
DIAGNOSTICS
none
CONFIGURATION AND ENVIRONMENT
none
DEPENDENCIES
INCOMPATIBILITIES
not known
BUGS AND LIMITATIONS
not known
SEE ALSO
http://en.wikipedia.org/wiki/Gettext
AUTHOR
Steffen Winkler
LICENSE AND COPYRIGHT
Copyright (c) 2011 - 2017, Steffen Winkler <steffenw at cpan.org>
. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.