Багато разів під час генерації повідомлень, які відображатимуться користувачеві, повідомлення буде містити ряд того, про що я хочу повідомити клієнта.
Наведу приклад: Клієнт вибрав ряд предметів від 1 і вище та натиснув видалити. Тепер я хочу надати клієнту повідомлення з підтвердженням, і хочу зазначити кількість вибраних ним елементів, щоб мінімізувати шанс помилки, вибравши купу елементів і натиснувши видалити, коли він хоче видалити лише один із їх.
Один із способів - зробити загальне повідомлення таким чином:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
"Проблема" тут - випадок, коли noofitemselected
дорівнює 1, і ми повинні написати елемент і це замість елементів і їх .
Моє нормальне рішення буде чимось подібним
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
Це стає досить довгим і досить неприємним дійсно швидко, якщо в коді є багато посилань на множину чисел, і фактичне повідомлення стає важко прочитати.
Тож мої запитання просто. Чи є кращі способи генерування таких повідомлень?
EDIT
Я бачу, що багато людей дуже зациклювались на тому, що я згадав, що повідомлення повинно відображатися у вікні повідомлення, і він просто дав відповідь, як уникнути використання вікна повідомлень, і це все добре .
Але пам’ятайте, що проблема плюралізації стосується також текстів інших місць програми, крім скриньки повідомлень. Наприклад, мітка поряд із сіткою, що відображає кількість рядків, вибраних у сітці, матиме ту саму проблему щодо плюралізації.
Отже, це в основному стосується більшості тексту, який певним чином виводиться з програм, і тоді рішення не таке просте, як просто змінити програму, щоб більше не виводити текст :)