Много раз, когда вы создаете сообщения для пользователя, сообщение будет содержать то, о чем я хочу сообщить клиенту.
Я приведу пример: клиент выбрал несколько элементов из 1 и выше и нажал кнопку "Удалить". Теперь я хочу дать подтверждение клиенту, и я хочу упомянуть количество элементов, которые он выбрал, чтобы свести к минимуму вероятность того, что он допустил ошибку, выбрав кучу элементов и нажав кнопку delete, когда он только хочет удалить одну из их.
Один из способов - создать общее сообщение следующим образом:
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") + "?";
Это довольно длинное и довольно неприятное, очень быстрое, если в коде есть много ссылок на числовое число, и реальное сообщение становится трудно читаемым.
Итак, мои вопросы просто. Есть ли лучшие способы генерации таких сообщений?
ИЗМЕНИТЬ
Я вижу, что многие люди сильно зависают в том случае, когда я упоминал, что сообщение должно отображаться внутри окна сообщения, и просто дал ответ о том, как избежать использования окна сообщения вообще, и что все хорошо.
Но помните, что проблема плюрализации также применяется к текстам других мест в программе в дополнение к сообщениям. Например, метка рядом с сеткой, отображающей количество строк, выбранных в сетке, будет иметь одинаковую проблему с плюрализацией.
Итак, это в основном применимо к большинству текстов, которые каким-то образом выводятся из программ, а затем решение не так просто, как просто изменить программу, чтобы не выводить текст больше:)