Sommaire

La Gestion du plurielgestion du pluriel

Il se peut qu’on ait besoin de plus de souplesse dans les traductions, notamment pour la gestion des Plurielspluriels.

Imaginons, par exemple, que l’on veuille renseigner le nombre de produits disponibles lors de la commande passée.

Le message différera selon le nombre de produits disponibles :

  • Aucun produit disponible

  • Il y a un produit disponible

  • Il y a x produits disponibles

Bien entendu, il est possible dans le template, avec l’instruction {% if ...%} de tester le nombre de produit disponibles et d’afficher le message correspondant.

Mais si ce message doit être affiché à plusieurs endroits, cela nous oblige à dupliquer du code uniquement pour la traduction.

Symfony propose une gestion du pluriel automatiquement dans le catalogue.

Mais pour profiter de ce type de traduction, Symfony utilise un format particulier : le format ICU.

Ce format est disponible en PHP. Vous trouverez plus d’information sur ce type de format sur la page http://userguide.icu-project.org/formatparse/messages

Afin de bénéficier de ce format, il vous faudra renommer le fichier catalogue en ajoutant +intl+icu.

Voici des exemples de conversions de noms de fichiers catalogues de base en nom de fichier au format ICU :

Nom de fichier standard

Nom de fichier au format ICU

messages.en.yaml

messages+intl-icu.en.yaml

messages.fr_FR.xlf

messages+intl-icu.fr_FR.xlf

admin.en.yaml

admin+intl-icu.en.yaml

Par exemple, nous allons renommer notre fichier translations/messages.fr.yaml ...