Wielokrotnie, podczas generowania wiadomości do pokazania użytkownikowi, wiadomość będzie zawierała szereg rzeczy , o których chcę poinformować klienta.
Podam przykład: klient wybrał kilka pozycji od 1 wzwyż i kliknął Usuń. Teraz chcę przekazać klientowi wiadomość potwierdzającą i chcę wspomnieć o liczbie wybranych przez niego pozycji, aby zminimalizować możliwość popełnienia błędu przez wybranie kilku pozycji i kliknięcie przycisku Usuń, gdy chce usunąć tylko jedną z im.
Jednym ze sposobów jest utworzenie ogólnej wiadomości w ten sposób:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
"Problemem" jest tutaj przypadek, w którym noofitemselected
jest 1 i musimy wpisać item i to zamiast itemów i je .
Moje normalne rozwiązanie będzie takie
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
Robi się to dość długo i dość paskudnie, naprawdę szybko, jeśli w kodzie jest wiele odniesień do mnogości liczb, a rzeczywista wiadomość staje się trudna do odczytania.
Więc moje pytania są proste. Czy są jakieś lepsze sposoby generowania takich wiadomości?
EDYTOWAĆ
Widzę, że wiele osób bardzo się rozłączyło w przypadku, gdy wspomniałem, że wiadomość powinna być wyświetlana w skrzynce wiadomości i po prostu udzieliła odpowiedzi, jak w ogóle uniknąć korzystania z tej skrzynki i to wszystko jest w porządku .
Pamiętaj jednak, że problem liczby mnogiej dotyczy również tekstów innych miejsc w programie oprócz okien komunikatów. Na przykład etykieta obok siatki wyświetlającej liczbę linii wybranych w siatce będzie miała ten sam problem dotyczący liczby mnogiej.
Zasadniczo dotyczy to większości tekstu, który jest w jakiś sposób generowany przez programy, a wtedy rozwiązanie nie jest tak proste, jak po prostu zmienić program tak, aby nie wyświetlał już tekstu :)