rostenkowski / translate
There is no license information available for the latest version (v1.0.3) of this package.
v1.0.3
2017-12-14 14:37 UTC
Requires
- php: >=7.1
- ext-intl: *
- ext-tokenizer: *
- nette/di: ^3.0
- nette/neon: v3.0.0-beta1
- nette/safe-stream: ^2.3
- nette/utils: ^3.0
- psr/log: ^1.0
Requires (Dev)
- mockery/mockery: ^1.0@dev
- nette/tester: ^2.0
- phpstan/phpstan: ^0.9.0@dev
Suggests
- monolog/monolog: To log translation errors.
This package is not auto-updated.
Last update: 2024-11-10 05:29:55 UTC
README
Minimalistic yet powerful high performance message localization PHP 7.1+ component not only for Nette framework
composer require rostenkowski/translate
Translations
Translations are stored by default in *.neon files in this format:
# simple message Welcome!: Vítejte! # with placeholder Hi %s!: Ahoj %s! # multiple forms You have %s points.: - Máte %s bod. - Máte %s body. - Máte %s bodů.
Usage with Nette Framework
Put your translations to %appDir%/translations
directory as cs_CZ.neon
etc.
# register extension extensions: translate: Rostenkowski\Translate\Extension # configuration translate: default: cs_CZ
Advanced options
You can use special plural form for the count of 0
(zero).
In translation source file you can define this form under special index -1
.
"%s problems detected": -1: "No problem detected" - "%s problem detected" - "%s problems detected"
$translator->useSpecialZeroForm = true; $translator->translate('%s problems detected', 0); // "No problem detected" instead of "0 problems detected"
Usage with plain PHP
<?php namespace App; require __DIR__ . '/vendor/autoload.php'; use Rostenkowski\Translate\Translator; use Rostenkowski\Translate\NeonDictionary\NeonDictionaryFactory; // both translations and cache are in the same directory $translator = new Translator(new NeonDictionaryFactory(__DIR__, __DIR__)); $translator->setLocale('cs_CZ'); $translator->translate('Welcome!');
Requirements
- PHP 7.1+
- nette/di
- nette/neon
- nette/safe-stream
- nette/utils
- nette/tester
Contributing
# run tests vendor/bin/tester -c tests/php.ini tests/ # code coverage report (requires xdebug) vendor/bin/tester -c tests/php-coverage.ini --coverage-src src/ --coverage ~/report.html tests/ # remove test artifacts rm -rf tests/temp/cache/