ali-translator / translation-js-integrate
Integrate ALI translator to frontend js
v0.3.2
2025-07-23 14:50 UTC
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