Laravel Plural en Français

Voici une petite astuce pour ceux qui utilise la méthode plural de Str.


Déjà, commençons par un petite exemple :


Illuminate\Support\Str::of('paiement')->plural($invoices->count())

Si le nombre de facture vaut 1, nous obtiendrons bien le mot paiement.

Cependant, pour la valeur 0, et supérieure à 1, Laravel nous retourne paiements.

En anglais, c'est la règle mais en français, la valeur 0 ne doit pas ajouter un "S".


Pour se faire, je me suis créé une petite méthode qui va palier ce problème.


Dans AppServiceProvider.php, nous allons ajouter ce bout de code :


public function boot()
{
    Stringable::macro('pluralFr', function (int $count) {
        return new Stringable(Str::of($this->value)->plural($count === 0 ? 1 : $count));
    });
}


Maintenant, dans notre blade, il nous suffit de l'appeler en remplacement de plural.


Illuminate\Support\Str::of('paiement')->pluralFr($invoices->count())
Cours rédigé par Vincent, publié le 06/10/2021