Plusieurs fois, lors de la génération de messages à montrer à l'utilisateur, le message contiendra un certain nombre de choses que je souhaite informer le client.
Je vais donner un exemple: le client a sélectionné un certain nombre d'articles de 1 et plus, et a cliqué sur supprimer. Maintenant, je veux donner un message de confirmation au client, et je veux mentionner le nombre d'articles qu'il a sélectionnés pour minimiser le risque qu'il fasse une erreur en sélectionnant un groupe d'articles et en cliquant sur supprimer lorsqu'il ne veut supprimer qu'un des leur.
Une façon est de rendre le message générique comme ceci:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
Le "problème" ici est le cas où noofitemselected
est 1, et nous devons écrire item et it à la place des items et eux .
Ma solution normale sera quelque chose comme ça
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
Cela devient assez long et assez désagréable très rapidement s'il y a beaucoup de références à la pluralité de nombres dans le code et que le message réel devient difficile à lire.
Mes questions sont donc simples. Existe-t-il de meilleures façons de générer des messages comme celui-ci?
ÉDITER
Je vois que beaucoup de personnes ont été très accrochées dans le cas où j'ai mentionné que le message devrait être affiché dans une boîte de message, et a simplement donné une réponse sur la façon d'éviter d'utiliser la boîte de message du tout, et c'est très bien .
Mais rappelez-vous que le problème de la pluralisation s'applique également aux textes à d'autres endroits du programme en plus des boîtes de message. Par exemple, une étiquette à côté d'une grille affichant le nombre de lignes sélectionnées dans la grille aura le même problème de pluralisation.
Donc, cela s'applique fondamentalement à la plupart du texte qui est produit d'une manière ou d'une autre à partir de programmes, et la solution n'est pas aussi simple que de simplement changer le programme pour ne plus afficher de texte :)