The package provides message storage backend based on gettext file format to be used
with yiisoft/translator
package.
- PHP 8.0 or higher.
gettext
PHP extension.
The package could be installed with composer:
composer require yiisoft/translator-message-gettext
When using gettext, locale
depends on your OS requirement:
- for Windows
'locale' => 'en-US.UTF-8'
- for Linux
'locale' => 'en_US.UTF-8'
The package is meant to be used with yiisoft/translator
:
use Yiisoft\Translator\CategorySource;
use Yiisoft\Translator\Message\Gettext\MessageSource;
$categorySource = new CategorySource(
'my-category',
new MessageSource('/path/to/messages'),
);
The examples below are about using it separately.
/** @var string $path - path to your gettext storage */
$messageSource = new \Yiisoft\Translator\Message\Gettext\MessageSource($path);
/**
* @var \Yiisoft\Translator\Message\Gettext\MessageSource $messageSource
* @var ?string $translatedString
*/
$id = 'messageIdentificator';
$category = 'messages';
$language = 'de-DE';
$translatedString = $messageSource->getMessage($id, $category, $language);
You can create your translations in .mo format with use third-party software (for example Poedit)
Recommended structure to your gettext storage:
-- path_to_your_storage
-- de_DE
-- LC_MESSAGES
-- messages.mo
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:
./vendor/bin/roave-infection-static-analysis-plugin
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
The Yii Translator gettext 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.