Molte volte, quando si generano i messaggi di mostrare all'utente, il messaggio conterrà una serie di qualcosa che voglio informare il cliente circa.
Faccio un esempio: il cliente ha selezionato un numero di articoli da 1 in su e ha fatto clic su Elimina. Ora voglio dare un messaggio di conferma al cliente e voglio menzionare il numero di articoli che ha selezionato per ridurre al minimo la possibilità che commetta un errore selezionando un gruppo di articoli e facendo clic su Elimina quando vuole eliminare solo uno di loro.
Un modo è rendere il messaggio generico in questo modo:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
Il "problema" qui è il caso in cui noofitemselected
è 1, e dobbiamo scrivere item and it invece di items e loro .
La mia soluzione normale sarà qualcosa del genere
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
Questo diventa piuttosto lungo e piuttosto sgradevole molto velocemente se ci sono molti riferimenti alla pluralità dei numeri all'interno del codice e il messaggio effettivo diventa difficile da leggere.
Quindi le mie domande sono semplici. Esistono modi migliori per generare messaggi come questo?
MODIFICARE
Vedo che molte persone si sono bloccate nel caso in cui ho menzionato che il messaggio dovrebbe essere visualizzato all'interno di una finestra di messaggio e ha semplicemente dato una risposta su come evitare del tutto di utilizzare la finestra di messaggio, e va bene .
Ma ricorda che il problema della pluralizzazione si applica anche ai testi in altri punti del programma oltre alle finestre di messaggio. Ad esempio, un'etichetta accanto a una griglia che mostra il numero di righe selezionate nella griglia avrà lo stesso problema per quanto riguarda la pluralizzazione.
Quindi questo fondamentalmente si applica alla maggior parte del testo che viene emesso in qualche modo dai programmi, e quindi la soluzione non è così semplice come cambiare semplicemente il programma per non emettere più testo :)