Humanizer is a .NET library for converting strings, enums, dates, times, durations, numbers, quantities, and collections into human-readable text.
The library solves the problem of formatting data in ways that feel natural to end users. Rather than displaying raw values, it transforms them into phrases appropriate for human consumption. For example, it handles pluralization and singularization of words according to culture-specific rules, converts time spans into readable duration phrases, and formats byte sizes using standard SI and IEC units. The approach relies on locale-aware rules, including support for CLDR cardinal categories, so that output respects the grammatical conventions of different languages and regions.
Developers should choose this tool when building applications that need to present data to users in multiple languages or when they want to avoid hand-coding common formatting tasks. It suits projects ranging from simple console applications to complex web services that serve international audiences. The library provides both legacy APIs for backward compatibility and newer opt-in APIs with stricter behavior—for instance, newer pluralization methods return false when a requested form is not available rather than falling back to English, giving applications explicit control over localization completeness.
The project maintains a structured codebase with the main library in a dedicated source directory and comprehensive xUnit test coverage. Documentation is versioned alongside releases and includes upgrade guides between versions, along with a migration analyzer to help developers adapt to API changes. The contribution process is formalized through a documented guide, and the project actively manages issues for bug reports, feature requests, and documentation improvements.