yiisoft / translator-message-php
Yii Translator PHP Message Storage
Fund package maintenance!
Open Collective
yiisoft
Installs: 113 130
Dependents: 24
Suggesters: 0
Security: 0
Stars: 12
Watchers: 15
Forks: 8
Open Issues: 0
Requires
- php: ^8.0
- yiisoft/translator: ^1.0|^2.0|^3.0
Requires (Dev)
- maglnet/composer-require-checker: ^4.2
- phpunit/phpunit: ^9.5
- rector/rector: ^0.15.4
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.30|^5.4
README
Yii Translator PHP Message Storage
The package provides message storage backend based on PHP arrays to be used with yiisoft/translator
package.
Requirements
- PHP 8.0 or higher.
Installation
The package could be installed with composer:
composer require yiisoft/translator-message-php
General usage
The package is meant to be used with yiisoft/translator
:
use Yiisoft\Translator\CategorySource; use Yiisoft\Translator\IntlMessageFormatter; use Yiisoft\Translator\Message\Php\MessageSource; $categorySource = new CategorySource( 'my-category', new MessageSource('/path/to/messages'), new IntlMessageFormatter(), );
The examples below are about using it separately.
Create an instance of message source
/** @var string $path - full path to your translations */ $messageSource = new \Yiisoft\Translator\Message\Php\MessageSource($path);
Read a message without yiisoft/translator
package
/** * @var \Yiisoft\Translator\Message\Php\MessageSource $messageSource * @var ?string $translatedString */ $id = 'messageIdentifier'; $category = 'messageCategory'; $language = 'de-DE'; $translatedString = $messageSource->getMessage($id, $category, $language);
Write an array of messages to storage
/** * @var \Yiisoft\Translator\Message\Php\MessageSource $messageSource */ $category = 'messageCategory'; $language = 'de-DE'; $data = [ 'test.id1' => [ 'message' => 'Nachricht 1', // translated string 'comment' => 'Comment for message 1', // is optional parameter for save extra metadata ], 'test.id2' => [ 'message' => 'Nachricht 2', ], 'test.id3' => [ 'message' => 'Nachricht 3', ], ]; $messageSource->write($category, $language, $data);
The following structure will be created after writing:
📁 path_to_your_storage
📁 de-DE
🗎 messageCategory.php
Testing
Unit testing
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
Mutation testing
The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:
./vendor/bin/roave-infection-static-analysis-plugin
Static analysis
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
License
The Yii Translator PHP Message Storage is free software. It is released under the terms of the BSD License. Please see LICENSE
for more information.
Maintained by Yii Software.