Viele Male, wenn Nachrichten an den Benutzer zu zeigen , zu erzeugen, werden die Nachricht eine Reihe von enthalten etwas , dass ich über die Kunden informieren will.
Ich gebe ein Beispiel: Der Kunde hat eine Anzahl von Artikeln ab 1 ausgewählt und auf Löschen geklickt. Jetzt möchte ich dem Kunden eine Bestätigungsnachricht geben und die Anzahl der von ihm ausgewählten Artikel erwähnen, um die Wahrscheinlichkeit eines Fehlers zu minimieren, indem er eine Reihe von Artikeln auswählt und auf Löschen klickt, wenn er nur einen löschen möchte Sie.
Eine Möglichkeit besteht darin, die generische Nachricht folgendermaßen zu erstellen:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
Das "Problem" hier ist der Fall, wo noofitemselected
1 ist, und wir müssen Artikel und es anstelle von Artikeln und ihnen schreiben .
Meine normale Lösung wird so etwas sein
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
Dies wird ziemlich schnell und ziemlich schnell sehr böse, wenn es viele Verweise auf die Zahlenvielfalt im Code gibt und die eigentliche Nachricht schwer zu lesen ist.
Meine Fragen sind also einfach. Gibt es bessere Möglichkeiten, solche Nachrichten zu generieren?
BEARBEITEN
Ich sehe, dass viele Personen in dem Fall, dass ich erwähnte, dass die Nachricht in einem Nachrichtenfeld angezeigt werden soll, sehr aufgehängt sind und einfach eine Antwort gegeben haben, wie man die Verwendung des Nachrichtenfelds überhaupt vermeiden kann, und das ist alles gut .
Denken Sie jedoch daran, dass das Problem der Pluralisierung neben Meldungsfeldern auch für Texte an anderen Stellen im Programm gilt. Beispielsweise hat eine Beschriftung neben einem Raster, die die Anzahl der im Raster ausgewählten Linien anzeigt, das gleiche Problem hinsichtlich der Pluralisierung.
Dies gilt also grundsätzlich für die meisten Texte, die auf irgendeine Weise aus Programmen ausgegeben werden, und dann ist die Lösung nicht so einfach, das Programm so zu ändern, dass kein Text mehr ausgegeben wird :)