csharp-humanizer

Crea textos amigables en .NET con Humanizer

Humanizer es una biblioteca de código abierto para C# que proporciona una serie de métodos para facilitar la lectura y la localización de cadenas de texto en aplicaciones .NET.

El concepto de la biblioteca es generar textos más legibles para su lectura por parte de los humanos, haciendo que el interface sea más agradable.

Entre las funcionalidades que ofrece Humanizer se encuentran:

  • Formateo de fechas y horas
  • Pluralización y singularización de cadenas
  • Tratamiento de mayúsculas y minúsculas
  • Generación de nombres aleatorios

Es una librería muy potente con muchos métodos útiles que nos ahorraran una gran cantidad de trabajo.

Cómo usar Humanizer

Podemos añadir la biblioteca a un proyecto de .NET fácilmente, a través del paquete Nuget correspondiente.

Install-Package Humanizer

El uso de Humanizer es muy sencillo. Por ejemplo, podemos convertir cadenas de texto a un formato legible, en distintos tipos Casing.

"CanReturnTitleCase".Humanize(LetterCasing.Title) => "Can Return Title Case"

"Can_return_title_Case".Humanize(LetterCasing.Title) => "Can Return Title Case"

"CanReturnLowerCase".Humanize(LetterCasing.LowerCase) => "can return lower case"

"CanHumanizeIntoUpperCase".Humanize(LetterCasing.AllCaps) => "CAN HUMANIZE INTO UPPER CASE"

Truncar textos

"Long text to truncate".Truncate(10, Truncator.FixedLength) => "Long text…"
"Long text to truncate".Truncate(10, "---", Truncator.FixedLength) => "Long te---"

"Long text to truncate".Truncate(6, Truncator.FixedNumberOfCharacters) => "Long t…"
"Long text to truncate".Truncate(6, "---", Truncator.FixedNumberOfCharacters) => "Lon---"

"Long text to truncate".Truncate(2, Truncator.FixedNumberOfWords) => "Long text…"
"Long text to truncate".Truncate(2, "---", Truncator.FixedNumberOfWords) => "Long text---"

Manipular fechas e intervalos de tiempo.

DateTime.UtcNow.AddHours(-30).Humanize() => "yesterday"
DateTime.UtcNow.AddHours(-2).Humanize() => "2 hours ago"

DateTime.UtcNow.AddHours(30).Humanize() => "tomorrow"
DateTime.UtcNow.AddHours(2).Humanize() => "2 hours from now"

DateTimeOffset.UtcNow.AddHours(1).Humanize() => "an hour from now"

Convertir una palabra a plurar o singular.

"Men".Pluralize(inputIsKnownToBeSingular: false) => "Men"
"Man".Pluralize(inputIsKnownToBeSingular: false) => "Men"
"string".Pluralize(inputIsKnownToBeSingular: false) => "strings"

"Men".Singularize(inputIsKnownToBePlural: false) => "Man"
"Man".Singularize(inputIsKnownToBePlural: false) => "Man"
"strings".Singularize(inputIsKnownToBePlural: false) => "string"

Además de estos ejemplos, podemos convertir enumeraciones, colecciones, números cardinales, y un montón de funciones más. Podéis consultar la documentación del proyecto para ver todas las opciones.

Destacar que Humanizer es compatible con múltiples idiomas, en entre los que se incluye el castellano. En general, está muy bien traducido y no deberíais tener ningún problema.

Humanizer es Open Source, y todo el código del proyecto se encuentra disponible en GitHub - Humanizr/Humanizer: Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities