yiisoft / i18n
Yii Internationalization Library
Fund package maintenance!
Opencollective
yiisoft
Installs: 229 355
Dependents: 9
Suggesters: 0
Security: 0
Stars: 22
Watchers: 17
Forks: 22
Open Issues: 1
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- rector/rector: ^0.17.0
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.30|^5.4
This package is auto-updated.
Last update: 2023-06-04 22:05:28 UTC
README
Yii Internationalization Library
The package provides common internationalization utilities:
Locale
stores locale information created from BCP 47 formatted string. It can parse locale string, modify locale parts, form locale string from parts, and derive fallback locale.LocaleProvider
is a stateful service that stores current locale.
Requirements
- PHP 7.4 or higher.
Installation
The package could be installed with composer:
composer install yiisoft/i18n --prefer-dist
General usage
Use Locale
as follows:
$locale = new \Yiisoft\I18n\Locale('es-CL'); echo $locale->language(); // es echo $locale->region(); // CL $locale = $locale->withLanguage('en'); echo $locale->asString(); // en-CL echo $locale ->fallbackLocale() ->asString(); // en
Use LocaleProvider
as follows:
use \Yiisoft\I18n\LocaleProvider; final class MyService { public function __construct( private LocaleProvider $localeProvider ) { } public function doIt(): void { $locale = $this->localeProvider->get(); if ($this->localeProvider->isDefaultLocale()) { // ... } // ... } }
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 Internationalization Library is free software. It's released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.