mesavolt / inflector
Easy-to-use French plural generator
Installs: 3 871
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=7.1
- ext-json: *
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^7
- twig/twig: ^2.4
This package is auto-updated.
Last update: 2024-11-13 03:42:20 UTC
README
Usage
Add the package to your project :
composer require mesavolt/inflector
// Use it with any number or countable value: Inflector::plural('cheval', 2); // Returns 'chevaux' Inflector::plural('cheval', 1); // Returns 'chevaux' Inflector::plural('cheval', [$horse1, $horse2]); // Returns 'chevaux' // Specify the plural form if you want: Inflector::plural('cheval', 2, 'chevals'); // Returns 'chevals' Inflector::plural('un petit cheval', 2, 'des petits chevaux'); // Returns 'des petits chevaux'
Integration
Symfony >=3 with Twig >1.26
If you use the default
auto-configuring feature of Symfony introduced in Symfony 3.3,
you only need to register the MesaVolt\Twig\InflectorExtension
as a service in your services.yml
file.
Symfony will tag it properly to register it in the twig environment used by your app.
If you don't use the auto-configuring feature or if it's not available in your version, you need to apply the tags manually when you register the extension as a service.
# Symfony 3: app/config/services.yml # Symfony 4: config/services.yaml services: # Use this if you use the default auto-configuring feature of Symfony >=3.3 DI container MesaVolt\Twig\InflectorExtension: ~ # Use this if you **don't** use the auto-configuring feature of Symfony >=3.3 DI container app.inflector_extension: class: MesaVolt\Twig\InflectorExtension tags: { name: twig.extension }
Then, you can use the plural
filter provided by the extension in your templates :
{# templates/my-template.html.twig #} <p>Il y a {{ users|length }} {{ 'utilisateur'|plural(users) }} dans la base de données.</p>
Testing
composer dump-autoload # make sure vendor/autoload.php exists
./vendor/bin/phpunit