Часто при создании сообщений для показа пользователю сообщение будет содержать число что-то , о котором я хочу сообщить клиенту.
Я приведу пример: клиент выбрал количество товаров от 1 и выше и нажал кнопку удаления. Теперь я хочу отправить клиенту подтверждающее сообщение и упомянуть количество выбранных им предметов, чтобы свести к минимуму вероятность того, что он допустил ошибку, выбрав несколько предметов и нажав «Удалить», когда он хочет удалить только один из им.
Один из способов - сделать общее сообщение следующим образом:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
«Проблема» здесь - это случай, когда noofitemselected
равен 1, и мы должны написать item и it вместо items и их .
Мое нормальное решение будет примерно таким
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
Я вижу, что многие люди очень зациклились на том, что я упомянул, что сообщение должно отображаться в окне сообщения, и просто дал ответ о том, как вообще не использовать окно сообщения, и что все хорошо.
Но помните, что проблема плюрализации распространяется и на тексты в других местах программы, помимо окон сообщений. Например, метка рядом с сеткой, отображающая количество линий, выбранных в сетке, будет иметь ту же проблему в отношении плюрализации.
Таким образом, это в основном относится к большей части текста, который каким-то образом выводится из программ, и тогда решение не так просто, как просто изменить программу так, чтобы она больше не выводила текст:)