mesavolt/inflector

Easy-to-use French plural generator

v1.0.0 2019-09-30 21:17 UTC

This package is auto-updated.

Last update: 2024-07-13 03:02:35 UTC


README

Latest Stable Version Build Status Coverage Status License

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