A simple internationalization library with support for .po and .php translation files.
composer require koded/i18n
- intl
- gettext
__(string $message, array $arguments => [], string $locale = '');
The I18n
class is static and should be configured
somewhere in the beginning of your PHP code/script.
use Koded\Stdlib\Config;
use Koded\I18n\{ArrayCatalog, DefaultFormatter, I18n, I18nCatalog};
// all conf directives are optional
$config = new Config([
'translation.catalog' => ArrayCatalog::class,
'translation.formatter' => DefaultFormatter::class,
'translation.dir' => '/path/to/your/translation/files',
'translation.locale' => ['mk_MK', 'de_DE', 'it_IT'],
]);
I18n::register(I18nCatalog::new($config));
poedit
is a very good app to work with your translation files.
The translation file has a simple structure
return [
'language' => '',
'messages' => [
// your translation strings goes here
'original string' => 'translated string',
]
];
where messages
contains key => value
pairs for the translated strings.
vendor/bin/phpunit
The code is distributed under the terms of The 3-Clause BSD license.