|singulier_ou_pluriel{ xxx:chaîne_un, xxx:chaîne_plusieurs}

Le filtre |singulier_ou_pluriel permet de faire varier un affichage en fonction de la valeur numérique retournée par la balise à laquelle il est appliqué.

  • Apparu en : SPIP 2.0

Le filtre |singulier_ou_pluriel est la plupart du temps utilisé pour accorder (singulier ou pluriel) les chaînes de langue en fonction du retour d’une balise.

Exemple

Dans notre fichier local_xx.php, nous déclarons :

'nombre_truc_un'   => 'il y a 1 retour dans cette boucle.',
'nombre_truc_plus' => 'il y a @nb@ retours dans cette boucle.'

Puis nous écrivons notre boucle :

<BOUCLE_a(ARTICLES) {critère...}>
  ...
</BOUCLE_a>
[(#TOTAL_BOUCLE|singulier_ou_pluriel{local:nombre_truc_un, local:nombre_truc_plus})]
</B_a>

-  Si la boucle ne retourne qu’un enregistrement, elle affichera :

il y a 1 retour dans cette boucle. 

-  Si la boucle retourne 36 enregistrements (par exemple), elle affichera :

il y a 36 retours dans cette boucle. 

Note : si la valeur fournie est nulle, le filtre ne retourne rien, ce qui permet d’utiliser le filtre |sinon à la suite.

Attention :
Ce filtre attend explicitement des item de langue comme arguments. Il ne faudra donc pas lui passer des balises de langue :
|singulier_ou_pluriel{module:item_un, module:item_plus}
est la bonne écriture ;
|singulier_ou_pluriel{<:module:item_un:>, <:module:item_plus:>}
est une mauvaise écriture.

Personnaliser le filtre

À partir de SPIP 4.0, il est possible de définir des fonctions pour personnaliser le fonctionnement de ce filtre
-  pour une langue particulière. Pour cela, il faut définir une fonction suffixée par le code de langue. Par exemple, la fonction singulier_ou_pluriel_ar() pour la langue arabe.
-  ou de manière générique pour toutes les langues. En effet, SPIP fait appel à charger_fonction pour récupérer la version de singulier_ou_pluriel spécialisée par vos soins.

Auteur cam.lafit, denisb Publié le : Mis à jour : 09/07/21

Traductions : català, English, français, Nederlands