¿Cómo pluralizar dinámicamente o no una palabra con Angular?
Estás trabajando para un proyecto con Angular. Debe singularizar o pluralizar dinámicamente sus palabras dependiendo de un conteo para mostrar al usuario final. Una primera y común solución sería pensar y usar i18nPlural .
¿Por qué no usar i18nPlural todo el tiempo?
Puede estar un poco sobrecargado para un uso simple. Por ejemplo, si no necesita ninguna traducción y solo necesita pluralizar palabras comunes del idioma, i18nplural agregará a su proyecto tantas funciones adicionales que no necesita. Puede resultar en un aumento potencial de su construcción final , sin costo alguno, en su caso de uso. Por eso puede ser interesante encontrar una solución más sencilla.
Entonces, ¿qué otra solución puedo implementar?
Personalmente, elegí buscar la tubería más limpia y simple que pudiera crear para mi caso de uso. Por lo tanto, busqué algunas soluciones propuestas en StackOverflow, para tener una primera base. Finalmente basé mi propia tubería en el siguiente código (fuente disponible en la última sección):
Sin embargo, incluso este código fuente todavía era demasiado complicado para mí. El idioma de mi proyecto es el francés. Eso significa que la mayoría de las veces, una palabra en plural tendrá una "s" o una "x" y eso es todo. Así que lo refactoricé en una tubería más limpia, reduje a la mitad el número de líneas:
Una vez que la tubería esté configurada correctamente, aquí hay un ejemplo de cómo usarla:
En conclusión, obtiene el mismo resultado que i18nPlural o el código base, pero en un tamaño de archivo más pequeño, un código más legible y, por lo tanto, más fácil de mantener.
Espera, pero hay algunos casos que no funcionarán…
De hecho, incluso en francés, por algunas palabras, esta pipa no cubrirá su caso. Por ejemplo, caballo => caballos. El código actual solo agrega el parámetro pluralForm al final de la palabra, donde para ese ejemplo, tendríamos que cambiar la cadena existente.
Sin embargo, el propósito de este artículo fue mostrar que puede ser una buena idea comenzar lo más cerca posible con su caso de uso específico . Si llega un momento en el que necesita agregar más casos de uso, significa que ha llegado el momento de refactorizar el código. ¡Pero no antes!
Esta afirmación es cierta incluso a mayor escala. No desarrolle una función adicional que su cliente no solicite . O al menos no antes de que tu cliente lo acepte. Mantendrá un código limpio, aumentará la legibilidad de su código e incluso ahorrará algunos tamaños de archivo . Es un hecho que el rendimiento juega un papel importante en el mundo actual, ¡así que apila las probabilidades a tu favor tanto como sea posible!
Fuente
Publicación de StackOverflow utilizada para mi código base

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































