Много раз при генерации сообщений, отображаемых пользователю, сообщение будет содержать число что-то, о котором я хочу сообщить клиенту.Множественность в сообщениях пользователя
Я приведу пример: клиент выбрал несколько элементов от 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") + "?";
Это получает довольно долго и довольно неприятный очень быстро, если есть много ссылок на множество чисел внутри кода, и фактическое сообщение становится трудно читать.
Так что мои вопросы просто. Есть ли лучшие способы генерации таких сообщений?
EDIT
Я вижу много людей уже получили очень повесил трубку в том случае, когда я говорил о том, что сообщение должно отображаться в окне сообщения, а просто дал ответ о том, как избежать использования ящик сообщений вообще, и это все хорошо.
Но помните, что проблема плюрализации также применяется к текстам других мест в программе в дополнение к ящикам сообщений. Например, метка рядом с сеткой, отображающей количество строк, выбранных в сетке, будет иметь одинаковую проблему с плюрализацией.
Так что это в основном применяется для большинства текста, выведенный в некотором роде из программ, а затем решение не так просто, как просто изменить программу, чтобы не выводится текст больше :)
+1 Хороший вопрос – abhilash 2010-11-23 08:40:40
@ 0xA3: Я действительно не знаю, имеет ли каждый язык плюрализацию, легко выражается как «элемент (ы)». – Jens 2010-11-23 09:02:08