maxakawizard / gettext-parser
Gettext parser for source code
Requires
- php: >=5.3.0
Requires (Dev)
- satooshi/php-coveralls: dev-master
README
Library for syncing gettext catalogs with Smarty and Javascript sources.
Poedit
already has parser for *.php
files out of the box.
Library parses files and writes results as php
files, whose are processed by Poedit PHP parser.
This package is compliant with PSR-4, PSR-1, and PSR-2. If you notice compliance oversights, please send a patch via pull request.
Installation
- Download sources and unpack to any folder.
- If needed, create
config.php
file (seeconfig.php.dist
) and specify path toxgettext
binary
Supported formats
JavaScript
jQuery.gettext plugin:
_('Text to be localized') n_('country', 'countries', 3);
Smarty
block.t plugin:
{t}Text to be localized{/t}
native:
{"Text to be localized"|_}
{_("Text to be localized")}
Usage
- Create new parser in
Poedit
:File->Preferences->Parsers->New
- Update your gettext catalog:
Catalogue->Update from sources
Parser params:
Smarty
- Language:
Smarty
- Parser command:
php.exe -f "/path/to/GettextParser/index.php" Smarty %o %C %K %F
- List of extensions:
*.tpl
- An item in keywords list:
-k%k
- An item in input files list:
%f
- Source code charset:
--from-code=%c
JavaScript
- Language:
JavaScript
- Parser command:
php.exe -f "/path/to/GettextParser/index.php" JavaScript %o %C %K %F
- List of extensions:
*.js
- An item in keywords list:
-k%k
- An item in input files list:
%f
- Source code charset:
--from-code=%c
Known issues
- plurals are not supported for Smarty (planned)
Contributing
Contribution is highly encouraged! Just send your pull-requests or create issues.
Tests
Library is covered with unit tests.
For running those tests you'll need PHPUnit.
It's recommended to use phpunit.phar
.
Just specify tests/phpunit.xml.dist
as config file for PHPUnit (actually it can found it automatically):
php phpunit.phar -c tests/phpunit.xml.dist
License
This library is released under MIT license.