ali-translator / translator-js-integrate
Integrate ALI translator to frontend js
Installs: 1 056
Dependents: 0
Suggesters: 2
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.4 <8.5
- ext-json: *
- ali-translator/translator: ^0
Requires (Dev)
- php: >=7.3.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^9.0
- symfony/var-dumper: ^5.0
README
Additional package for ali-translator/translator which helps integrate this translator into frontend JS.
Installation
$ composer require ali-translator/translator-js-integrate
Initialization
Since this package extends ali-translator/translator,
first you need to create a $translator
and a wrapper with its translations vector - $plainTranslator
Then include the src/assets/js/ali-translator.js
script in your HTML code.
After that, create an instance of ALIAbcTranslatorJs
:
use ALI\TranslatorJsIntegrate\ALIAbcTranslatorJs; use ALI\Translator\PlainTranslator\PlainTranslator; /** @var PlainTranslator $plainTranslator */ $ALIAbcTranslatorJs = new ALIAbcTranslatorJs($plainTranslator);
Basic Usage
PHP:
use \ALI\TranslatorJsIntegrate\ALIAbcTranslatorJs; /** @var ALIAbcTranslatorJs $aliAbcTranslatorJs */ // $aliAbc->saveTranslate('Hello {object}!', 'Привіт {object}!'); $aliAbcTranslatorJs->addOriginals(['Hello {object}!']); $startUpJsCode = $aliAbcTranslatorJs->generateStartupJs('__t');
HTML:
<html lang="en"> <head> <script src="/js/ali-translator.js"></script> <script><?= $startUpJsCode ?></script> </head> <body>...</body> </html>
JS:
alert(__t('Hello {object}!', { 'object': 'sun' }));
Tests
The package includes a docker-compose file with an environment for testing.
docker-compose run php composer install docker-compose run php vendor/bin/phpunit vendor/bin/phpstan analyse src tests