Class PoFileParser
Parses file in PO format
Copyright: Copyright (c) 2010, Union of RAD http://union-of-rad.org (http://lithify.me/)
Copyright: Copyright (c) 2012, Clemens Tolboom
Copyright: Copyright (c) 2014, Fabien Potencier https://github.com/symfony/Translation/blob/master/LICENSE
Location: I18n/Parser/PoFileParser.php
Method Summary
- _addMessage() protectedSaves a translation item to the messages.
- parse() publicParses portable object (PO) format.
Method Detail
_addMessage()source protected
_addMessage( array $messages , array $item )
Saves a translation item to the messages.
Parameters
- array
$messages
- The messages array being collected from the file
- array
$item
- The current item being inspected
parse()source public
parse( string $resource )
Parses portable object (PO) format.
From https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files we should be able to parse files having:
white-space
translator-comments
. extracted-comments
: reference...
, flag...
| msgid previous-untranslated-string
msgid untranslated-string msgstr translated-string
extra or different lines are:
| msgctxt previous-context
| msgid previous-untranslated-string
msgctxt context
| msgid previous-untranslated-string-singular
| msgid_plural previous-untranslated-string-plural
msgid untranslated-string-singular msgid_plural untranslated-string-plural msgstr[0] translated-string-case-0 ... msgstr[N] translated-string-case-n
The definition states: - white-space and comments are optional. - msgid "" that an empty singleline defines a header.
This parser sacrifices some features of the reference implementation the differences to that implementation are as follows. - No support for comments spanning multiple lines. - Translator and extracted comments are treated as being the same type. - Message IDs are allowed to have other encodings as just US-ASCII.
Items with an empty id are ignored.
Parameters
- string
$resource
- The file name to parse
Returns
array
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.I18n.Parser.PoFileParser.html