phpnomad / gettext-integration
PHPNomad gettext translation strategy implementation
1.0.0
2026-03-31 11:31 UTC
Requires
- ext-gettext: *
- phpnomad/translate: ^2.0
Requires (Dev)
- mockery/mockery: ^1.5
- phpnomad/tests: ^0.1.0 || ^0.3.0
- phpunit/phpunit: ^9.6
README
Native PHP gettext implementation of the PHPNomad translation strategy.
Requirements
- PHP 8.0+
- ext-gettext
- phpnomad/translate ^2.0
Installation
composer require phpnomad/gettext-integration
Usage
use PHPNomad\Gettext\Strategies\TranslationStrategy; $strategy = new TranslationStrategy($textDomainProvider, $languageProvider); // Simple translation $strategy->translate('Hello'); // Translation with context $strategy->translate('Post', 'noun'); // Plural translation $strategy->translatePlural('%d item', '%d items', $count); // Plural with context $strategy->translatePlural('%d item', '%d items', $count, 'cart');
How It Works
- Uses PHP's built-in
dgettext()anddngettext()functions. - Text domain is resolved from the injected
HasTextDomainprovider. - Locale is set from the injected
HasLanguageprovider viasetlocale(LC_MESSAGES, ...). - Context is encoded using gettext's
msgctxtconvention (EOT separator\x04).