Muchas veces, al generar mensajes para mostrar al usuario, el mensaje contendrá una serie de algo sobre lo que quiero informar al cliente.
Daré un ejemplo: el cliente ha seleccionado varios elementos del 1 en adelante y ha hecho clic en eliminar. Ahora quiero enviar un mensaje de confirmación al cliente, y quiero mencionar la cantidad de elementos que ha seleccionado para minimizar la posibilidad de que cometa un error al seleccionar un montón de elementos y hacer clic en eliminar cuando solo quiere eliminar uno de ellos.
Una forma es hacer que el mensaje genérico sea así:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
El "problema" aquí es el caso donde noofitemselected
es 1, y tenemos que escribir item y él en lugar de items y ellos .
Mi solución normal será algo como esto
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
Esto se vuelve bastante largo y bastante desagradable muy rápido si hay muchas referencias a la pluralidad de números dentro del código, y el mensaje real se vuelve difícil de leer.
Entonces mi pregunta es simple. ¿Existen mejores formas de generar mensajes como este?
EDITAR
Veo que muchas personas se han quedado muy colgadas en el caso de que mencioné que el mensaje debería mostrarse dentro de un cuadro de mensaje, y simplemente dio una respuesta de cómo evitar usar el cuadro de mensaje, y eso está muy bien. .
Pero recuerde que el problema de la pluralización también se aplica a textos en otros lugares del programa además de los cuadros de mensajes. Por ejemplo, una etiqueta junto a una cuadrícula que muestre el número de líneas seleccionadas en la cuadrícula tendrá el mismo problema con respecto a la pluralización.
Entonces, esto básicamente se aplica a la mayoría del texto que se genera de alguna manera desde los programas, y luego la solución no es tan simple como simplemente cambiar el programa para que ya no genere texto :)