Full Code of Humanizr/Humanizer for AI

main 6b047ad02cd2 cached
716 files
3.3 MB
916.2k tokens
4068 symbols
1 requests
Download .txt
Showing preview only (3,647K chars total). Download the full file or copy to clipboard to get everything.
Repository: Humanizr/Humanizer
Branch: main
Commit: 6b047ad02cd2
Files: 716
Total size: 3.3 MB

Directory structure:
gitextract_ui5lhkfj/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── codeql/
│   │   └── codeql-config.yml
│   ├── copilot-instructions.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── .devskim
│       ├── benchmarks-baseline-vs-current.yml
│       ├── codeql.yml
│       ├── copilot-setup-steps.yml
│       ├── devskim.yml
│       └── jekyll-gh-pages.yml
├── .gitignore
├── AGENTS.md
├── Directory.Build.props
├── Directory.Build.targets
├── Directory.Packages.props
├── Directory.Solution.targets
├── Humanizer.slnx
├── Humanizer.snk
├── NuSpecs/
│   ├── Humanizer.Core.af.nuspec
│   ├── Humanizer.Core.ar.nuspec
│   ├── Humanizer.Core.az.nuspec
│   ├── Humanizer.Core.bg.nuspec
│   ├── Humanizer.Core.bn.nuspec
│   ├── Humanizer.Core.ca.nuspec
│   ├── Humanizer.Core.cs.nuspec
│   ├── Humanizer.Core.da.nuspec
│   ├── Humanizer.Core.de.nuspec
│   ├── Humanizer.Core.el.nuspec
│   ├── Humanizer.Core.es.nuspec
│   ├── Humanizer.Core.fa.nuspec
│   ├── Humanizer.Core.fi.nuspec
│   ├── Humanizer.Core.fil.nuspec
│   ├── Humanizer.Core.fr.nuspec
│   ├── Humanizer.Core.he.nuspec
│   ├── Humanizer.Core.hr.nuspec
│   ├── Humanizer.Core.hu.nuspec
│   ├── Humanizer.Core.hy.nuspec
│   ├── Humanizer.Core.id.nuspec
│   ├── Humanizer.Core.is.nuspec
│   ├── Humanizer.Core.it.nuspec
│   ├── Humanizer.Core.ja.nuspec
│   ├── Humanizer.Core.ko.nuspec
│   ├── Humanizer.Core.ku.nuspec
│   ├── Humanizer.Core.lb.nuspec
│   ├── Humanizer.Core.lt.nuspec
│   ├── Humanizer.Core.lv.nuspec
│   ├── Humanizer.Core.ms.nuspec
│   ├── Humanizer.Core.mt.nuspec
│   ├── Humanizer.Core.nb.nuspec
│   ├── Humanizer.Core.nl.nuspec
│   ├── Humanizer.Core.nuspec
│   ├── Humanizer.Core.pl.nuspec
│   ├── Humanizer.Core.pt-BR.nuspec
│   ├── Humanizer.Core.pt.nuspec
│   ├── Humanizer.Core.ro.nuspec
│   ├── Humanizer.Core.ru.nuspec
│   ├── Humanizer.Core.sk.nuspec
│   ├── Humanizer.Core.sl.nuspec
│   ├── Humanizer.Core.sr-Latn.nuspec
│   ├── Humanizer.Core.sr.nuspec
│   ├── Humanizer.Core.sv.nuspec
│   ├── Humanizer.Core.ta.nuspec.unused
│   ├── Humanizer.Core.th.nuspec
│   ├── Humanizer.Core.tr.nuspec
│   ├── Humanizer.Core.uk.nuspec
│   ├── Humanizer.Core.uz-Cyrl-UZ.nuspec
│   ├── Humanizer.Core.uz-Latn-UZ.nuspec
│   ├── Humanizer.Core.vi.nuspec
│   ├── Humanizer.Core.zh-CN.nuspec
│   ├── Humanizer.Core.zh-Hans.nuspec
│   ├── Humanizer.Core.zh-Hant.nuspec
│   └── Humanizer.nuspec
├── ResXManager.config.xml
├── azure-pipelines.yml
├── docs/
│   ├── _config.yml
│   ├── _layouts/
│   │   └── default.html
│   ├── assets/
│   │   └── css/
│   │       └── style.css
│   ├── extensibility.md
│   ├── index.md
│   ├── installation.md
│   ├── localization.md
│   ├── migration-v3.md
│   ├── quick-start.md
│   ├── string-dehumanization.md
│   ├── string-humanization.md
│   ├── string-truncation.md
│   └── v3-namespace-migration.md
├── global.json
├── license.txt
├── nuget.config
├── readme.md
├── release_notes.md
├── src/
│   ├── Benchmarks/
│   │   ├── .editorconfig
│   │   ├── Benchmarks.csproj
│   │   ├── EnglishArticleBenchmarks.cs
│   │   ├── EnglishToWordsBenchmark.cs
│   │   ├── EnumBenchmarks.cs
│   │   ├── GlobalUsings.cs
│   │   ├── InflectorBenchmarks.cs
│   │   ├── ItalianNumberBenchmarks.cs
│   │   ├── MetricNumeralBenchmarks.cs
│   │   ├── NumberToWordsBenchmarks.cs
│   │   ├── OrdinalBenchmarks.cs
│   │   ├── Program.cs
│   │   ├── README.md
│   │   ├── RomanNumeralBenchmarks.cs
│   │   ├── StringHumanizeBenchmarks.cs
│   │   ├── TimeOnlyToClockNotationConverterBenchmarks.cs
│   │   ├── ToQuantityBenchmarks.cs
│   │   ├── TransformersBenchmarks.cs
│   │   ├── VocabularyBenchmarks.cs
│   │   └── WordsToNumberBenchmarks.cs
│   ├── Humanizer/
│   │   ├── ArticlePrefixSort.cs
│   │   ├── Bytes/
│   │   │   ├── ByteRate.cs
│   │   │   ├── ByteSize.cs
│   │   │   ├── ByteSizeExtensions.cs
│   │   │   └── LICENSE
│   │   ├── CasingExtensions.cs
│   │   ├── ClockNotationRounding.cs
│   │   ├── CollectionHumanizeExtensions.cs
│   │   ├── Configuration/
│   │   │   ├── CollectionFormatterRegistry.cs
│   │   │   ├── Configurator.cs
│   │   │   ├── DateOnlyToOrdinalWordsConverterRegistry.cs
│   │   │   ├── DateToOrdinalWordsConverterRegistry.cs
│   │   │   ├── FormatterRegistry.cs
│   │   │   ├── LocaliserRegistry.cs
│   │   │   ├── NumberToWordsConverterRegistry.cs
│   │   │   ├── OrdinalizerRegistry.cs
│   │   │   ├── TimeOnlyToClockNotationConvertersRegistry.cs
│   │   │   └── WordsToNumberConverterRegistry.cs
│   │   ├── DateHumanizeExtensions.cs
│   │   ├── DateTimeHumanizeStrategy/
│   │   │   ├── DateTimeHumanizeAlgorithms.cs
│   │   │   ├── DefaultDateOnlyHumanizeStrategy.cs
│   │   │   ├── DefaultDateTimeHumanizeStrategy.cs
│   │   │   ├── DefaultDateTimeOffsetHumanizeStrategy.cs
│   │   │   ├── DefaultTimeOnlyHumanizeStrategy.cs
│   │   │   ├── IDateOnlyHumanizeStrategy.cs
│   │   │   ├── IDateTimeHumanizeStrategy.cs
│   │   │   ├── IDateTimeOffsetHumanizeStrategy.cs
│   │   │   ├── ITimeOnlyHumanizeStrategy.cs
│   │   │   ├── PrecisionDateOnlyHumanizeStrategy.cs
│   │   │   ├── PrecisionDateTimeHumanizeStrategy.cs
│   │   │   ├── PrecisionDateTimeOffsetHumanizeStrategy.cs
│   │   │   └── PrecisionTimeOnlyHumanizeStrategy.cs
│   │   ├── DateToOrdinalWordsExtensions.cs
│   │   ├── EnumCache.cs
│   │   ├── EnumDehumanizeExtensions.cs
│   │   ├── EnumHumanizeExtensions.cs
│   │   ├── FluentDate/
│   │   │   ├── In.Months.cs
│   │   │   ├── In.Months.tt
│   │   │   ├── In.SomeTimeFrom.cs
│   │   │   ├── In.SomeTimeFrom.tt
│   │   │   ├── In.cs
│   │   │   ├── InDate.Months.cs
│   │   │   ├── InDate.Months.tt
│   │   │   ├── InDate.SomeTimeFrom.cs
│   │   │   ├── InDate.SomeTimeFrom.tt
│   │   │   ├── InDate.cs
│   │   │   ├── On.Days.cs
│   │   │   ├── On.Days.tt
│   │   │   ├── OnDate.Days.cs
│   │   │   ├── OnDate.Days.tt
│   │   │   └── PrepositionsExtensions.cs
│   │   ├── GlobalUsings.cs
│   │   ├── GrammaticalCase.cs
│   │   ├── GrammaticalGender.cs
│   │   ├── HeadingExtensions.cs
│   │   ├── Humanizer.csproj
│   │   ├── Inflections/
│   │   │   ├── LICENSE
│   │   │   ├── Vocabularies.cs
│   │   │   └── Vocabulary.cs
│   │   ├── InflectorExtensions.cs
│   │   ├── LetterCasing.cs
│   │   ├── Localisation/
│   │   │   ├── CollectionFormatters/
│   │   │   │   ├── DefaultCollectionFormatter.cs
│   │   │   │   ├── ICollectionFormatter.cs
│   │   │   │   └── OxfordStyleCollectionFormatter.cs
│   │   │   ├── DataUnit.cs
│   │   │   ├── DateToOrdinalWords/
│   │   │   │   ├── CaDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   ├── CaDateToOrdinalWordsConverter.cs
│   │   │   │   ├── DefaultDateOnlyToOrdinalWordConverter.cs
│   │   │   │   ├── DefaultDateToOrdinalWordConverter.cs
│   │   │   │   ├── EsDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   ├── EsDateToOrdinalWordsConverter.cs
│   │   │   │   ├── FrDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   ├── FrDateToOrdinalWordsConverter.cs
│   │   │   │   ├── IDateOnlyToOrdinalWordConverter.cs
│   │   │   │   ├── IDateToOrdinalWordConverter.cs
│   │   │   │   ├── LtDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   ├── LtDateToOrdinalWordsConverter.cs
│   │   │   │   ├── UsDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   └── UsDateToOrdinalWordsConverter.cs
│   │   │   ├── Formatters/
│   │   │   │   ├── ArabicFormatter.cs
│   │   │   │   ├── BulgarianFormatter.cs
│   │   │   │   ├── CatalanFormatter.cs
│   │   │   │   ├── CroatianFormatter.cs
│   │   │   │   ├── CzechSlovakPolishFormatter.cs
│   │   │   │   ├── DefaultFormatter.cs
│   │   │   │   ├── FrenchFormatter.cs
│   │   │   │   ├── GermanFormatter.cs
│   │   │   │   ├── HebrewFormatter.cs
│   │   │   │   ├── IFormatter.cs
│   │   │   │   ├── IcelandicFormatter.cs
│   │   │   │   ├── LithuanianFormatter.cs
│   │   │   │   ├── LuxembourgishFormatter.cs
│   │   │   │   ├── MalteseFormatter.cs
│   │   │   │   ├── RomanianFormatter.cs
│   │   │   │   ├── RussianFormatter.cs
│   │   │   │   ├── SerbianFormatter.cs
│   │   │   │   ├── SlovenianFormatter.cs
│   │   │   │   └── UkrainianFormatter.cs
│   │   │   ├── GrammaticalNumber/
│   │   │   │   ├── LithuanianNumberForm.cs
│   │   │   │   ├── LithuanianNumberFormDetector.cs
│   │   │   │   ├── RussianGrammaticalNumber.cs
│   │   │   │   └── RussianGrammaticalNumberDetector.cs
│   │   │   ├── NumberToWords/
│   │   │   │   ├── AfrikaansNumberToWordsConverter.cs
│   │   │   │   ├── ArabicNumberToWordsConverter.cs
│   │   │   │   ├── ArmenianNumberToWordsConverter.cs
│   │   │   │   ├── AzerbaijaniNumberToWordsConverter.cs
│   │   │   │   ├── BanglaNumberToWordsConverter.cs
│   │   │   │   ├── BrazilianPortugueseNumberToWordsConverter.cs
│   │   │   │   ├── BulgarianNumberToWordsConverter.cs
│   │   │   │   ├── CatalanNumberToWordsConverter.cs
│   │   │   │   ├── CentralKurdishNumberToWordsConverter.cs
│   │   │   │   ├── ChineseNumberToWordsConverter.cs
│   │   │   │   ├── CroatianNumberToWordsConverter.cs
│   │   │   │   ├── CzechNumberToWordsConverter.cs
│   │   │   │   ├── DefaultNumberToWordsConverter.cs
│   │   │   │   ├── DutchNumberToWordsConverter.cs
│   │   │   │   ├── EnglishNumberToWordsConverter.cs
│   │   │   │   ├── FarsiNumberToWordsConverter.cs
│   │   │   │   ├── FinnishNumberToWordsConverter.cs
│   │   │   │   ├── FrenchBelgianNumberToWordsConverter.cs
│   │   │   │   ├── FrenchNumberToWordsConverter.cs
│   │   │   │   ├── FrenchNumberToWordsConverterBase.cs
│   │   │   │   ├── FrenchSwissNumberToWordsConverter.cs
│   │   │   │   ├── GenderedNumberToWordsConverter.cs
│   │   │   │   ├── GenderlessNumberToWordsConverter.cs
│   │   │   │   ├── GermanNumberToWordsConverter.cs
│   │   │   │   ├── GermanNumberToWordsConverterBase.cs
│   │   │   │   ├── GermanSwissLiechtensteinNumberToWordsConverter.cs
│   │   │   │   ├── GreekNumberToWordsConverter.cs
│   │   │   │   ├── HebrewNumberToWordsConverter.cs
│   │   │   │   ├── HungarianNumberToWordsConverter.cs
│   │   │   │   ├── INumberToWordsConverter.cs
│   │   │   │   ├── IcelandicNumberToWordsConverter.cs
│   │   │   │   ├── IndianNumberToWordsConverter.cs
│   │   │   │   ├── Italian/
│   │   │   │   │   ├── ItalianCardinalNumberCruncher.cs
│   │   │   │   │   └── ItalianOrdinalNumberCruncher.cs
│   │   │   │   ├── ItalianNumberToWordsConverter.cs
│   │   │   │   ├── JapaneseNumberToWordsConverter.cs
│   │   │   │   ├── KoreanNumberToWordsConverter.cs
│   │   │   │   ├── LatvianNumberToWordsConverter.cs
│   │   │   │   ├── LithuanianNumberToWordsConverter.cs
│   │   │   │   ├── LuxembourgishNumberToWordsConverter.cs
│   │   │   │   ├── MalteseNumberToWordsConvertor.cs
│   │   │   │   ├── NorwegianBokmalNumberToWordsConverter.cs
│   │   │   │   ├── PolishNumberToWordsConverter.cs
│   │   │   │   ├── PortugueseNumberToWordsConverter.cs
│   │   │   │   ├── Romanian/
│   │   │   │   │   ├── RomanianCardinalNumberConverter.cs
│   │   │   │   │   └── RomanianOrdinalNumberConverter.cs
│   │   │   │   ├── RomanianNumberToWordsConverter.cs
│   │   │   │   ├── RussianNumberToWordsConverter.cs
│   │   │   │   ├── SerbianCyrlNumberToWordsConverter.cs
│   │   │   │   ├── SerbianNumberToWordsConverter.cs
│   │   │   │   ├── SlovenianNumberToWordsConverter.cs
│   │   │   │   ├── SpanishNumberToWordsConverter.cs
│   │   │   │   ├── SwedishNumberToWordsConverter.cs
│   │   │   │   ├── TamilNumberToWordsConverter.cs
│   │   │   │   ├── ThaiNumberToWordsConverter.cs
│   │   │   │   ├── TurkishNumberToWordConverter.cs
│   │   │   │   ├── UkrainianNumberToWordsConverter.cs
│   │   │   │   ├── UzbekCyrlNumberToWordConverter.cs
│   │   │   │   ├── UzbekLatnNumberToWordConverter.cs
│   │   │   │   └── VietnameseNumberToWordsConverter.cs
│   │   │   ├── Ordinalizers/
│   │   │   │   ├── ArmenianOrdinalizer.cs
│   │   │   │   ├── AzerbaijaniOrdinalizer.cs
│   │   │   │   ├── CatalanOrdinalizer.cs
│   │   │   │   ├── DefaultOrdinalizer.cs
│   │   │   │   ├── DutchOrdinalizer.cs
│   │   │   │   ├── EnglishOrdinalizer.cs
│   │   │   │   ├── FrenchOrdinalizer.cs
│   │   │   │   ├── GermanOrdinalizer.cs
│   │   │   │   ├── HungarianOrdinalizer.cs
│   │   │   │   ├── IOrdinalizer.cs
│   │   │   │   ├── IcelandicOrdinalizer.cs
│   │   │   │   ├── ItalianOrdinalizer.cs
│   │   │   │   ├── LuxembourgishOrdinalizer.cs
│   │   │   │   ├── PortugueseOrdinalizer.cs
│   │   │   │   ├── RomanianOrdinalizer.cs
│   │   │   │   ├── RussianOrdinalizer.cs
│   │   │   │   ├── SpanishOrdinalizer.cs
│   │   │   │   ├── TurkishOrdinalizer.cs
│   │   │   │   └── UkrainianOrdinalizer.cs
│   │   │   ├── ResourceKeys.Common.cs
│   │   │   ├── ResourceKeys.DateHumanize.cs
│   │   │   ├── ResourceKeys.TimeSpanHumanize.cs
│   │   │   ├── ResourceKeys.TimeUnitSymbol.cs
│   │   │   ├── Resources.cs
│   │   │   ├── Tense.cs
│   │   │   ├── TimeToClockNotation/
│   │   │   │   ├── BrazilianPortugueseTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── CaTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── DefaultTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── EsTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── FrTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── GermanTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── ITimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── LbTimeOnlyToClockNotationConverter.cs
│   │   │   │   └── PortugueseTimeOnlyToClockNotationConverter.cs
│   │   │   ├── TimeUnit.cs
│   │   │   └── WordsToNumber/
│   │   │       ├── DefaultWordsToNumberConverter.cs
│   │   │       ├── EnglishWordsToNumberConverter.cs
│   │   │       ├── GenderlessWordsToNumberConverter.cs
│   │   │       └── IWordsToNumberConverter.cs
│   │   ├── MetricNumeralExtensions.cs
│   │   ├── MetricNumeralFormats.cs
│   │   ├── NoMatchFoundException.cs
│   │   ├── NumberToNumberExtensions.cs
│   │   ├── NumberToTimeSpanExtensions.cs
│   │   ├── NumberToWordsExtension.cs
│   │   ├── OnNoMatch.cs
│   │   ├── OrdinalizeExtensions.cs
│   │   ├── Plurality.cs
│   │   ├── PolyfillShims.cs
│   │   ├── PolyfillShims2.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   ├── Resources.af.resx
│   │   │   ├── Resources.ar.resx
│   │   │   ├── Resources.az.resx
│   │   │   ├── Resources.bg.resx
│   │   │   ├── Resources.bn.resx
│   │   │   ├── Resources.ca.resx
│   │   │   ├── Resources.cs.resx
│   │   │   ├── Resources.da.resx
│   │   │   ├── Resources.de.resx
│   │   │   ├── Resources.el.resx
│   │   │   ├── Resources.es.resx
│   │   │   ├── Resources.fa.resx
│   │   │   ├── Resources.fi.resx
│   │   │   ├── Resources.fil.resx
│   │   │   ├── Resources.fr.resx
│   │   │   ├── Resources.he.resx
│   │   │   ├── Resources.hr.resx
│   │   │   ├── Resources.hu.resx
│   │   │   ├── Resources.hy.resx
│   │   │   ├── Resources.id.resx
│   │   │   ├── Resources.is.resx
│   │   │   ├── Resources.it.resx
│   │   │   ├── Resources.ja.resx
│   │   │   ├── Resources.ko.resx
│   │   │   ├── Resources.ku.resx
│   │   │   ├── Resources.lb.resx
│   │   │   ├── Resources.lt.resx
│   │   │   ├── Resources.lv.resx
│   │   │   ├── Resources.ms.resx
│   │   │   ├── Resources.mt.resx
│   │   │   ├── Resources.nb.resx
│   │   │   ├── Resources.nl.resx
│   │   │   ├── Resources.pl.resx
│   │   │   ├── Resources.pt-BR.resx
│   │   │   ├── Resources.pt.resx
│   │   │   ├── Resources.resx
│   │   │   ├── Resources.ro.resx
│   │   │   ├── Resources.ru.resx
│   │   │   ├── Resources.sk.resx
│   │   │   ├── Resources.sl.resx
│   │   │   ├── Resources.sr-Latn.resx
│   │   │   ├── Resources.sr.resx
│   │   │   ├── Resources.sv.resx
│   │   │   ├── Resources.th.resx
│   │   │   ├── Resources.tr.resx
│   │   │   ├── Resources.uk.resx
│   │   │   ├── Resources.uz-Cyrl-UZ.resx
│   │   │   ├── Resources.uz-Latn-UZ.resx
│   │   │   ├── Resources.vi.resx
│   │   │   ├── Resources.zh-CN.resx
│   │   │   ├── Resources.zh-Hans.resx
│   │   │   └── Resources.zh-Hant.resx
│   │   ├── RomanNumeralExtensions.cs
│   │   ├── StringDehumanizeExtensions.cs
│   │   ├── StringHumanizeExtensions.cs
│   │   ├── TimeOnlyToClockNotationExtensions.cs
│   │   ├── TimeSpanHumanizeExtensions.cs
│   │   ├── TimeUnitToSymbolExtensions.cs
│   │   ├── ToQuantityExtensions.cs
│   │   ├── Transformer/
│   │   │   ├── ICulturedStringTransformer.cs
│   │   │   ├── IStringTransformer.cs
│   │   │   ├── To.cs
│   │   │   ├── ToLowerCase.cs
│   │   │   ├── ToSentenceCase.cs
│   │   │   ├── ToTitleCase.cs
│   │   │   └── ToUpperCase.cs
│   │   ├── TruncateExtensions.cs
│   │   ├── TruncateFrom.cs
│   │   ├── Truncation/
│   │   │   ├── DynamicLengthAndPreserveWordsTruncator.cs
│   │   │   ├── DynamicNumberOfCharactersAndPreserveWordTruncator.cs
│   │   │   ├── FixedLengthTruncator.cs
│   │   │   ├── FixedNumberOfCharactersTruncator.cs
│   │   │   ├── FixedNumberOfWordsTruncator.cs
│   │   │   ├── ITruncator.cs
│   │   │   └── Truncator.cs
│   │   ├── TupleizeExtensions.cs
│   │   ├── WordForm.cs
│   │   └── WordsToNumberExtension.cs
│   ├── Humanizer.Analyzers/
│   │   ├── AnalyzerReleases.Shipped.md
│   │   ├── AnalyzerReleases.Unshipped.md
│   │   ├── Humanizer.Analyzers.csproj
│   │   ├── NamespaceMigrationAnalyzer.cs
│   │   ├── NamespaceMigrationCodeFixProvider.cs
│   │   ├── README.md
│   │   └── build/
│   │       └── Humanizer.Core.targets
│   └── scripts/
│       └── split-benchmark-results.ps1
├── tests/
│   ├── Humanizer.Analyzers.Tests/
│   │   ├── AnalyzerAssemblyCompatibilityTests.cs
│   │   ├── Humanizer.Analyzers.Tests.csproj
│   │   ├── NamespaceMigrationAnalyzerTests.cs
│   │   ├── NamespaceMigrationCodeFixTests.cs
│   │   └── Verifiers.cs
│   ├── Humanizer.Tests/
│   │   ├── .editorconfig
│   │   ├── ApiApprover/
│   │   │   ├── PublicApiApprovalTest.Approve_Public_Api.DotNet10_0.verified.txt
│   │   │   ├── PublicApiApprovalTest.Approve_Public_Api.DotNet8_0.verified.txt
│   │   │   ├── PublicApiApprovalTest.Approve_Public_Api.Net4_8.verified.txt
│   │   │   └── PublicApiApprovalTest.cs
│   │   ├── ArticlePrefixSortTests.cs
│   │   ├── BitFieldEnumHumanizeTests.cs
│   │   ├── BitFieldEnumUnderTest.cs
│   │   ├── Bytes/
│   │   │   ├── ArithmeticTests.cs
│   │   │   ├── ByteRateTests.cs
│   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   ├── ComparingTests.cs
│   │   │   ├── CreatingTests.cs
│   │   │   ├── ParsingTests.cs
│   │   │   ├── ToFullWordsTests.cs
│   │   │   └── ToStringTests.cs
│   │   ├── CasingTests.cs
│   │   ├── CollectionHumanizeTests.cs
│   │   ├── DateHumanize.cs
│   │   ├── DateHumanizeDefaultStrategyTests.cs
│   │   ├── DateOnlyHumanizeTests.cs
│   │   ├── DateTimeHumanizePrecisionStrategyTests.cs
│   │   ├── DateTimeOffsetHumanizeTests.cs
│   │   ├── EnumHumanizeTests.cs
│   │   ├── EnumUnderTest.cs
│   │   ├── FluentDate/
│   │   │   ├── InDateTests.cs
│   │   │   ├── InTests.cs
│   │   │   ├── OnDateTests.cs
│   │   │   ├── OnTests.cs
│   │   │   └── PrepositionTests.cs
│   │   ├── GlobalUsings.cs
│   │   ├── HeadingTests.cs
│   │   ├── Humanizer.Tests.csproj
│   │   ├── InflectorTests.cs
│   │   ├── Localisation/
│   │   │   ├── DefaultFormatterTests.cs
│   │   │   ├── ResourcesTests.cs
│   │   │   ├── af/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ar/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── az/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── bg/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── bn-BD/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ca/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsFeminineTest.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   └── TimeToClockNotationTests.cs
│   │   │   ├── cs/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── da/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── de/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteRateTests.cs
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── HeadingTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   ├── TimeToClockNotationTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── de-CH/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── de-LI/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── el/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── en/
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   └── TimeToClockNotationTests.cs
│   │   │   ├── en-IN/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── es/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsFeminineTest.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   └── TimeToClockNotationTests.cs
│   │   │   ├── fa/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── fi-FI/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── fil-PH/
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── fr/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeOnlyHumanizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   ├── TimeToClockNotationTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── fr-BE/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── fr-CH/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── he/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── hr/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── hu/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── hy/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── id/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── invariant/
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── ToQuantityTests.cs
│   │   │   ├── is/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── HeadingTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── ResourcesTests.cs
│   │   │   │   ├── TimeOnlyHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── it/
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizerTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ja/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ko-KR/
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ku/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── lb/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteRateTests.cs
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeOnlyHumanizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   └── TimeToClockNotationTests.cs
│   │   │   ├── lt/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── lv/
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ms-MY/
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── mt/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── nb/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── nb-NO/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── nl/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── pl/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── pt/
│   │   │   │   ├── Bytes/
│   │   │   │   │   └── ByteSizeExtensionsTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   ├── TimeToClockNotationTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── pt-BR/
│   │   │   │   ├── Bytes/
│   │   │   │   │   └── ByteSizeExtensionsTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   ├── TimeToClockNotationTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── ro-Ro/
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizerTests.cs
│   │   │   │   └── TimeSpanHumanizerTests.cs
│   │   │   ├── ru-RU/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteRateTests.cs
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── HeadingTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── sk/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── sl/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── sr/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTest.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── sr-Latn/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTest.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── sv/
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ta/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── th-TH/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── tr/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── uk-UA/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── uz-Cyrl-UZ/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── uz-Latn-UZ/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── vi/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── zh-CN/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── zh-HK/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── zh-Hans/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   └── zh-Hant/
│   │   │       ├── DateHumanizeTests.cs
│   │   │       └── TimeSpanHumanizeTests.cs
│   │   ├── MetricNumeralTests.cs
│   │   ├── ModuleInitializer.cs
│   │   ├── NumberToNumberTests.cs
│   │   ├── NumberToTimeSpanTests.cs
│   │   ├── NumberToWordsTests.cs
│   │   ├── OrdinalizeTests.cs
│   │   ├── ResourceKeyTests.cs
│   │   ├── RomanNumeralTests.cs
│   │   ├── StringDehumanizeTests.cs
│   │   ├── StringHumanizeTests.cs
│   │   ├── TimeOnlyHumanizeTests.cs
│   │   ├── TimeSpanHumanizeTests.cs
│   │   ├── TimeUnitToSymbolTests.cs
│   │   ├── ToQuantityTests.cs
│   │   ├── TransformersTests.cs
│   │   ├── TruncatorTests.cs
│   │   ├── TupleizeTests.cs
│   │   ├── UseCultureAttribute.cs
│   │   ├── WordsToNumberTests.cs
│   │   └── testconfig.json
│   ├── fixtures/
│   │   ├── PackageSmoke/
│   │   │   ├── AnalyzerProbe.cs
│   │   │   ├── BlazorConsumer/
│   │   │   │   ├── App.razor
│   │   │   │   ├── Consumer.csproj.template
│   │   │   │   └── Program.cs
│   │   │   ├── ConsoleConsumer/
│   │   │   │   ├── Consumer.csproj.template
│   │   │   │   └── Program.cs
│   │   │   └── WebApiConsumer/
│   │   │       ├── Consumer.csproj.template
│   │   │       └── Program.cs
│   │   └── WapProjSmoke/
│   │       ├── EntryPointApp/
│   │       │   ├── EntryPointApp.csproj.template
│   │       │   └── Program.cs
│   │       └── Package/
│   │           ├── Package.appxmanifest
│   │           └── Package.wapproj.template
│   └── verify-packages.ps1
└── version.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true
# EditorConfig: http://EditorConfig.org

# top-most EditorConfig file

[*]
indent_style = space


[*.cs]
indent_size = 4
charset = utf-8
tab_width = 4
end_of_line = crlf
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_object_initializer = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
dotnet_style_namespace_match_folder = true:suggestion
dotnet_style_readonly_field = true:suggestion
dotnet_style_predefined_type_for_locals_parameters_members = true:error
dotnet_style_predefined_type_for_member_access = true:error
dotnet_style_require_accessibility_modifiers = never:error
dotnet_style_allow_multiple_blank_lines_experimental = true:silent
dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
dotnet_code_quality_unused_parameters = all:suggestion
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:none
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:none
dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
dotnet_style_qualification_for_field = false:error
dotnet_style_qualification_for_property = false:error
dotnet_style_qualification_for_method = false:error
dotnet_style_qualification_for_event = false:error
dotnet_diagnostic.CA1305.severity = none
dotnet_diagnostic.CA1304.severity = none

# Microsoft .NET properties
trim_trailing_whitespace = true
csharp_preferred_modifier_order = public, private, protected, internal, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async:suggestion
resharper_namespace_body = file_scoped
dotnet_naming_rule.private_constants_rule.severity = warning
dotnet_naming_rule.private_constants_rule.style = upper_camel_case_style
dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols
dotnet_naming_rule.private_instance_fields_rule.severity = warning
dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style
dotnet_naming_rule.private_instance_fields_rule.symbols = private_instance_fields_symbols
dotnet_naming_rule.private_static_fields_rule.severity = warning
dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style
dotnet_naming_rule.private_static_fields_rule.symbols = private_static_fields_symbols
dotnet_naming_rule.private_static_readonly_rule.severity = warning
dotnet_naming_rule.private_static_readonly_rule.style = upper_camel_case_style
dotnet_naming_rule.private_static_readonly_rule.symbols = private_static_readonly_symbols
dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field
dotnet_naming_symbols.private_constants_symbols.required_modifiers = const
dotnet_naming_symbols.private_instance_fields_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_instance_fields_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_fields_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static
dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static, readonly
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:none
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:none
dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none


# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true

# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:error
dotnet_style_qualification_for_property = false:error
dotnet_style_qualification_for_method = false:error
dotnet_style_qualification_for_event = false:error

# Use language keywords instead of framework type names for type references
dotnet_style_predefined_type_for_locals_parameters_members = true:error
dotnet_style_predefined_type_for_member_access = true:error

# Suggest more modern language features when available
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_coalesce_expression = false:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion

# Prefer "var" everywhere
csharp_style_var_for_built_in_types = true:error
csharp_style_var_when_type_is_apparent = true:error
csharp_style_var_elsewhere = true:error

# Prefer method-like constructs to have a block body
csharp_style_expression_bodied_methods = true:error
csharp_style_expression_bodied_local_functions = true:error
csharp_style_expression_bodied_constructors = true:error
csharp_style_expression_bodied_operators = true:error
resharper_place_expr_method_on_single_line = false

# Prefer property-like constructs to have an expression-body
csharp_style_expression_bodied_properties = true:error
csharp_style_expression_bodied_indexers = true:error
csharp_style_expression_bodied_accessors = true:error

# Suggest more modern language features when available
csharp_style_pattern_matching_over_is_with_cast_check = true:error
csharp_style_pattern_matching_over_as_with_null_check = true:error
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Newline settings
#csharp_new_line_before_open_brace = all:error
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
dotnet_style_require_accessibility_modifiers = never:error
insert_final_newline = false
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_prefer_braces = true:silent
csharp_style_namespace_declarations = file_scoped:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_primary_constructors = true:suggestion
csharp_prefer_system_threading_lock = true:suggestion
csharp_style_prefer_simple_property_accessors = true:suggestion
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_prefer_null_check_over_type_check = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_prefer_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
csharp_style_prefer_implicitly_typed_lambda_expression = true:suggestion
csharp_style_prefer_tuple_swap = true:suggestion
csharp_style_prefer_unbound_generic_type_in_nameof = true:suggestion
csharp_style_prefer_utf8_string_literals = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
csharp_prefer_static_local_function = true:suggestion
csharp_prefer_static_anonymous_function = true:suggestion
csharp_style_prefer_readonly_struct = true:suggestion
csharp_style_prefer_readonly_struct_member = true:suggestion
csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
csharp_style_prefer_switch_expression = true:suggestion
csharp_style_prefer_pattern_matching = true:silent
csharp_style_prefer_not_pattern = true:suggestion
csharp_style_prefer_extended_property_pattern = true:suggestion

# Legacy rules

dotnet_diagnostic.CA1001.severity = error
dotnet_diagnostic.CA1009.severity = error
dotnet_diagnostic.CA1016.severity = error
dotnet_diagnostic.CA1033.severity = error
dotnet_diagnostic.CA1049.severity = error
dotnet_diagnostic.CA1060.severity = error
dotnet_diagnostic.CA1061.severity = error
dotnet_diagnostic.CA1063.severity = error
dotnet_diagnostic.CA1065.severity = error
dotnet_diagnostic.CA1301.severity = error
dotnet_diagnostic.CA1400.severity = error
dotnet_diagnostic.CA1401.severity = error
dotnet_diagnostic.CA1403.severity = error
dotnet_diagnostic.CA1404.severity = error
dotnet_diagnostic.CA1405.severity = error
dotnet_diagnostic.CA1410.severity = error
dotnet_diagnostic.CA1415.severity = error
dotnet_diagnostic.CA1821.severity = error
dotnet_diagnostic.CA1900.severity = error
dotnet_diagnostic.CA1901.severity = error
dotnet_diagnostic.CA2002.severity = error
dotnet_diagnostic.CA2100.severity = error
dotnet_diagnostic.CA2101.severity = error
dotnet_diagnostic.CA2108.severity = error
dotnet_diagnostic.CA2111.severity = error
dotnet_diagnostic.CA2112.severity = error
dotnet_diagnostic.CA2114.severity = error
dotnet_diagnostic.CA2116.severity = error
dotnet_diagnostic.CA2117.severity = error
dotnet_diagnostic.CA2122.severity = error
dotnet_diagnostic.CA2123.severity = error
dotnet_diagnostic.CA2124.severity = error
dotnet_diagnostic.CA2126.severity = error
dotnet_diagnostic.CA2131.severity = error
dotnet_diagnostic.CA2132.severity = error
dotnet_diagnostic.CA2133.severity = error
dotnet_diagnostic.CA2134.severity = error
dotnet_diagnostic.CA2137.severity = error
dotnet_diagnostic.CA2138.severity = error
dotnet_diagnostic.CA2140.severity = error
dotnet_diagnostic.CA2141.severity = error
dotnet_diagnostic.CA2146.severity = error
dotnet_diagnostic.CA2147.severity = error
dotnet_diagnostic.CA2149.severity = error
dotnet_diagnostic.CA2200.severity = error
dotnet_diagnostic.CA2202.severity = error
dotnet_diagnostic.CA2207.severity = error
dotnet_diagnostic.CA2212.severity = error
dotnet_diagnostic.CA2213.severity = error
dotnet_diagnostic.CA2214.severity = error
dotnet_diagnostic.CA2216.severity = error
dotnet_diagnostic.CA2220.severity = error
dotnet_diagnostic.CA2229.severity = error
dotnet_diagnostic.CA2231.severity = error
dotnet_diagnostic.CA2232.severity = error
dotnet_diagnostic.CA2235.severity = error
dotnet_diagnostic.CA2236.severity = error
dotnet_diagnostic.CA2237.severity = error
dotnet_diagnostic.CA2238.severity = error
dotnet_diagnostic.CA2240.severity = error
dotnet_diagnostic.CA2241.severity = error
dotnet_diagnostic.CA2242.severity = error


# Test Projects

# IDE0022: Use expression body for method
dotnet_diagnostic.IDE0022.severity = silent

# IDE0130: Namespace match folder structure
dotnet_diagnostic.IDE0130.severity = none

[Benchmarks/**/*.cs]
dotnet_diagnostic.CA1050.severity = none # CA1050: Declare types in namespaces

[**/Humanizer.Tests/**/*.cs]
dotnet_diagnostic.CA1050.severity = none # CA1050: Declare types in namespaces


# Xml files
[*.{xml,config,nuspec,resx,vsixmanifest,csproj,targets,props,fsproj}]
indent_size = 2

[*.json]
indent_size = 2

================================================
FILE: .gitattributes
================================================
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp
*.sln    merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

*.snk binary

# Normalise endings to CRLF
*.cs              eol=crlf
*.xml             eol=crlf
*.xaml            eol=crlf
*.xsl             eol=crlf
*.xsd             eol=crlf
*.cshtml          eol=crlf
*.css             eol=crlf
*.js              eol=crlf
*.txt             eol=crlf
*.config          eol=crlf
*.sql             eol=crlf
*.sln             eol=crlf
*.csproj          eol=crlf
*.vbproj          eol=crlf
*.fsproj          eol=crlf
*.dbproj          eol=crlf
*.nunit           eol=crlf
*.html            eol=crlf
*.md              eol=crlf
*.proj            eol=crlf
*.bat             eol=crlf
*.cmd             eol=crlf
*.nuspec          eol=crlf
*.targets         eol=crlf
*.conf            eol=crlf
*.manifest        eol=crlf
*.ps1             eol=crlf
*.resx            eol=crlf
*.asax            eol=crlf
*.aspx            eol=crlf
*.ncrunchproject  eol=crlf
*.ncrunchsolution eol=crlf
*.msbuild         eol=crlf
*.template        eol=crlf
*.settings        eol=crlf
*.java            eol=crlf
.gitattributes    eol=crlf
.classpath        eol=crlf
.project          eol=crlf

# Standard to msysgit
*.doc  diff=astextplain
*.DOC  diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot  diff=astextplain
*.DOT  diff=astextplain
*.pdf  diff=astextplain
*.PDF  diff=astextplain
*.rtf  diff=astextplain
*.RTF  diff=astextplain


*.verified.txt text eol=lf working-tree-encoding=UTF-8

================================================
FILE: .github/CODE_OF_CONDUCT.md
================================================
# Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant
to clarify expected behavior in our community.
For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).


================================================
FILE: .github/CONTRIBUTING.md
================================================
## <a id="how-to-contribute">How to contribute?</a>
Your contributions to Humanizer are very welcome.
If you find a bug, please raise it as an issue.
Even better fix it and send a pull request.
If you like to help out with existing bugs and feature requests just check out the list of [issues](https://github.com/Humanizr/Humanizer/issues) and grab and fix one.
Some of the issues are labeled as as `jump in`. These issues are generally low hanging fruit so you can start with easier tasks.

This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/)
to clarify expected behavior in our community. 
For more information see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).

### <a id="getting-started">Getting started</a>
This project uses C# 8 language features and SDK-style projects, so you'll need any edition of [Visual Studio 2019](https://www.visualstudio.com/downloads/download-visual-studio-vs) to open and compile the project. The free [Community Edition](https://go.microsoft.com/fwlink/?LinkId=532606&clcid=0x409) will work.

### <a id="contribution-guideline">Contribution guideline</a>
This project uses [GitHub flow](http://scottchacon.com/2011/08/31/github-flow.html) for pull requests.
So if you want to contribute, fork the repo, preferably create a local branch, based off of the `main` branch, to avoid conflicts with other activities, fix an issue, run build.cmd from the root of the project, and send a PR if all is green.

Pull requests are code reviewed. Here is a checklist you should tick through before submitting a pull request:

 - Implementation is clean
 - Code adheres to the existing coding standards; e.g. no curlies for one-line blocks, no redundant empty lines between methods or code blocks, spaces rather than tabs, etc. There is an `.editorconfig` file that must be respected.
 - No ReSharper warnings
 - There is proper unit test coverage
 - If the code is copied from StackOverflow (or a blog or OSS) full disclosure is included. That includes required license files and/or file headers explaining where the code came from with proper attribution
 - There are very few or no comments (because comments shouldn't be needed if you write clean code)
 - Xml documentation is added/updated for the addition/change
 - Your PR is (re)based on top of the latest commits from the `main` branch (more info below)
 - Link to the issue(s) you're fixing from your PR description. Use `fixes #<the issue number>`
 - Readme is updated if you change an existing feature or add a new one
 - Run either `build.cmd` or `build.ps1` and ensure there are no test failures

Please rebase your code on top of the latest `main` branch commits.
Before working on your fork make sure you pull the latest so you work on top of the latest commits to avoid merge conflicts.
Also before sending the pull request please rebase your code as there is a chance there have been new commits pushed after you pulled last.
Please refer to [this guide](https://gist.github.com/jbenet/ee6c9ac48068889b0912#the-workflow) if you're new to git.

### <a id="need-your-help-with-localisation">Need your help with localisation</a>
One area where Humanizer can always use your help is localisation.
Currently Humanizer supports quite a few localisations for `DateTime.Humanize`, `TimeSpan.Humanize`, `ToWords` and `ToOrdinalWords`.

Humanizer could definitely do with more translations.
To add a translation for `DateTime.Humanize` and `TimeSpan.Humanize`,
fork the repository if you haven't done yet, duplicate the [resources.resx](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/Properties/Resources.resx) file, add your target [locale code](http://msdn.microsoft.com/en-us/library/hh441729.aspx)
to the end (e.g. resources.ru.resx for Russian), translate the values to your language, register your formatter in [FormatterRegistry.cs](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/Configuration/FormatterRegistry.cs), write unit tests for the translation, commit, and send a pull request for it. Thanks.

Some languages have complex rules when it comes to dealing with numbers; for example, in Romanian "5 days" is "5 zile", while "24 days" is "24 de zile" and in Arabic "2 days" is "يومان" not "2 يوم".
Obviously a normal resource file doesn't cut it in these cases as a more complex mapping is required.
In cases like this, in addition to creating a resource file, you should also subclass [`DefaultFormatter`](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/Localisation/Formatters/DefaultFormatter.cs) in a class that represents your language;
e.g. [`RomanianFormatter`](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/Localisation/Formatters/RomanianFormatter.cs) and then override the methods that need the complex rules.
We think overriding the `GetResourceKey` method should be enough.
To see how to do that check out `RomanianFormatter` and `RussianFormatter`.
Then you return an instance of your class in the [`Configurator`](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/Configuration/Configurator.cs) class in the getter of the [Formatter property](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/Configuration/Configurator.cs) based on the current culture.

Translations for `ToWords` and `ToOrdinalWords` methods are currently done in code as there is a huge difference between the way different languages deal with number words.
Check out [Dutch](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/Localisation/NumberToWords/DutchNumberToWordsConverter.cs) and
[Russian](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/Localisation/NumberToWords/RussianNumberToWordsConverter.cs) localisations for examples of how you can write a Converter for your language.
You should then register your converter in the [ConverterFactory](https://github.com/Humanizr/Humanizer/blob/main/src/Humanizer/NumberToWordsExtension.cs#L13) for it to kick in on your locale.

Don't forget to write tests for your localisations. Check out the existing [DateHumanizeTests](https://github.com/Humanizr/Humanizer/blob/main/tests/Humanizer.Tests/Localisation/ru-RU/DateHumanizeTests.cs), [TimeSpanHumanizeTests](https://github.com/Humanizr/Humanizer/blob/main/tests/Humanizer.Tests/Localisation/ru-RU/TimeSpanHumanizeTests.cs) and [NumberToWordsTests](https://github.com/Humanizr/Humanizer/blob/main/tests/Humanizer.Tests/Localisation/ru-RU/NumberToWordsTests.cs).


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
Here is a checklist you should tick through before submitting a pull request: 
 - [ ] Implementation is clean
 - [ ] Code adheres to the existing coding standards; e.g. no curlies for one-line blocks, no redundant empty lines between methods or code blocks, spaces rather than tabs, etc.
 - [ ] No Code Analysis warnings
 - [ ] There is proper unit test coverage
 - [ ] If the code is copied from StackOverflow (or a blog or OSS) full disclosure is included. That includes required license files and/or file headers explaining where the code came from with proper attribution
 - [ ] There are very few or no comments (because comments shouldn't be needed if you write clean code)
 - [ ] Xml documentation is added/updated for the addition/change
 - [ ] Your PR is (re)based on top of the latest commits from the `main` branch (more info below)
 - [ ] Link to the issue(s) you're fixing from your PR description. Use `fixes #<the issue number>`
 - [ ] Readme is updated if you change an existing feature or add a new one
 - [ ] Run either `build.cmd` or `build.ps1` and ensure there are no test failures


================================================
FILE: .github/codeql/codeql-config.yml
================================================
name: humanizer-codeql
queries:
  - uses: security-extended
  - uses: security-and-quality
paths:
  - src/Humanizer/
paths-ignore:
  - src/**/bin/**
  - src/**/obj/**


================================================
FILE: .github/copilot-instructions.md
================================================
# Agent Instructions

## Scope
These instructions apply to the entire repository.

## Project Overview
- Humanizer is a .NET library for turning numbers, dates, times, enums, quantities, etc. into human-friendly text across many locales.
- The main library lives in `src/Humanizer`; tests are under `tests/`.

## Toolchain
- Primary language: C# (modern features).
- Target frameworks: .NET 8.0, .NET 10.0, and .NET Framework 4.8.
- Tests use xUnit and should live alongside similar tests in `tests/Humanizer.Tests`.
- Build with the .NET CLI (`dotnet`). Prefer the latest SDK (see install script in `.github/copilot-instructions.md`).

## Coding Guidelines
- Respect `.editorconfig`; use spaces, 4-space indentation, and file-scoped namespaces.
- Use `var` for obvious types, and language keywords (`string`, `int`, etc.).
- Order `using` directives with `System.*` first; prefer existing global usings.
- Keep code self-documenting; use comments sparingly.
- Never wrap imports in `try/catch`.
- Avoid unnecessary `this.` and braces for one-line blocks; trim redundant blank lines.
- Follow existing naming conventions (camelCase private fields, PascalCase public members/constants/static readonly).
- Add XML documentation for new or modified public APIs.

## Testing Expectations
- Every functional change must include or update xUnit tests in `tests/Humanizer.Tests`.
- Use culture-specific folders and `UseCulture` attribute for localization tests when applicable.
- Run the test suite for the supported .NET targets (`dotnet test --project tests/Humanizer.Tests/Humanizer.Tests.csproj --framework net10.0` and `--framework net8.0`). Avoid invoking the net48 target on Linux, and allow a few minutes for each run to complete.

## Build & Validation
- Build command: `dotnet build src/Humanizer/Humanizer.csproj -c Release /t:PackNuSpecs /p:PackageOutputPath=<path>` (from the repository root). It must succeed without warnings or errors.
- If you need to reference those newly build packages, create or update `NuGet.config` to use that package output path as a package source--but never commit changes to that file.
- When verifying restore, build first, then pass the output path into `tests/verify-packages.ps1`.
- When running `tests/verify-packages.ps1`, you can override the default `-MinimumPassingSdkVersion` (`9.0.200`) to mark older SDK/MSBuild restores as expected failures.
- Do not introduce new compiler warnings or break existing build/test workflows.

## Localization Guidance
- When adding a locale, duplicate and translate the relevant resource files under `src/Humanizer/Properties`.
- Register new formatters/converters in the appropriate registries (see `Configuration/FormatterRegistry.cs` and number converter factories).
- Cover new localization behavior with targeted tests under `tests/Humanizer.Tests/Localisation/{culture}`.

## Documentation Updates
- Update `readme.md`, resource comments, or XML docs when introducing new features or behavior changes.
- Provide meaningful examples in documentation and XML summaries where appropriate.

## Pull Request Guidelines
- Keep changes focused with clear commit messages.
- Follow repository PR template expectations: summarize changes, list tests run, and reference related issues (e.g., `fixes #123`) when applicable.
- Ensure the codebase remains backward-compatible unless intentionally introducing a documented breaking change.


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: nuget
  directory: "/"
  schedule:
    interval: daily
  open-pull-requests-limit: 10


================================================
FILE: .github/workflows/.devskim
================================================
{
  "Globs": [
    "**/.git/**",
    "**/bin/**",
    "**/obj/**",
    "**/nuget.config"        // exact file at repo root
  ]
}


================================================
FILE: .github/workflows/benchmarks-baseline-vs-current.yml
================================================
name: Benchmark Baseline vs Current

on:
  workflow_dispatch:
    inputs:
      baselineVersion:
        description: 'NuGet version of Humanizer to use for the baseline run'
        required: true
        type: string
        default: '3.0.0-rc.6'

  push:
    paths:
      - '.github/workflows/benchmarks-baseline-vs-current.yml'        
  pull_request:
    paths:
      - '.github/workflows/benchmarks-baseline-vs-current.yml'

  schedule:
    - cron: '0 4 * * 1'  # Every Monday at 04:00 UTC

jobs:
  benchmark:
    name: Run Benchmarks (${{ matrix.kind }})
    runs-on: ubuntu-latest
    timeout-minutes: 180
    env:
      BASELINE_VERSION: ${{ inputs.baselineVersion || '3.0.0-rc.6' }}
    strategy:
      matrix:
        kind: [baseline, current]
    
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 0

      - name: Setup .NET 8,10
        uses: actions/setup-dotnet@v5
        with:
          dotnet-version: |
            8.0
            10.0
                
      - name: Display run information
        run: |
          echo "## Benchmark Run: ${{ matrix.kind }}" >> $GITHUB_STEP_SUMMARY
          echo "" >> $GITHUB_STEP_SUMMARY
          echo "- **Commit SHA:** ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
          echo "- **Baseline Version:** ${{ env.BASELINE_VERSION }}" >> $GITHUB_STEP_SUMMARY
          echo "- **Run Type:** ${{ matrix.kind }}" >> $GITHUB_STEP_SUMMARY
          echo "" >> $GITHUB_STEP_SUMMARY
      
      - name: Build Benchmarks (baseline)
        if: matrix.kind == 'baseline'
        run: |
          out="artifacts/baseline"
          mkdir -p "$out"
          dotnet run --project src/Benchmarks/Benchmarks.csproj -c Release -f net8.0 -- --filter '*' --artifacts "$out" --envVars UseBaselinePackage:true,BaselinePackageVersion:${{ env.BASELINE_VERSION }} 

      - name: Build Benchmarks (current)
        if: matrix.kind == 'current'
        run: |
          out="artifacts/current"
          mkdir -p "$out"
          dotnet run --project src/Benchmarks/Benchmarks.csproj -c Release -f net8.0 -- --filter '*' --artifacts "$out"
      
      - name: Append Results to Summary
        run: |
          out="artifacts/${{ matrix.kind }}"
          
          # Find all markdown files and append them to the summary
          echo "" >> $GITHUB_STEP_SUMMARY
          echo "### Benchmark Results (${{ matrix.kind }})" >> $GITHUB_STEP_SUMMARY
          echo "" >> $GITHUB_STEP_SUMMARY
          
          while IFS= read -r MD; do
            cat "$MD" >> $GITHUB_STEP_SUMMARY
            echo "" >> $GITHUB_STEP_SUMMARY
          done < <(find "$out" -type f -name '*.md')
      
      - name: Upload JSON Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: humanizer-bdn-${{ matrix.kind }}-json
          path: artifacts/${{ matrix.kind }}/**/*.json
          retention-days: 7
      
      - name: Upload All Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: humanizer-bdn-${{ matrix.kind }}-all
          path: artifacts/${{ matrix.kind }}/
          retention-days: 7

  compare:
    name: Compare Baseline vs Current
    runs-on: ubuntu-latest
    needs: benchmark
    env:
      BASELINE_VERSION: ${{ inputs.baselineVersion || '3.0.0-rc.6' }}
    
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 0

      - name: Download Baseline JSON
        uses: actions/download-artifact@v4
        with:
          name: humanizer-bdn-baseline-json
          path: baseline
      
      - name: Download Current JSON
        uses: actions/download-artifact@v4
        with:
          name: humanizer-bdn-current-json
          path: current
      
      - name: Setup .NET
        uses: actions/setup-dotnet@v5
        with:
          dotnet-version: '10.x'
      
      - name: Clone and Build ResultsComparer
        run: |
          git clone --depth 1 https://github.com/dotnet/performance          
      
      - name: Split Benchmark Results by TFM
        run: |
          set -euo pipefail
          
          baseline_results=$(find baseline -type d -name results -print -quit)
          current_results=$(find current -type d -name results -print -quit)
          
          if [ -z "$baseline_results" ]; then
            echo "Baseline results directory not found under 'baseline'." >&2
            exit 1
          fi
          
          if [ -z "$current_results" ]; then
            echo "Current results directory not found under 'current'." >&2
            exit 1
          fi
          
          echo "Using baseline results directory: $baseline_results"
          echo "Using current results directory: $current_results"
          
          pwsh -File src/scripts/split-benchmark-results.ps1 -InputDir "$baseline_results" -OutputRoot baseline-split
          pwsh -File src/scripts/split-benchmark-results.ps1 -InputDir "$current_results" -OutputRoot current-split
      
      - name: Run ResultsComparer for each TFM
        run: |
          mkdir -p comparisons
          
          # Compare each target framework independently
          for tfm_dir in baseline-split/*; do
            if [ -d "$tfm_dir" ]; then
              tfm=$(basename "$tfm_dir")
              echo "Comparing results for $tfm..."
              
              if [ -d "current-split/$tfm" ]; then
                dotnet run --project performance/src/tools/ResultsComparer/ResultsComparer.csproj -c Release -p:PERFLAB_TARGET_FRAMEWORKS=net10.0 -f net10.0 --base "$tfm_dir" --diff "current-split/$tfm" --threshold "5%" > "comparisons/diff-$tfm.md" || true
              else
                echo "⚠️ No current results found for $tfm" > "comparisons/diff-$tfm.md"
              fi
            fi
          done
      
      - name: Append Comparison to Summary
        run: |
          echo "" >> $GITHUB_STEP_SUMMARY
          echo "## Performance Comparison: Baseline vs Current" >> $GITHUB_STEP_SUMMARY
          echo "" >> $GITHUB_STEP_SUMMARY
          echo "**Baseline Version:** ${{ env.BASELINE_VERSION }}" >> $GITHUB_STEP_SUMMARY
          echo "" >> $GITHUB_STEP_SUMMARY
          
          # Append comparison for each TFM
          for diff_file in comparisons/diff-*.md; do
            if [ -f "$diff_file" ]; then
              tfm=$(basename "$diff_file" .md | sed 's/diff-//')
              echo "### Results for $tfm" >> $GITHUB_STEP_SUMMARY
              echo "" >> $GITHUB_STEP_SUMMARY
              cat "$diff_file" >> $GITHUB_STEP_SUMMARY
              echo "" >> $GITHUB_STEP_SUMMARY
            fi
          done
          
          if [ ! -f comparisons/diff-*.md ]; then
            echo "⚠️ No comparison results available" >> $GITHUB_STEP_SUMMARY
          fi
      
      - name: Upload Comparison Report
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: humanizer-bdn-comparison
          path: comparisons/
          retention-days: 7


================================================
FILE: .github/workflows/codeql.yml
================================================
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"

on:
  push:
    branches:
      - main
      - 'rel/**'
  pull_request:
    branches:    
      - main
      - 'rel/**'
  schedule:
    - cron: '41 11 * * 2'

jobs:
  analyze:
    name: Analyze C#
    runs-on: 'windows-latest'
    permissions:
      security-events: write
      packages: read
      actions: read
      contents: read

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        fetch-tags: true

    # Add any setup steps before running the `github/codeql-action/init` action.
    # This includes steps like installing compilers or runtimes (`actions/setup-node`
    # or others). This is typically only required for manual builds.
    # - name: Setup runtime (example)
    #   uses: actions/setup-example@v1
    - uses: actions/setup-dotnet@v5
      with:
        global-json-file: global.json
    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v3
      with:
        languages: csharp
        build-mode: manual
        config-file: .github/codeql/codeql-config.yml

    - name: Build
      working-directory: src
      shell: pwsh
      run: |
        dotnet build Humanizer/Humanizer.csproj -c Release --nologo --verbosity minimal
         
    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v3


================================================
FILE: .github/workflows/copilot-setup-steps.yml
================================================
name: "Copilot Setup Steps"

# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
  copilot-setup-steps:
    runs-on: ubuntu-latest

    # Set the permissions to the lowest permissions possible needed for your steps.
    # Copilot will be given its own token for its operations.
    permissions:
      # If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
      contents: read

    # You can define any steps you want, and they will run before the agent starts.
    # If you do not check out your code, Copilot will do this for you.
    steps:
      - name: Checkout code
        uses: actions/checkout@v5
        with:
          fetch-depth: 0
          fetch-tags: true

      - uses: actions/setup-dotnet@v5
        with:
          global-json-file: global.json


================================================
FILE: .github/workflows/devskim.yml
================================================
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: DevSkim

on:
  push:
    branches:
      - main
      - 'rel/**'
  pull_request:
    branches:    
      - main
      - 'rel/**'
  schedule:
    - cron: '23 9 * * 2'

jobs:
  lint:
    name: DevSkim
    runs-on: ubuntu-latest
    permissions:
      actions: read
      contents: read
      security-events: write
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Run DevSkim scanner
        uses: microsoft/DevSkim-Action@v1
        with:
          options-json: .github/workflows/.devskim.json
    
      - name: Upload DevSkim scan results to GitHub Security tab
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: devskim-results.sarif


================================================
FILE: .github/workflows/jekyll-gh-pages.yml
================================================
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll with GitHub Pages dependencies preinstalled

on:
  # Runs on pushes targeting the default branch
  push:
    branches: ["main"]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  # Build job
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Prepare index.md from readme
        run: |
          echo "---" > docs/index.md
          echo "layout: default" >> docs/index.md
          echo "title: Humanizer" >> docs/index.md
          echo "---" >> docs/index.md
          echo "" >> docs/index.md
          cat readme.md >> docs/index.md
      - name: Copy logo to docs
        run: cp logo.png docs/logo.png
      - name: Setup Pages
        uses: actions/configure-pages@v5
      - name: Build with Jekyll
        uses: actions/jekyll-build-pages@v1
        with:
          source: ./docs
          destination: ./_site
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3

  # Deployment job
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4


================================================
FILE: .gitignore
================================================
## --------------------------------------------
##  xUnit.net specific ignores

Test*.html
Test*.xml
*.zip
*.exe
*.nuget.props
*.nuget.targets

## --------------------------------------------
##  Adapted from https://raw.githubusercontent.com/github/gitignore/a4ec7f03ca5ae0bf09fad42c0fb7d1e8346bcf25/VisualStudio.gitignore

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Bb]in/
[Oo]bj/

# Visual Studio 2015 cache/options directory
.vs/

# Visual Studio test runner
[Tt]est[Rr]esult*/
Index.dat
Storage.dat

# DNX
project.lock.json
*.lock.json
artifacts/

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JetBrains IDE
.idea/

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
_NCrunch_*
.*crunch*.local.xml

# NuGet Packages
*.nupkg
**/packages/*
#!**/packages/build/

# Windows Store app package directory
AppPackages/

# Visual Studio cache files
*.[Cc]ache
!*.[Cc]ache/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# local tools
.store/

src/Humanizer.Tests/ApiApprover/PublicApiApprovalTest.approve_public_api.received.txt

.DS_Store
/samples/Humanizer.MvcSample/Humanizer.MvcSample.sln
/src/Humanizer/Properties/launchSettings.json


*.received.*

# Jekyll
docs/_site/
docs/.jekyll-cache/
docs/.sass-cache/

# BenchmarkDotNet artifacts
**/BenchmarkDotNet.Artifacts/

================================================
FILE: AGENTS.md
================================================
# Agent Instructions

## Scope
These instructions apply to the entire repository.

## Project Overview
- Humanizer is a .NET library for turning numbers, dates, times, enums, quantities, etc. into human-friendly text across many locales.
- The main library lives in `src/Humanizer`; tests are under `tests/`.

## Toolchain
- Primary language: C# (modern features).
- Target frameworks: .NET 8.0, .NET 10.0, and .NET Framework 4.8.
- Tests use xUnit and should live alongside similar tests in `tests/Humanizer.Tests`.
- Build with the .NET CLI (`dotnet`). Prefer the latest SDK (see install script in `.github/copilot-instructions.md`).

## Coding Guidelines
- Respect `.editorconfig`; use spaces, 4-space indentation, and file-scoped namespaces.
- Use `var` for obvious types, and language keywords (`string`, `int`, etc.).
- Order `using` directives with `System.*` first; prefer existing global usings.
- Keep code self-documenting; use comments sparingly.
- Never wrap imports in `try/catch`.
- Avoid unnecessary `this.` and braces for one-line blocks; trim redundant blank lines.
- Follow existing naming conventions (camelCase private fields, PascalCase public members/constants/static readonly).
- Add XML documentation for new or modified public APIs.

## Testing Expectations
- Every functional change must include or update xUnit tests in `tests/Humanizer.Tests`.
- Use culture-specific folders and `UseCulture` attribute for localization tests when applicable.
- Run the test suite for the supported .NET targets (`dotnet test --project tests/Humanizer.Tests/Humanizer.Tests.csproj --framework net10.0` and `--framework net8.0`). Avoid invoking the net48 target on Linux, and allow a few minutes for each run to complete.

## Build & Validation
- Build command: `dotnet build src/Humanizer/Humanizer.csproj -c Release /t:PackNuSpecs /p:PackageOutputPath=<path>` (from the repository root). It must succeed without warnings or errors.
- If you need to reference those newly build packages, create or update `NuGet.config` to use that package output path as a package source--but never commit changes to that file.
- When verifying restore, build first, then pass the output path into `tests/verify-packages.ps1`.
- When running `tests/verify-packages.ps1`, you can override the default `-MinimumPassingSdkVersion` (`9.0.200`) to mark older SDK/MSBuild restores as expected failures.
- Do not introduce new compiler warnings or break existing build/test workflows.

## Localization Guidance
- When adding a locale, duplicate and translate the relevant resource files under `src/Humanizer/Properties`.
- Register new formatters/converters in the appropriate registries (see `Configuration/FormatterRegistry.cs` and number converter factories).
- Cover new localization behavior with targeted tests under `tests/Humanizer.Tests/Localisation/{culture}`.

## Documentation Updates
- Update `readme.md`, resource comments, or XML docs when introducing new features or behavior changes.
- Provide meaningful examples in documentation and XML summaries where appropriate.

## Pull Request Guidelines
- Keep changes focused with clear commit messages.
- Follow repository PR template expectations: summarize changes, list tests run, and reference related issues (e.g., `fixes #123`) when applicable.
- Ensure the codebase remains backward-compatible unless intentionally introducing a documented breaking change.


================================================
FILE: Directory.Build.props
================================================
<Project>  
  
  <PropertyGroup>
    <LangVersion>preview</LangVersion>
    <Nullable>enable</Nullable>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <ImplicitUsings>enable</ImplicitUsings>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <NoWarn>1573;1591</NoWarn>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <DebugType Condition=" '$(BuildingForLiveUnitTesting)' != 'true' ">embedded</DebugType>
    <SignAssembly>true</SignAssembly>
    <PublicKey>0024000004800000940000000602000000240000525341310004000001000100F9104F5F9BDB168AE140366EB1CD84C469B020EA3423D5D29996D5214CE2BD9B7C0BA3EAD1CA545C4399668AB8911E61CC1CC83C7DF6D50FD6B781365B467E65173F40A11C957D27C5AA0CB0F8DA9C91C988203CC8AEF1468C74A472839D0FD870DA8D13A4DC6B3AAFDAF0384D8E18E393C613D88BF02A64467A119902204FCC</PublicKey>
    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)Humanizer.snk</AssemblyOriginatorKeyFile>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
    <SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
    <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>    
    <AnalysisMode>Minimum</AnalysisMode>
  </PropertyGroup>
  
  <PropertyGroup>
    <PolyStringInterpolation>true</PolyStringInterpolation>
    <PolyNullability>true</PolyNullability>
    <PolyEnsure>true</PolyEnsure>
  </PropertyGroup>

  <PropertyGroup>
    <Authors>Claire Novotny, Mehdi Khalili</Authors>
    <PackageLicenseExpression>MIT</PackageLicenseExpression>
    <PackageProjectUrl>https://humanizr.net</PackageProjectUrl>
    <MinClientVersion>2.12</MinClientVersion>
    <Copyright>Copyright © 2012 - $([System.DateTime]::UtcNow.Year) .NET Foundation and Contributors</Copyright>
    <PublishRepositoryUrl>true</PublishRepositoryUrl>   
  </PropertyGroup>

  <PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
    <IsAotCompatible>true</IsAotCompatible>
    <IsTrimmable>true</IsTrimmable>
  </PropertyGroup>

  <ItemGroup>
    <Using Include="System.ReadOnlySpan&lt;System.Char&gt;" Alias="CharSpan" />
    <Using Remove="System.Net.Http" />
  </ItemGroup>
  
  <PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
    <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
  </PropertyGroup>
</Project>


================================================
FILE: Directory.Build.targets
================================================
<Project>


  <PropertyGroup>
    <Product>$(Product) ($(TargetFramework))</Product>
  </PropertyGroup>


  <PropertyGroup>
    <EnableSourceLink Condition="'$(Configuration)' == 'Debug'">false</EnableSourceLink>
    <EnableNETAnalyzers Condition="'$(TargetFramework)' == 'netstandard2.0' or $(TargetFrameworkIdentifier) == '.NETFramework'">true</EnableNETAnalyzers>
  </PropertyGroup>

  <Target Name="AddCommitHashToAssemblyAttributes" BeforeTargets="GetAssemblyAttributes">
    <ItemGroup>
      <AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" Condition=" '$(SourceRevisionId)' != '' ">
        <_Parameter1>CommitHash</_Parameter1>
        <_Parameter2>$(SourceRevisionId)</_Parameter2>
      </AssemblyAttribute>

      <AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" Condition=" '$(PublicRelease)' == 'true' ">
        <_Parameter1>CloudBuildNumber</_Parameter1>
        <_Parameter2>$(BuildVersionSimple)</_Parameter2>
      </AssemblyAttribute>
      <AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute" Condition=" '$(PublicRelease)' == 'false' ">
        <_Parameter1>CloudBuildNumber</_Parameter1>
        <_Parameter2>$(BuildVersionSimple)$(SemVerBuildSuffix)</_Parameter2>
      </AssemblyAttribute>
    </ItemGroup>

  </Target>
</Project>

================================================
FILE: Directory.Packages.props
================================================
<Project>
  <PropertyGroup>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
    <CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
    <SystemDependencyVersion>10.0.5</SystemDependencyVersion>
  </PropertyGroup>
  <ItemGroup>
    <GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.9.50" />
    <PackageVersion Include="BenchmarkDotNet" Version="0.15.8" />
    <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.0.0" />
    <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="3.8.0" />
    <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Analyzer.Testing" Version="1.1.3" />
    <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeFix.Testing" Version="1.1.3" />
    <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.8.0" />
    <PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.5.2" />
    <PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="2.1.0" />
    <PackageVersion Include="Polyfill" Version="9.18.0" />
    <PackageVersion Include="PublicApiGenerator" Version="11.5.4" />
    <PackageVersion Include="System.Collections.Immutable" Version="$(SystemDependencyVersion)" />
    <PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
    <PackageVersion Include="System.Memory" Version="4.6.3" />
    <PackageVersion Include="Verify.DiffPlex" Version="3.1.2" />
    <PackageVersion Include="Verify.XunitV3" Version="31.13.2" />
    <PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2" />
  </ItemGroup>
</Project>


================================================
FILE: Directory.Solution.targets
================================================
<Project>
    <Target Name="AssertRestoreTaskOutputProperties"
            AfterTargets="Restore">
        <Error
            Condition="'$(RestoreProjectCount)' != '$([MSBuild]::Add($(RestoreProjectsAuditedCount), $(RestoreSkippedCount)))'"
            Text="Restore did not audit every project in the solution. Expected: $(RestoreProjectCount) Found: $(RestoreProjectsAuditedCount), Skipped: $(RestoreSkippedCount)" />
    </Target>
</Project>

================================================
FILE: Humanizer.slnx
================================================
<Solution>
  <Configurations>
    <Platform Name="Any CPU" />
    <Platform Name="ARM" />
    <Platform Name="x64" />
    <Platform Name="x86" />
  </Configurations>
  <Folder Name="/Solution Items/">
    <File Path=".gitattributes" />
    <File Path=".gitignore" />
    <File Path="azure-pipelines.yml" />
    <File Path="global.json" />
    <File Path="license.txt" />
    <File Path="NuSpecs/Humanizer.Core.nuspec" />
    <File Path="NuSpecs/Humanizer.nuspec" />
    <File Path="readme.md" />
    <File Path="release_notes.md" />
    <File Path="version.json" />
    <File Path=".editorconfig" />
    <File Path="Directory.Build.props" />
    <File Path="Directory.Build.targets" />
    <File Path="Directory.Packages.props" />
    <File Path="Directory.Solution.targets" />
    <File Path="ResXManager.config.xml" />
    <File Path="nuget.config" />
    <File Path="src/scripts/split-benchmark-results.ps1" />
  </Folder>
  <Folder Name="/Solution Items/NuSpecs/">
    <File Path="NuSpecs/Humanizer.Core.af.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ar.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.az.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.bg.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.bn.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ca.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.cs.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.da.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.de.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.el.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.es.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.fa.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.fi.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.fil.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.fr.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.he.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.hr.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.hu.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.hy.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.id.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.is.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.it.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ja.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ko.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ku.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.lb.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.lt.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.lv.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ms.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.mt.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.nb.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.nl.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.pl.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.pt-BR.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.pt.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ro.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ru.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.sk.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.sl.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.sr-Latn.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.sr.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.sv.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.ta.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.th.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.tr.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.uk.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.uz-Cyrl-UZ.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.uz-Latn-UZ.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.vi.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.zh-CN.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.zh-Hans.nuspec" />
    <File Path="NuSpecs/Humanizer.Core.zh-Hant.nuspec" />
    <File Path="NuSpecs/Humanizer.nuspec" />
  </Folder>
  <Project Path="src/Benchmarks/Benchmarks.csproj" />
  <Project Path="tests/Humanizer.Analyzers.Tests/Humanizer.Analyzers.Tests.csproj" />
  <Project Path="src/Humanizer.Analyzers/Humanizer.Analyzers.csproj" />
  <Project Path="tests/Humanizer.Tests/Humanizer.Tests.csproj" />
  <Project Path="src/Humanizer/Humanizer.csproj" />
</Solution>


================================================
FILE: NuSpecs/Humanizer.Core.af.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.af</id>
    <version>$version$</version>
    <title>Humanizer Locale (af)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Afrikaans (af)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    
    <language>af</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\af\*.*" target="lib\netstandard2.0\af" />
    <file src="Humanizer\bin\Release\net8.0\af\*.*" target="lib\net8.0\af" />
    <file src="Humanizer\bin\Release\net48\af\*.*" target="lib\net48\af" />
    <file src="Humanizer\bin\Release\net10.0\af\*.*" target="lib\net10.0\af" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ar.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ar</id>
    <version>$version$</version>
    <title>Humanizer Locale (ar)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Arabic (ar)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>ar</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\ar\*.*" target="lib\netstandard2.0\ar" />
    <file src="Humanizer\bin\Release\net8.0\ar\*.*" target="lib\net8.0\ar" />
    <file src="Humanizer\bin\Release\net48\ar\*.*" target="lib\net48\ar" />
    <file src="Humanizer\bin\Release\net10.0\ar\*.*" target="lib\net10.0\ar" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.az.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.az</id>
    <version>$version$</version>
    <title>Humanizer Locale (az)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Azerbaijani (az)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>az</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\az\*.*" target="lib\netstandard2.0\az" />
    <file src="Humanizer\bin\Release\net8.0\az\*.*" target="lib\net8.0\az" />
    <file src="Humanizer\bin\Release\net48\az\*.*" target="lib\net48\az" />
    <file src="Humanizer\bin\Release\net10.0\az\*.*" target="lib\net10.0\az" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.bg.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.bg</id>
    <version>$version$</version>
    <title>Humanizer Locale (bg)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Bulgarian (bg)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>bg</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\bg\*.*" target="lib\netstandard2.0\bg" />
    <file src="Humanizer\bin\Release\net8.0\bg\*.*" target="lib\net8.0\bg" />
    <file src="Humanizer\bin\Release\net48\bg\*.*" target="lib\net48\bg" />
    <file src="Humanizer\bin\Release\net10.0\bg\*.*" target="lib\net10.0\bg" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.bn.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.bn</id>
    <version>$version$</version>
    <title>Humanizer Locale (bn)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Bangla (Bangladesh) (bn)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>bn</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\bn\*.*" target="lib\netstandard2.0\bn" />
    <file src="Humanizer\bin\Release\net8.0\bn\*.*" target="lib\net8.0\bn" />
    <file src="Humanizer\bin\Release\net48\bn\*.*" target="lib\net48\bn" />
    <file src="Humanizer\bin\Release\net10.0\bn\*.*" target="lib\net10.0\bn" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ca.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ca</id>
    <version>$version$</version>
    <title>Humanizer Locale (ca)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Catalan (ca)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>ca</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\ca\*.*" target="lib\netstandard2.0\ca" />
    <file src="Humanizer\bin\Release\net8.0\ca\*.*" target="lib\net8.0\ca" />
    <file src="Humanizer\bin\Release\net48\ca\*.*" target="lib\net48\ca" />
    <file src="Humanizer\bin\Release\net10.0\ca\*.*" target="lib\net10.0\ca" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.cs.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.cs</id>
    <version>$version$</version>
    <title>Humanizer Locale (cs)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Czech (cs)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>cs</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\cs\*.*" target="lib\netstandard2.0\cs" />
    <file src="Humanizer\bin\Release\net8.0\cs\*.*" target="lib\net8.0\cs" />
    <file src="Humanizer\bin\Release\net48\cs\*.*" target="lib\net48\cs" />
    <file src="Humanizer\bin\Release\net10.0\cs\*.*" target="lib\net10.0\cs" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.da.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.da</id>
    <version>$version$</version>
    <title>Humanizer Locale (da)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Danish (da)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>da</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\da\*.*" target="lib\netstandard2.0\da" />
    <file src="Humanizer\bin\Release\net8.0\da\*.*" target="lib\net8.0\da" />
    <file src="Humanizer\bin\Release\net48\da\*.*" target="lib\net48\da" />
    <file src="Humanizer\bin\Release\net10.0\da\*.*" target="lib\net10.0\da" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.de.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.de</id>
    <version>$version$</version>
    <title>Humanizer Locale (de)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale German (de)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>de</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\de\*.*" target="lib\netstandard2.0\de" />
    <file src="Humanizer\bin\Release\net8.0\de\*.*" target="lib\net8.0\de" />
    <file src="Humanizer\bin\Release\net48\de\*.*" target="lib\net48\de" />
    <file src="Humanizer\bin\Release\net10.0\de\*.*" target="lib\net10.0\de" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.el.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.el</id>
    <version>$version$</version>
    <title>Humanizer Locale (el)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Greek (el)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>el</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\el\*.*" target="lib\netstandard2.0\el" />
    <file src="Humanizer\bin\Release\net8.0\el\*.*" target="lib\net8.0\el" />
    <file src="Humanizer\bin\Release\net48\el\*.*" target="lib\net48\el" />
    <file src="Humanizer\bin\Release\net10.0\el\*.*" target="lib\net10.0\el" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.es.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.es</id>
    <version>$version$</version>
    <title>Humanizer Locale (es)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Spanish (es)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>es</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\es\*.*" target="lib\netstandard2.0\es" />
    <file src="Humanizer\bin\Release\net8.0\es\*.*" target="lib\net8.0\es" />
    <file src="Humanizer\bin\Release\net48\es\*.*" target="lib\net48\es" />
    <file src="Humanizer\bin\Release\net10.0\es\*.*" target="lib\net10.0\es" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.fa.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.fa</id>
    <version>$version$</version>
    <title>Humanizer Locale (fa)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Persian (fa)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>fa</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\fa\*.*" target="lib\netstandard2.0\fa" />
    <file src="Humanizer\bin\Release\net8.0\fa\*.*" target="lib\net8.0\fa" />
    <file src="Humanizer\bin\Release\net48\fa\*.*" target="lib\net48\fa" />
    <file src="Humanizer\bin\Release\net10.0\fa\*.*" target="lib\net10.0\fa" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.fi.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.fi</id>
    <version>$version$</version>
    <title>Humanizer Locale (fi)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Finnish (Finland) (fi)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>fi</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\fi\*.*" target="lib\netstandard2.0\fi" />
    <file src="Humanizer\bin\Release\net8.0\fi\*.*" target="lib\net8.0\fi" />
    <file src="Humanizer\bin\Release\net48\fi\*.*" target="lib\net48\fi" />
    <file src="Humanizer\bin\Release\net10.0\fi\*.*" target="lib\net10.0\fi" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.fil.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.fil</id>
    <version>$version$</version>
    <title>Humanizer Locale (fil)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Filipino (Philippines) (fil)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>fil</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\fil\*.*" target="lib\netstandard2.0\fil" />
    <file src="Humanizer\bin\Release\net8.0\fil\*.*" target="lib\net8.0\fil" />
    <file src="Humanizer\bin\Release\net48\fil\*.*" target="lib\net48\fil" />
    <file src="Humanizer\bin\Release\net10.0\fil\*.*" target="lib\net10.0\fil" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.fr.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.fr</id>
    <version>$version$</version>
    <title>Humanizer Locale (fr)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale French (fr)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>fr</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\fr\*.*" target="lib\netstandard2.0\fr" />
    <file src="Humanizer\bin\Release\net8.0\fr\*.*" target="lib\net8.0\fr" />
    <file src="Humanizer\bin\Release\net48\fr\*.*" target="lib\net48\fr" />
    <file src="Humanizer\bin\Release\net10.0\fr\*.*" target="lib\net10.0\fr" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.he.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.he</id>
    <version>$version$</version>
    <title>Humanizer Locale (he)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Hebrew (he)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>he</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\he\*.*" target="lib\netstandard2.0\he" />
    <file src="Humanizer\bin\Release\net8.0\he\*.*" target="lib\net8.0\he" />
    <file src="Humanizer\bin\Release\net48\he\*.*" target="lib\net48\he" />
    <file src="Humanizer\bin\Release\net10.0\he\*.*" target="lib\net10.0\he" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.hr.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.hr</id>
    <version>$version$</version>
    <title>Humanizer Locale (hr)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Croatian (hr)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>hr</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\hr\*.*" target="lib\netstandard2.0\hr" />
    <file src="Humanizer\bin\Release\net8.0\hr\*.*" target="lib\net8.0\hr" />
    <file src="Humanizer\bin\Release\net48\hr\*.*" target="lib\net48\hr" />
    <file src="Humanizer\bin\Release\net10.0\hr\*.*" target="lib\net10.0\hr" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.hu.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.hu</id>
    <version>$version$</version>
    <title>Humanizer Locale (hu)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Hungarian (hu)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>hu</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\hu\*.*" target="lib\netstandard2.0\hu" />
    <file src="Humanizer\bin\Release\net8.0\hu\*.*" target="lib\net8.0\hu" />
    <file src="Humanizer\bin\Release\net48\hu\*.*" target="lib\net48\hu" />
    <file src="Humanizer\bin\Release\net10.0\hu\*.*" target="lib\net10.0\hu" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.hy.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.hy</id>
    <version>$version$</version>
    <title>Humanizer Locale (hy)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Armenian (hy)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>hy</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\hy\*.*" target="lib\netstandard2.0\hy" />
    <file src="Humanizer\bin\Release\net8.0\hy\*.*" target="lib\net8.0\hy" />
    <file src="Humanizer\bin\Release\net48\hy\*.*" target="lib\net48\hy" />
    <file src="Humanizer\bin\Release\net10.0\hy\*.*" target="lib\net10.0\hy" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>


================================================
FILE: NuSpecs/Humanizer.Core.id.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.id</id>
    <version>$version$</version>
    <title>Humanizer Locale (id)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Indonesian (id)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>id</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\id\*.*" target="lib\netstandard2.0\id" />
    <file src="Humanizer\bin\Release\net8.0\id\*.*" target="lib\net8.0\id" />
    <file src="Humanizer\bin\Release\net48\id\*.*" target="lib\net48\id" />
    <file src="Humanizer\bin\Release\net10.0\id\*.*" target="lib\net10.0\id" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.is.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.is</id>
    <version>$version$</version>
    <title>Humanizer Locale (is)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Icelandic (is)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>is</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\is\*.*" target="lib\netstandard2.0\is" />
    <file src="Humanizer\bin\Release\net8.0\is\*.*" target="lib\net8.0\is" />
    <file src="Humanizer\bin\Release\net48\is\*.*" target="lib\net48\is" />
    <file src="Humanizer\bin\Release\net10.0\is\*.*" target="lib\net10.0\is" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.it.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.it</id>
    <version>$version$</version>
    <title>Humanizer Locale (it)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Italian (it)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>it</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\it\*.*" target="lib\netstandard2.0\it" />
    <file src="Humanizer\bin\Release\net8.0\it\*.*" target="lib\net8.0\it" />
    <file src="Humanizer\bin\Release\net48\it\*.*" target="lib\net48\it" />
    <file src="Humanizer\bin\Release\net10.0\it\*.*" target="lib\net10.0\it" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ja.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ja</id>
    <version>$version$</version>
    <title>Humanizer Locale (ja)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Japanese (ja)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>ja</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\ja\*.*" target="lib\netstandard2.0\ja" />
    <file src="Humanizer\bin\Release\net8.0\ja\*.*" target="lib\net8.0\ja" />
    <file src="Humanizer\bin\Release\net48\ja\*.*" target="lib\net48\ja" />
    <file src="Humanizer\bin\Release\net10.0\ja\*.*" target="lib\net10.0\ja" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ko.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ko</id>
    <version>$version$</version>
    <title>Humanizer Locale (ko)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Korean (South Korea) (ko)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <language>ko</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\ko\*.*" target="lib\netstandard2.0\ko" />
    <file src="Humanizer\bin\Release\net8.0\ko\*.*" target="lib\net8.0\ko" />
    <file src="Humanizer\bin\Release\net48\ko\*.*" target="lib\net48\ko" />
    <file src="Humanizer\bin\Release\net10.0\ko\*.*" target="lib\net10.0\ko" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ku.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ku</id>
    <version>$version$</version>
    <title>Humanizer Locale (ku)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Central Kurdish (ku)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>ku</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\ku\*.*" target="lib\netstandard2.0\ku" />
    <file src="Humanizer\bin\Release\net8.0\ku\*.*" target="lib\net8.0\ku" />
    <file src="Humanizer\bin\Release\net48\ku\*.*" target="lib\net48\ku" />
    <file src="Humanizer\bin\Release\net10.0\ku\*.*" target="lib\net10.0\ku" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.lb.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.lb</id>
    <version>$version$</version>
    <title>Humanizer Locale (lb)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Luxembourgish (lb)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>lb</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\lb\*.*" target="lib\netstandard2.0\lb" />
    <file src="Humanizer\bin\Release\net8.0\lb\*.*" target="lib\net8.0\lb" />
    <file src="Humanizer\bin\Release\net48\lb\*.*" target="lib\net48\lb" />
    <file src="Humanizer\bin\Release\net10.0\lb\*.*" target="lib\net10.0\lb" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.lt.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.lt</id>
    <version>$version$</version>
    <title>Humanizer Locale (lt)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Lithuanian (lt)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>lt</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\lt\*.*" target="lib\netstandard2.0\lt" />
    <file src="Humanizer\bin\Release\net8.0\lt\*.*" target="lib\net8.0\lt" />
    <file src="Humanizer\bin\Release\net48\lt\*.*" target="lib\net48\lt" />
    <file src="Humanizer\bin\Release\net10.0\lt\*.*" target="lib\net10.0\lt" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.lv.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.lv</id>
    <version>$version$</version>
    <title>Humanizer Locale (lv)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Latvian (lv)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>lv</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\lv\*.*" target="lib\netstandard2.0\lv" />
    <file src="Humanizer\bin\Release\net8.0\lv\*.*" target="lib\net8.0\lv" />
    <file src="Humanizer\bin\Release\net48\lv\*.*" target="lib\net48\lv" />
    <file src="Humanizer\bin\Release\net10.0\lv\*.*" target="lib\net10.0\lv" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ms.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ms</id>
    <version>$version$</version>
    <title>Humanizer Locale (ms)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Malay (Malaysia) (ms)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <language>ms</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\ms\*.*" target="lib\netstandard2.0\ms" />
    <file src="Humanizer\bin\Release\net8.0\ms\*.*" target="lib\net8.0\ms" />
    <file src="Humanizer\bin\Release\net48\ms\*.*" target="lib\net48\ms" />
    <file src="Humanizer\bin\Release\net10.0\ms\*.*" target="lib\net10.0\ms" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.mt.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.mt</id>
    <version>$version$</version>
    <title>Humanizer Locale (mt)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Maltese (mt)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>mt</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\mt\*.*" target="lib\netstandard2.0\mt" />
    <file src="Humanizer\bin\Release\net8.0\mt\*.*" target="lib\net8.0\mt" />
    <file src="Humanizer\bin\Release\net48\mt\*.*" target="lib\net48\mt" />
    <file src="Humanizer\bin\Release\net10.0\mt\*.*" target="lib\net10.0\mt" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.nb.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.nb</id>
    <version>$version$</version>
    <title>Humanizer Locale (nb)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Norwegian Bokmål (nb)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>nb</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\nb\*.*" target="lib\netstandard2.0\nb" />
    <file src="Humanizer\bin\Release\net8.0\nb\*.*" target="lib\net8.0\nb" />
    <file src="Humanizer\bin\Release\net48\nb\*.*" target="lib\net48\nb" />
    <file src="Humanizer\bin\Release\net10.0\nb\*.*" target="lib\net10.0\nb" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.nl.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.nl</id>
    <version>$version$</version>
    <title>Humanizer Locale (nl)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Dutch (nl)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>nl</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\nl\*.*" target="lib\netstandard2.0\nl" />
    <file src="Humanizer\bin\Release\net8.0\nl\*.*" target="lib\net8.0\nl" />
    <file src="Humanizer\bin\Release\net48\nl\*.*" target="lib\net48\nl" />
    <file src="Humanizer\bin\Release\net10.0\nl\*.*" target="lib\net10.0\nl" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core</id>
    <version>$version$</version>
    <title>Humanizer Locale (en)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer core package that contains the library and the neutral language (English) resources</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <language>en</language>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <dependencies>
      <group targetFramework=".NETStandard2.0">
        <dependency id="System.Collections.Immutable" version="10.0.5" exclude="Build,Analyzers" />
        <dependency id="System.ComponentModel.Annotations" version="5.0.0" exclude="Build,Analyzers" />
        <dependency id="System.Memory" version="4.6.3" exclude="Build,Analyzers" />
      </group>
      <group targetFramework="net48">
        <dependency id="System.Collections.Immutable" version="10.0.5" exclude="Build,Analyzers" />
        <dependency id="System.ComponentModel.Annotations" version="5.0.0" exclude="Build,Analyzers" />
        <dependency id="System.Memory" version="4.6.3" exclude="Build,Analyzers" />
      </group>
      <group targetFramework="net8.0" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\Humanizer.dll" target="lib\netstandard2.0" />
    <file src="Humanizer\bin\Release\netstandard2.0\Humanizer.xml" target="lib\netstandard2.0" />
    <file src="Humanizer\bin\Release\net48\Humanizer.dll" target="lib\net48" />
    <file src="Humanizer\bin\Release\net48\Humanizer.xml" target="lib\net48" />
    <file src="Humanizer\bin\Release\net8.0\Humanizer.dll" target="lib\net8.0" />
    <file src="Humanizer\bin\Release\net8.0\Humanizer.xml" target="lib\net8.0" />
    <file src="Humanizer\bin\Release\net10.0\Humanizer.dll" target="lib\net10.0" />
    <file src="Humanizer\bin\Release\net10.0\Humanizer.xml" target="lib\net10.0" />
    <file src="Humanizer.Analyzers\bin\Release\roslyn3.8\netstandard2.0\Humanizer.Analyzers.dll" target="analyzers\dotnet\roslyn3.8\cs" />
    <file src="Humanizer.Analyzers\bin\Release\roslyn4.8\netstandard2.0\Humanizer.Analyzers.dll" target="analyzers\dotnet\roslyn4.8\cs" />
    <file src="Humanizer.Analyzers\bin\Release\roslyn4.14\netstandard2.0\Humanizer.Analyzers.dll" target="analyzers\dotnet\roslyn4.14\cs" />
    <file src="Humanizer.Analyzers\build\Humanizer.Core.targets" target="buildTransitive\Humanizer.Core.targets" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>


================================================
FILE: NuSpecs/Humanizer.Core.pl.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.pl</id>
    <version>$version$</version>
    <title>Humanizer Locale (pl)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Polish (pl)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>pl</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\pl\*.*" target="lib\netstandard2.0\pl" />
    <file src="Humanizer\bin\Release\net8.0\pl\*.*" target="lib\net8.0\pl" />
    <file src="Humanizer\bin\Release\net48\pl\*.*" target="lib\net48\pl" />
    <file src="Humanizer\bin\Release\net10.0\pl\*.*" target="lib\net10.0\pl" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.pt-BR.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.pt-BR</id>
    <version>$version$</version>
    <title>Humanizer Locale (pt-BR)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Portuguese, Brazil (pt-BR)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>pt-BR</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\pt-BR\*.*" target="lib\netstandard2.0\pt-BR" />
    <file src="Humanizer\bin\Release\net8.0\pt-BR\*.*" target="lib\net8.0\pt-BR" />
    <file src="Humanizer\bin\Release\net48\pt-BR\*.*" target="lib\net48\pt-BR" />
    <file src="Humanizer\bin\Release\net10.0\pt-BR\*.*" target="lib\net10.0\pt-BR" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.pt.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.pt</id>
    <version>$version$</version>
    <title>Humanizer Locale (pt)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Portuguese (pt)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>pt</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\pt\*.*" target="lib\netstandard2.0\pt" />
    <file src="Humanizer\bin\Release\net8.0\pt\*.*" target="lib\net8.0\pt" />
    <file src="Humanizer\bin\Release\net48\pt\*.*" target="lib\net48\pt" />
    <file src="Humanizer\bin\Release\net10.0\pt\*.*" target="lib\net10.0\pt" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ro.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ro</id>
    <version>$version$</version>
    <title>Humanizer Locale (ro)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Romanian (ro)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>ro</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\ro\*.*" target="lib\netstandard2.0\ro" />
    <file src="Humanizer\bin\Release\net8.0\ro\*.*" target="lib\net8.0\ro" />
    <file src="Humanizer\bin\Release\net48\ro\*.*" target="lib\net48\ro" />
    <file src="Humanizer\bin\Release\net10.0\ro\*.*" target="lib\net10.0\ro" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ru.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ru</id>
    <version>$version$</version>
    <title>Humanizer Locale (ru)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Russian (ru)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>ru</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\ru\*.*" target="lib\netstandard2.0\ru" />
    <file src="Humanizer\bin\Release\net8.0\ru\*.*" target="lib\net8.0\ru" />
    <file src="Humanizer\bin\Release\net48\ru\*.*" target="lib\net48\ru" />
    <file src="Humanizer\bin\Release\net10.0\ru\*.*" target="lib\net10.0\ru" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.sk.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.sk</id>
    <version>$version$</version>
    <title>Humanizer Locale (sk)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Slovak (sk)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>sk</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\sk\*.*" target="lib\netstandard2.0\sk" />
    <file src="Humanizer\bin\Release\net8.0\sk\*.*" target="lib\net8.0\sk" />
    <file src="Humanizer\bin\Release\net48\sk\*.*" target="lib\net48\sk" />
    <file src="Humanizer\bin\Release\net10.0\sk\*.*" target="lib\net10.0\sk" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.sl.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.sl</id>
    <version>$version$</version>
    <title>Humanizer Locale (sl)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Slovenian (sl)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>sl</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\sl\*.*" target="lib\netstandard2.0\sl" />
    <file src="Humanizer\bin\Release\net8.0\sl\*.*" target="lib\net8.0\sl" />
    <file src="Humanizer\bin\Release\net48\sl\*.*" target="lib\net48\sl" />
    <file src="Humanizer\bin\Release\net10.0\sl\*.*" target="lib\net10.0\sl" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.sr-Latn.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.sr-Latn</id>
    <version>$version$</version>
    <title>Humanizer Locale (sr-Latn)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Serbian (sr-Latn)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>sr-Latn</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\sr-Latn\*.*" target="lib\netstandard2.0\sr-Latn" />
    <file src="Humanizer\bin\Release\net8.0\sr-Latn\*.*" target="lib\net8.0\sr-Latn" />
    <file src="Humanizer\bin\Release\net48\sr-Latn\*.*" target="lib\net48\sr-Latn" />
    <file src="Humanizer\bin\Release\net10.0\sr-Latn\*.*" target="lib\net10.0\sr-Latn" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.sr.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.sr</id>
    <version>$version$</version>
    <title>Humanizer Locale (sr)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Serbian (sr)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>sr</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\sr\*.*" target="lib\netstandard2.0\sr" />
    <file src="Humanizer\bin\Release\net8.0\sr\*.*" target="lib\net8.0\sr" />
    <file src="Humanizer\bin\Release\net48\sr\*.*" target="lib\net48\sr" />
    <file src="Humanizer\bin\Release\net10.0\sr\*.*" target="lib\net10.0\sr" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.sv.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.sv</id>
    <version>$version$</version>
    <title>Humanizer Locale (sv)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Swedish (sv)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>sv</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\sv\*.*" target="lib\netstandard2.0\sv" />
    <file src="Humanizer\bin\Release\net8.0\sv\*.*" target="lib\net8.0\sv" />
    <file src="Humanizer\bin\Release\net48\sv\*.*" target="lib\net48\sv" />
    <file src="Humanizer\bin\Release\net10.0\sv\*.*" target="lib\net10.0\sv" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.ta.nuspec.unused
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.ta</id>
    <version>$version$</version>
    <title>Humanizer Locale (ta)</title>
    <authors>Mehdi Khalili, Claire Novotny</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Tamil (ta)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>ta</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
		<file src="Humanizer\bin\Release\netstandard2.0\ta\*.*" target="lib\netstandard2.0\ta" />
		<file src="Humanizer\bin\Release\net8.0\ta\*.*" target="lib\net8.0\ta" />
		<file src="Humanizer\bin\Release\net48\ta\*.*" target="lib\net48\ta" />
		<file src="Humanizer\bin\Release\net10.0\ta\*.*" target="lib\net10.0\ta" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>


================================================
FILE: NuSpecs/Humanizer.Core.th.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.th</id>
    <version>$version$</version>
    <title>Humanizer Locale (th-TH)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Thai (Thailand) (th)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <language>th</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\th\*.*" target="lib\netstandard2.0\th" />
    <file src="Humanizer\bin\Release\net8.0\th\*.*" target="lib\net8.0\th" />
    <file src="Humanizer\bin\Release\net48\th\*.*" target="lib\net48\th" />
    <file src="Humanizer\bin\Release\net10.0\th\*.*" target="lib\net10.0\th" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.tr.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.tr</id>
    <version>$version$</version>
    <title>Humanizer Locale (tr)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Turkish (tr)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>tr</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\tr\*.*" target="lib\netstandard2.0\tr" />
    <file src="Humanizer\bin\Release\net8.0\tr\*.*" target="lib\net8.0\tr" />
    <file src="Humanizer\bin\Release\net48\tr\*.*" target="lib\net48\tr" />
    <file src="Humanizer\bin\Release\net10.0\tr\*.*" target="lib\net10.0\tr" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.uk.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.uk</id>
    <version>$version$</version>
    <title>Humanizer Locale (uk)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Ukrainian (uk)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>uk</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\uk\*.*" target="lib\netstandard2.0\uk" />
    <file src="Humanizer\bin\Release\net8.0\uk\*.*" target="lib\net8.0\uk" />
    <file src="Humanizer\bin\Release\net48\uk\*.*" target="lib\net48\uk" />
    <file src="Humanizer\bin\Release\net10.0\uk\*.*" target="lib\net10.0\uk" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.uz-Cyrl-UZ.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.uz-Cyrl-UZ</id>
    <version>$version$</version>
    <title>Humanizer Locale (uz-Cyrl-UZ)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Uzbek (Cyrillic, Uzbekistan) (uz-Cyrl-UZ)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>uz-Cyrl-UZ</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\uz-Cyrl-UZ\*.*" target="lib\netstandard2.0\uz-Cyrl-UZ" />
    <file src="Humanizer\bin\Release\net8.0\uz-Cyrl-UZ\*.*" target="lib\net8.0\uz-Cyrl-UZ" />
    <file src="Humanizer\bin\Release\net48\uz-Cyrl-UZ\*.*" target="lib\net48\uz-Cyrl-UZ" />
    <file src="Humanizer\bin\Release\net10.0\uz-Cyrl-UZ\*.*" target="lib\net10.0\uz-Cyrl-UZ" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.uz-Latn-UZ.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.uz-Latn-UZ</id>
    <version>$version$</version>
    <title>Humanizer Locale (uz-Latn-UZ)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Uzbek (Latin, Uzbekistan) (uz-Latn-UZ)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>uz-Latn-UZ</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\uz-Latn-UZ\*.*" target="lib\netstandard2.0\uz-Latn-UZ" />
    <file src="Humanizer\bin\Release\net8.0\uz-Latn-UZ\*.*" target="lib\net8.0\uz-Latn-UZ" />
    <file src="Humanizer\bin\Release\net48\uz-Latn-UZ\*.*" target="lib\net48\uz-Latn-UZ" />
    <file src="Humanizer\bin\Release\net10.0\uz-Latn-UZ\*.*" target="lib\net10.0\uz-Latn-UZ" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.vi.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.vi</id>
    <version>$version$</version>
    <title>Humanizer Locale (vi)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Vietnamese (vi)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>vi</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\vi\*.*" target="lib\netstandard2.0\vi" />
    <file src="Humanizer\bin\Release\net8.0\vi\*.*" target="lib\net8.0\vi" />
    <file src="Humanizer\bin\Release\net48\vi\*.*" target="lib\net48\vi" />
    <file src="Humanizer\bin\Release\net10.0\vi\*.*" target="lib\net10.0\vi" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.zh-CN.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.zh-CN</id>
    <version>$version$</version>
    <title>Humanizer Locale (zh-CN)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Chinese (China) (zh-CN)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>zh-CN</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\zh-CN\*.*" target="lib\netstandard2.0\zh-CN" />
    <file src="Humanizer\bin\Release\net8.0\zh-CN\*.*" target="lib\net8.0\zh-CN" />
    <file src="Humanizer\bin\Release\net48\zh-CN\*.*" target="lib\net48\zh-CN" />
    <file src="Humanizer\bin\Release\net10.0\zh-CN\*.*" target="lib\net10.0\zh-CN" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.zh-Hans.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.zh-Hans</id>
    <version>$version$</version>
    <title>Humanizer Locale (zh-Hans)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Chinese (zh-Hans)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>zh-Hans</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\zh-Hans\*.*" target="lib\netstandard2.0\zh-Hans" />
    <file src="Humanizer\bin\Release\net8.0\zh-Hans\*.*" target="lib\net8.0\zh-Hans" />
    <file src="Humanizer\bin\Release\net48\zh-Hans\*.*" target="lib\net48\zh-Hans" />
    <file src="Humanizer\bin\Release\net10.0\zh-Hans\*.*" target="lib\net10.0\zh-Hans" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.Core.zh-Hant.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="2.12">
    <id>Humanizer.Core.zh-Hant</id>
    <version>$version$</version>
    <title>Humanizer Locale (zh-Hant)</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer Locale Chinese (zh-Hant)</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <language>zh-Hant</language>
    <dependencies>
       <dependency id="Humanizer.Core" version="[$version$]" />
    </dependencies>
  </metadata>
  <files>
    <file src="Humanizer\bin\Release\netstandard2.0\zh-Hant\*.*" target="lib\netstandard2.0\zh-Hant" />
    <file src="Humanizer\bin\Release\net8.0\zh-Hant\*.*" target="lib\net8.0\zh-Hant" />
    <file src="Humanizer\bin\Release\net48\zh-Hant\*.*" target="lib\net48\zh-Hant" />
    <file src="Humanizer\bin\Release\net10.0\zh-Hant\*.*" target="lib\net10.0\zh-Hant" />
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>

================================================
FILE: NuSpecs/Humanizer.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata minClientVersion="6.13">
    <id>Humanizer</id>
    <version>$version$</version>
    <title>Humanizer</title>
    <authors>Claire Novotny, Mehdi Khalili</authors>
    <projectUrl>https://github.com/Humanizr/Humanizer</projectUrl>
    <icon>logo.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities</description>
    <copyright>Copyright (c) .NET Foundation and Contributors</copyright>
    <license type="expression">MIT</license>
    <repository type="$RepositoryType$" url="$RepositoryUrl$" commit="$RepositoryCommit$" />
    <dependencies>
      <dependency id="Humanizer.Core.af" version="$version$" />
      <dependency id="Humanizer.Core.ar" version="$version$" />
      <dependency id="Humanizer.Core.az" version="$version$" />
      <dependency id="Humanizer.Core.bg" version="$version$" />
      <dependency id="Humanizer.Core.bn" version="$version$" />
      <dependency id="Humanizer.Core.ca" version="$version$" />
      <dependency id="Humanizer.Core.cs" version="$version$" />
      <dependency id="Humanizer.Core.da" version="$version$" />
      <dependency id="Humanizer.Core.de" version="$version$" />
      <dependency id="Humanizer.Core.el" version="$version$" />
      <dependency id="Humanizer.Core.es" version="$version$" />
      <dependency id="Humanizer.Core.fa" version="$version$" />
      <dependency id="Humanizer.Core.fi" version="$version$" />
      <dependency id="Humanizer.Core.fil" version="$version$" />
      <dependency id="Humanizer.Core.fr" version="$version$" />
      <dependency id="Humanizer.Core.he" version="$version$" />
      <dependency id="Humanizer.Core.hr" version="$version$" />
      <dependency id="Humanizer.Core.hu" version="$version$" />
      <dependency id="Humanizer.Core.hy" version="$version$" />
      <dependency id="Humanizer.Core.id" version="$version$" />
      <dependency id="Humanizer.Core.is" version="$version$" />
      <dependency id="Humanizer.Core.it" version="$version$" />
      <dependency id="Humanizer.Core.ja" version="$version$" />
      <dependency id="Humanizer.Core.ko" version="$version$" />
      <dependency id="Humanizer.Core.ku" version="$version$" />
      <dependency id="Humanizer.Core.lb" version="$version$" />
      <dependency id="Humanizer.Core.lt" version="$version$" />
      <dependency id="Humanizer.Core.lv" version="$version$" />
      <dependency id="Humanizer.Core.ms" version="$version$" />
      <dependency id="Humanizer.Core.mt" version="$version$" />
      <dependency id="Humanizer.Core.nb" version="$version$" />
      <dependency id="Humanizer.Core.nl" version="$version$" />
      <dependency id="Humanizer.Core.pl" version="$version$" />
      <dependency id="Humanizer.Core.pt" version="$version$" />
      <dependency id="Humanizer.Core.pt-BR" version="$version$" />
      <dependency id="Humanizer.Core.ro" version="$version$" />
      <dependency id="Humanizer.Core.ru" version="$version$" />
      <dependency id="Humanizer.Core.sk" version="$version$" />
      <dependency id="Humanizer.Core.sl" version="$version$" />
      <dependency id="Humanizer.Core.sr" version="$version$" />
      <dependency id="Humanizer.Core.sr-Latn" version="$version$" />
      <dependency id="Humanizer.Core.sv" version="$version$" />
      <!--<dependency id="Humanizer.Core.ta" version="$version$" /> no resources yet -->
      <dependency id="Humanizer.Core.th" version="$version$" />
      <dependency id="Humanizer.Core.tr" version="$version$" />
      <dependency id="Humanizer.Core.uk" version="$version$" />
      <dependency id="Humanizer.Core.uz-Cyrl-UZ" version="$version$" />
      <dependency id="Humanizer.Core.uz-Latn-UZ" version="$version$" />
      <dependency id="Humanizer.Core.vi" version="$version$" />
      <dependency id="Humanizer.Core.zh-CN" version="$version$" />
      <dependency id="Humanizer.Core.zh-Hans" version="$version$" />
      <dependency id="Humanizer.Core.zh-Hant" version="$version$" />
    </dependencies>
  </metadata>
  <files>
    <file src="..\logo.png" target="logo.png" />
  </files>
</package>


================================================
FILE: ResXManager.config.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<Values xmlns="urn:tom-englert.de/Configuration/1/0">
  <Value Key="SortFileContentOnSave">True</Value>
</Values>

================================================
FILE: azure-pipelines.yml
================================================
trigger:
- main
- rel/*

pr:
- main
- rel/*

variables:
  BuildConfiguration: Release
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true

stages:
- stage: Build
  variables:
  - group: 'Report Generator License Key'

  jobs:
  - job: Build
    pool:
      vmImage: windows-latest

    steps:
    - task: UseDotNet@2
      displayName: 'Use .NET 8 SDK'
      inputs:
        version: 8.x

    - task: UseDotNet@2
      displayName: 'Use .NET 9 SDK'
      inputs:
        version: 9.x

    - task: UseDotNet@2
      displayName: 'Use .NET 10 SDK'
      inputs:
        includePreviewVersions: true
        version: 10.x

    - task: UseDotNet@2
      displayName: 'Use .NET 11 SDK'
      inputs:
        includePreviewVersions: true
        version: 11.x

    - task: DotNetCoreCLI@2
      inputs:
        command: custom
        custom: tool
        arguments: install --tool-path . nbgv
      displayName: Install NBGV tool

    - script: nbgv cloud -c -a
      displayName: Set Version

    - task: DotNetCoreCLI@2
      inputs:
        command: build
        projects: ./src/Humanizer/Humanizer.csproj
        arguments: -c $(BuildConfiguration) /t:PackNuSpecs /p:PackageOutputPath=$(Build.ArtifactStagingDirectory)/Packages 
      displayName: Restore, Build, and Pack

    - pwsh: |
        $(Build.SourcesDirectory)/tests/verify-packages.ps1 `
          -PackageVersion '$(NBGV_NuGetPackageVersion)' `
          -PackagesDirectory '$(Build.ArtifactStagingDirectory)/Packages' `
          -IncludeWapProjSmokeTest
      displayName: Verify Package Structure and Dependencies
      failOnStderr: false

    - task: DotNetCoreCLI@2
      inputs:
        command: test
        projects: |
          tests/Humanizer.Tests/Humanizer.Tests.csproj
          tests/Humanizer.Analyzers.Tests/Humanizer.Analyzers.Tests.csproj
        arguments: -c $(BuildConfiguration) --coverage --xunit-info
      displayName: Run Tests

    # Generate code coverage report
    # https://danielpalme.github.io/ReportGenerator/
    - task: reportgenerator@5
      displayName: Generate Code Coverage Report
      inputs:
        reports: '$(Agent.TempDirectory)/**/*.cobertura.xml'
        targetdir: $(Build.ArtifactStagingDirectory)/coverageReports/ 
        reporttypes: HtmlInline_AzurePipelines_Dark;Cobertura;Badges
        license: '$(ReportGeneratorLicenseKey)'
        publishCodeCoverageResults: true
      
    - publish: $(Build.ArtifactStagingDirectory)/Packages
      displayName: Publish build packages
      artifact: BuildPackages


- stage: CodeSign
  dependsOn: Build
  condition: and(succeeded('Build'), not(eq(variables['build.reason'], 'PullRequest')))
  jobs:
  - job: CodeSign
    displayName: Code Signing
    pool:
      vmImage: windows-latest
    variables:
    - group: SignCLI Creds

    steps:

    # Retreive unsigned artifacts 
    - download: current
      artifact: BuildPackages
      displayName: Download build artifacts

    - task: UseDotNet@2
      displayName: 'Use .NET 10 SDK'
      inputs:
        includePreviewVersions: true
        version: 10.x

    # Install the code signing tool
    - task: DotNetCoreCLI@2
      inputs:
        command: custom
        custom: tool
        arguments: install --tool-path . --prerelease sign 
      displayName: Install SignTool tool

    - task: AzureCLI@2
      inputs:
        azureSubscription: 'AzureRM - Humanizr'
        scriptType: pscore
        scriptLocation: inlineScript
        inlineScript: |
          .\sign code azure-key-vault `
          "**/*.nupkg" `
          --base-directory "$(Pipeline.Workspace)\BuildPackages" `
          --publisher-name "Humanizer" `
          --description "Humanizer" `
          --description-url "https://github.com/Humanizr/Humanizer" `
          --azure-key-vault-certificate "$(SignKeyVaultCertificate)" `
          --azure-key-vault-url "$(SignKeyVaultUrl)"
      displayName: Sign packages
    
    # Publish the signed packages
    - publish: $(Pipeline.Workspace)/BuildPackages
      displayName: Publish Signed Packages
      artifact: SignedPackages


================================================
FILE: docs/_config.yml
================================================
# Jekyll configuration for Humanizer GitHub Pages
title: Humanizer
description: Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname & protocol for your site

# Build settings
markdown: kramdown

# Use readme.md as the index page
defaults:
  - scope:
      path: ""
    values:
      layout: "default"


================================================
FILE: docs/_layouts/default.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ page.title | default: site.title }}</title>
    <meta name="description" content="{{ page.description | default: site.description }}">
    <link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
</head>
<body>
    <header>
        <div class="container">
            <h1>{{ site.title }}</h1>
            <p>{{ site.description }}</p>
        </div>
    </header>
    
    <main class="container">
        {{ content }}
    </main>
    
    <footer>
        <div class="container">
            <p>&copy; {{ 'now' | date: "%Y" }} Humanizer. Licensed under MIT.</p>
            <p>
                <a href="https://github.com/Humanizr/Humanizer" target="_blank">GitHub</a> |
                <a href="https://www.nuget.org/packages/Humanizer" target="_blank">NuGet</a>
            </p>
        </div>
    </footer>
</body>
</html>


================================================
FILE: docs/assets/css/style.css
================================================
/* Root CSS variables for light mode (default) */
:root {
    --bg-color: #ffffff;
    --text-color: #333333;
    --header-bg: #f8f9fa;
    --header-border: #e9ecef;
    --link-color: #0366d6;
    --link-hover: #0256b9;
    --code-bg: #f6f8fa;
    --code-border: #e1e4e8;
    --footer-bg: #f8f9fa;
    --footer-text: #586069;
    --shadow: rgba(0, 0, 0, 0.1);
}

/* Dark mode variables - automatically applied based on system preference */
@media (prefers-color-scheme: dark) {
    :root {
        --bg-color: #0d1117;
        --text-color: #c9d1d9;
        --header-bg: #161b22;
        --header-border: #30363d;
        --link-color: #58a6ff;
        --link-hover: #79c0ff;
        --code-bg: #161b22;
        --code-border: #30363d;
        --footer-bg: #161b22;
        --footer-text: #8b949e;
        --shadow: rgba(0, 0, 0, 0.3);
    }
}

/* Base styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    line-height: 1.6;
    background-color: var(--bg-color);
    color: var(--text-color);
    transition: background-color 0.3s ease, color 0.3s ease;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Header styles */
header {
    background-color: var(--header-bg);
    border-bottom: 1px solid var(--header-border);
    padding: 2rem 0;
    margin-bottom: 2rem;
    box-shadow: 0 2px 4px var(--shadow);
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

header h1 {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

header p {
    font-size: 1.1rem;
    color: var(--footer-text);
}

/* Main content */
main {
    min-height: 60vh;
    padding: 2rem 0;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    font-weight: 600;
    line-height: 1.25;
}

h1 { font-size: 2rem; }
h2 { font-size: 1.75rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.25rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.875rem; }

p {
    margin-bottom: 1rem;
}

/* Links */
a {
    color: var(--link-color);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--link-hover);
    text-decoration: underline;
}

/* Code blocks */
code {
    background-color: var(--code-bg);
    border: 1px solid var(--code-border);
    border-radius: 3px;
    padding: 0.2em 0.4em;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 85%;
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

pre {
    background-color: var(--code-bg);
    border: 1px solid var(--code-border);
    border-radius: 6px;
    padding: 1rem;
    overflow-x: auto;
    margin-bottom: 1rem;
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

pre code {
    background: none;
    border: none;
    padding: 0;
}

/* Lists */
ul, ol {
    margin-bottom: 1rem;
    padding-left: 2rem;
}

li {
    margin-bottom: 0.5rem;
}

/* Footer */
footer {
    background-color: var(--footer-bg);
    border-top: 1px solid var(--header-border);
    margin-top: 3rem;
    padding: 2rem 0;
    text-align: center;
    color: var(--footer-text);
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

footer p {
    margin-bottom: 0.5rem;
}

footer a {
    color: var(--link-color);
    margin: 0 0.5rem;
}

/* Responsive design */
@media (max-width: 768px) {
    header h1 {
        font-size: 2rem;
    }
    
    header p {
        font-size: 1rem;
    }
    
    .container {
        padding: 0 15px;
    }
}

/* Additional utility classes */
.text-center {
    text-align: center;
}

.mt-1 { margin-top: 1rem; }
.mt-2 { margin-top: 2rem; }
.mb-1 { margin-bottom: 1rem; }
.mb-2 { margin-bottom: 2rem; }


================================================
FILE: docs/extensibility.md
================================================
# Extensibility

Humanizer is designed to be extensible, allowing you to customize and extend its behavior to meet your specific needs.

## Custom String Transformers

Implement `IStringTransformer` to create custom string transformations:

```csharp
public interface IStringTransformer
{
    string Transform(string input);
}
```

### Example: Custom Title Case

```csharp
public class MyTitleCase : IStringTransformer
{
    private readonly HashSet<string> _articlesAndPrepositions = new()
    {
        "a", "an", "the", "and", "but", "or", "for", "nor", "on", "at", "to", "from", "by"
    };

    public string Transform(string input)
    {
        var words = input.Split(' ');
        for (int i = 0; i < words.Length; i++)
        {
            // Always capitalize first word
            if (i == 0 || !_articlesAndPrepositions.Contains(words[i].ToLower()))
            {
                words[i] = char.ToUpper(words[i][0]) + words[i].Substring(1).ToLower();
            }
        }
        return string.Join(" ", words);
    }
}

// Usage
"the quick brown fox".Transform(new MyTitleCase());
// => "The Quick Brown Fox"
```

The advantage over the built-in `LetterCasing` enum is complete control over the transformation logic.

## Custom Truncators

Implement `ITruncator` to create custom truncation strategies:

```csharp
public interface ITruncator
{
    string Truncate(string value, int length, string truncationString, 
                   TruncateFrom truncateFrom = TruncateFrom.Right);
}
```

### Example: Sentence Boundary Truncator

```csharp
public class SentenceTruncator : ITruncator
{
    public string Truncate(string value, int length, string truncationString, 
                          TruncateFrom truncateFrom)
    {
        if (value.Length <= length)
            return value;

        // Find the last sentence boundary before the length limit
        var truncated = value.Substring(0, length);
        var lastPeriod = truncated.LastIndexOf('.');
        
        if (lastPeriod > 0)
        {
            return truncated.Substring(0, lastPeriod + 1);
        }

        // Fall back to word boundary
        var lastSpace = truncated.LastIndexOf(' ');
        if (lastSpace > 0)
        {
            return truncated.Substring(0, lastSpace) + truncationString;
        }

        return truncated + truncationString;
    }
}

// Usage
"First sentence. Second sentence. Third sentence."
    .Truncate(30, "...", new SentenceTruncator());
// => "First sentence."
```

## Custom Vocabularies

Extend the pluralization/singularization vocabulary:

```csharp
// Add irregular word
Vocabularies.Default.AddIrregular("person", "people");

// Add uncountable word
Vocabularies.Default.AddUncountable("equipment");

// Add plural rule
Vocabularies.Default.AddPlural("(quiz)$", "$1zes");

// Add singular rule
Vocabularies.Default.AddSingular("(vert|ind)ices$", "$1ex");
```

### Match Ending Control

```csharp
// Match only "person" (not "salesperson")
Vocabularies.Default.AddIrregular("person", "people", matchEnding: false);

// Match "person" and "salesperson"
Vocabularies.Default.AddIrregular("person", "people", matchEnding: true);
```

## Custom Number to Words Converters

Implement language-specific number to words conversion:

```csharp
public interface INumberToWordsConverter
{
    string Convert(long number);
    string Convert(long number, GrammaticalGender gender);
    string ConvertToOrdinal(int number);
    string ConvertToOrdinal(int number, GrammaticalGender gender);
}
```

Register your converter:

```csharp
Configurator.NumberToWordsConverters.Register("my-culture", 
    new MyNumberToWordsConverter());
```

## Custom Formatters

Implement custom date/time/number formatting:

```csharp
public interface IFormatter
{
    string DateHumanize(DateTime value, DateTime? comparisonBase, 
                       CultureInfo culture);
    string TimeSpanHumanize(TimeSpan timeSpan, int precision, 
                           CultureInfo culture);
    // ... other methods
}
```

Register your formatter:

```csharp
Configurator.Formatters.Register("my-culture", new MyFormatter());
```

## Configuration

Customize Humanizer's behavior globally:

```csharp
// Custom enum description property name
Configurator.EnumDescriptionPropertyLocator = p => p.Name == "Info";

// Custom collection separator
Configurator.CollectionFormatters.Register("my-culture", 
    new MyCollectionFormatter());
```

## Best Practices

1. **Implement interfaces rather than extending classes** - This ensures compatibility with future versions

2. **Register custom components at application startup** - Do this once rather than on every use

3. **Thread safety** - Make custom implementations thread-safe if they'll be used concurrently

4. **Test thoroughly** - Custom implementations should have comprehensive test coverage

5. **Consider culture** - If your custom component is culture-specific, register it appropriately

## Related Topics

- [Custom Vocabularies](custom-vocabularies.md) - Detailed pluralization customization
- [Localization](localization.md) - Multi-language support
- [Configuration](configuration.md) - Global configuration options


================================================
FILE: docs/index.md
================================================
# Humanizer Documentation

Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities.

## Getting Started

- [Installation](installation.md) - How to install and configure Humanizer
- [Quick Start Guide](quick-start.md) - Get up and running quickly

## Core Features

### String Manipulation
- [String Humanization](string-humanization.md) - Transform computerized strings to human-readable text
- [String Dehumanization](string-dehumanization.md) - Convert back to PascalCase
- [String Transformations](string-transformations.md) - Apply custom transformations with IStringTransformer
- [String Truncation](string-truncation.md) - Intelligent truncation strategies

### Enumerations
- [Enum Humanization](enum-humanization.md) - Make enums readable
- [Enum Dehumanization](enum-dehumanization.md) - Parse strings back to enums

### Date and Time
- [DateTime Humanization](datetime-humanization.md) - Relative time ("2 hours ago", "tomorrow")
- [TimeSpan Humanization](timespan-humanization.md) - Human-readable durations
- [Fluent Date API](fluent-date.md) - Readable date/time construction and manipulation
- [DateTime to Ordinal Words](datetime-ordinal-words.md) - "1st of January 2020"
- [TimeOnly to Clock Notation](timeonly-clock-notation.md) - "half past two" (.NET 6+)

### Numbers
- [Number to Words](number-to-words.md) - "123" → "one hundred twenty-three"
- [Number to Ordinal Words](number-to-ordinal-words.md) - "1" → "first"
- [Words to Number](words-to-number.md) - "forty-two" → 42
- [Ordinalization](ordinalization.md) - "1" → "1st"
- [Roman Numerals](roman-numerals.md) - Convert to/from Roman numerals
- [Metric Numerals](metric-numerals.md) - "1230" → "1.23k"
- [Number to Numbers](number-to-numbers.md) - Fluent API for large numbers
- [Tupleize](tupleize.md) - "2" → "double"

### Collections
- [Collection Humanization](collection-humanization.md) - Turn lists into "item1, item2, and item3"
- [ToQuantity](to-quantity.md) - "5 cases", "1 man", "2 men"

### Word Manipulation
- [Pluralization](pluralization.md) - Handle singular/plural forms
- [Singularization](singularization.md) - Convert plurals to singular
- [Inflector Methods](inflector-methods.md) - Pascalize, Camelize, Underscore, Kebaberize, etc.

### Specialized Features
- [ByteSize](bytesize.md) - Human-readable byte sizes
- [Heading](heading.md) - Convert headings to text
- [Time Unit Symbols](time-unit-symbols.md) - "ms", "s", "min", etc.

## Advanced Topics

- [Localization](localization.md) - Multi-language support
- [Custom Vocabularies](custom-vocabularies.md) - Add custom pluralization rules
- [Extensibility](extensibility.md) - Implement custom transformers and truncators
- [Configuration](configuration.md) - Customize Humanizer behavior

## Migration Guides

- [Migrating from 2.14.1 to 3.0.8](migration-v3.md) - Comprehensive breaking changes, patch-line fixes, and known regressions
- [Namespace migration details](v3-namespace-migration.md) - Namespace-only migration guidance and analyzer usage

## API Reference

- [Complete API Reference](api-reference.md) - Full API documentation

## Contributing

- [Contributing Guide](../CONTRIBUTING.md) - How to contribute to Humanizer


================================================
FILE: docs/installation.md
================================================
# Installation

## NuGet Packages

Humanizer is available as NuGet packages with different language support options:

### All Languages (Recommended)

```bash
dotnet add package Humanizer
```

This package includes all supported languages and pulls in `Humanizer.Core` plus all language satellite packages.

### English Only

```bash
dotnet add package Humanizer.Core
```

This package includes only English language support, resulting in a smaller download size.

### Specific Languages

You can install `Humanizer.Core` along with specific language packages:

```bash
dotnet add package Humanizer.Core
dotnet add package Humanizer.Core.fr  # French
dotnet add package Humanizer.Core.es  # Spanish
dotnet add package Humanizer.Core.de  # German
# Add as many language packages as needed
```

Available language packages include: af, ar, az, bg, bn, ca, cs, da, de, el, es, fa, fi, fil, fr, he, hr, hu, hy, id, is, it, ja, ko, ku, lb, lt, lv, ms, mt, nb, nl, pl, pt, pt-BR, ro, ru, sk, sl, sr, sr-Latn, sv, th, tr, uk, uz-Cyrl-UZ, uz-Latn-UZ, vi, zh-CN, zh-Hans, zh-Hant.

## Supported Frameworks

Humanizer supports the following .NET target frameworks:

- **.NET 10.0** (net10.0)
- **.NET 8.0** (net8.0)
- **.NET Framework 4.8** (net48)
- **.NET Standard 2.0** (netstandard2.0) - Special case for Roslyn Analyzers and MSBuild tasks

> **Note:** While .NET Framework versions 4.6.1 through 4.7.2 can technically consume netstandard2.0 libraries, they are **not officially supported** by Humanizer and may not work correctly. Use one of the explicitly supported frameworks above.

## Requirements for Humanizer 3.0

> [!IMPORTANT]
> The `Humanizer` metapackage requires the NuGet locale parsing fix shipped in **.NET SDK 9.0.200** and corresponding Visual Studio/MSBuild updates.
>
> Restore operations must run on:
> - .NET SDK 9.0.200 or newer, OR
> - Visual Studio 2022/MSBuild versions that include the locale parsing patch
>
> Older SDKs/MSBuild versions will fail to restore the metapackage because they do not recognize three-letter locale identifiers.
>
> **Workaround for older tooling:** Reference `Humanizer.Core` directly and add desired `Humanizer.Core.<locale>` satellite packages individually.

## Source Link Support

Humanizer symbols are source-indexed with [SourceLink](https://github.com/dotnet/sourcelink) and included in the package. This means you can step through Humanizer's source code while debugging your own application.

## Verification

After installation, verify Humanizer is working:

```csharp
using Humanizer;

"PascalCaseString".Humanize(); // Returns "Pascal case string"
DateTime.UtcNow.AddHours(-2).Humanize(); // Returns "2 hours ago"
```

## Next Steps

- [Quick Start Guide](quick-start.md)
- [Migration from 2.14.1 to 3.0.8](migration-v3.md)
- [String Humanization](string-humanization.md)
- [DateTime Humanization](datetime-humanization.md)


================================================
FILE: docs/localization.md
================================================
# Localization

Humanizer supports over 40 languages and cultures, with localized implementations for most features.

## Supported Languages

Humanizer includes localization for:

Arabic (ar), Azerbaijani (az), Bulgarian (bg), Bengali (bn-BD), Czech (cs), Danish (da), German (de), Greek (el), Spanish (es), Persian (fa), Finnish (fi), French (fr), Hebrew (he), Croatian (hr), Hungarian (hu), Armenian (hy), Indonesian (id), Icelandic (is), Italian (it), Japanese (ja), Korean (ko), Kurdish (ku), Latvian (lv), Malay (ms-MY), Maltese (mt), Norwegian Bokmål (nb, nb-NO), Dutch (nl), Polish (pl), Portuguese (pt, pt-BR), Romanian (ro), Russian (ru), Slovak (sk), Slovenian (sl), Serbian (sr, sr-Latn), Swedish (sv), Thai (th), Turkish (tr), Ukrainian (uk), Uzbek (uz-Cyrl-UZ, uz-Latn-UZ), Vietnamese (vi), Chinese (zh-CN, zh-Hans, zh-Hant).

## Installing Language Packages

### All Languages

```bash
dotnet add package Humanizer
```

### Specific Languages

```bash
dotnet add package Humanizer.Core
dotnet add package Humanizer.Core.fr  # French
dotnet add package Humanizer.Core.es  # Spanish
dotnet add package Humanizer.Core.de  # German
```

## Using Cultures

Most Humanizer methods respect the current thread's `CurrentCulture` or `CurrentUICulture`. You can also explicitly specify a culture:

### DateTime Humanization

```csharp
var date = DateTime.UtcNow.AddHours(-2);

// Uses current culture
date.Humanize(); 

// Explicit culture
date.Humanize(culture: new CultureInfo("fr-FR")); 
// => "il y a 2 heures"

date.Humanize(culture: new CultureInfo("es")); 
// => "hace 2 horas"
```

### Number to Words

```csharp
1234.ToWords(); // Uses current culture

1234.ToWords(new CultureInfo("es")); 
// => "mil doscientos treinta y cuatro"

1234.ToWords(new CultureInfo("fr")); 
// => "mille deux cent trente-quatre"
```

### TimeSpan Humanization

```csharp
TimeSpan.FromDays(1).Humanize(); // Uses current culture

TimeSpan.FromDays(1).Humanize(culture: new CultureInfo("de")); 
// => "1 Tag"

TimeSpan.FromDays(3).Humanize(culture: new CultureInfo("ru")); 
// => "3 дня"
```

## Grammatical Features

Some languages require additional grammatical information:

### Grammatical Gender

```csharp
// Russian
1.ToWords(GrammaticalGender.Masculine, new CultureInfo("ru")); 
// => "один"

1.ToWords(GrammaticalGender.Feminine, new CultureInfo("ru")); 
// => "одна"

// Portuguese ordinals
1.Ordinalize(GrammaticalGender.Masculine); 
// => "1º"

1.Ordinalize(GrammaticalGender.Feminine); 
// => "1ª"
```

### Grammatical Case

```csharp
// Russian - date to ordinal words
var date = new DateTime(2020, 1, 1);

date.ToOrdinalWords(GrammaticalCase.Nominative); 
// Different form

date.ToOrdinalWords(GrammaticalCase.Genitive); 
// Different form
```

### Word Forms

```csharp
// Spanish - ordinal variations
3.Ordinalize(GrammaticalGender.Masculine, WordForm.Abbreviation); 
// => "3.er"

3.Ordinalize(GrammaticalGender.Masculine, WordForm.Normal); 
// => "3.º"
```

## Feature Support by Language

Not all features are available in all languages:

| Feature | Widely Supported | Limited Support |
|---------|------------------|-----------------|
| String Humanization | All languages | - |
| DateTime Humanization | All languages | - |
| TimeSpan Humanization | All languages | - |
| Number to Words | Most languages | Some Asian languages |
| Ordinalization | Most European languages | Limited in Asian languages |
| Pluralization | English only | - |

Check the specific feature documentation to see which languages are supported.

## Contributing Localizations

To contribute a new language or improve existing localizations:

1. Implement the required interfaces (e.g., `IFormatter`, `IDateToOrdinalWordConverter`)
2. Add resource files with translated strings
3. Register the formatter in `Configurator`
4. Add tests for the new language

See the [Contributing Guide](../CONTRIBUTING.md) for details.

## Related Topics

- [Installation](installation.md) - How to install language packages
- [Number to Words](number-to-words.md) - Language-specific number formatting
- [DateTime Humanization](datetime-humanization.md) - Relative time in different languages


================================================
FILE: docs/migration-v3.md
================================================
# Migrating from Humanizer 2.14.1 to 3.0.8

This guide is for teams upgrading directly from `2.14.1` to `3.0.8`.

This document was added to address [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656) (undocumented v3 breaking changes).

Validated against:
- Git tag `v2.14.1`
- v3 breaking-change commits through `v3.0.1`
- v3 patch-line fixes included in `3.0.8`:
  - Roslyn analyzer compatibility fixes in [PR #1676](https://github.com/Humanizr/Humanizer/pull/1676)
  - `ToQuantity(int, ...)` compatibility fix in [PR #1679](https://github.com/Humanizr/Humanizer/pull/1679)
  - `TitleCase` first-word capitalization fix in [PR #1678](https://github.com/Humanizr/Humanizer/pull/1678)

## Quick Upgrade Checklist

1. Update package/tooling prerequisites first (framework and restore requirements).
2. If you are on `3.0.1`, upgrade to `3.0.8` to pick up patch-line compatibility fixes ([#1655](https://github.com/Humanizr/Humanizer/issues/1655), [#1665](https://github.com/Humanizr/Humanizer/issues/1665), [#1672](https://github.com/Humanizr/Humanizer/issues/1672), [#1652](https://github.com/Humanizr/Humanizer/issues/1652), [#1658](https://github.com/Humanizr/Humanizer/issues/1658)).
3. Run the namespace migration analyzer and replace old `using Humanizer.*` directives.
4. Replace removed APIs (`FormatWith`, obsolete `ToMetric` overloads, etc.).
5. Rebuild all assemblies that reference Humanizer (binary compatibility changed in a few APIs).
6. If you implement extensibility points (`IFormatter`, `DefaultFormatter`), update those implementations.
7. Run behavioral regression tests for `Titleize`, `Pascalize`, `Dehumanize`, and enum humanization.

## Breaking Changes

### Namespace Consolidation (source-breaking)

All Humanizer APIs were consolidated into the root `Humanizer` namespace.

Related:
- [PR #1351](https://github.com/Humanizr/Humanizer/pull/1351)
- Upgrade impact report: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656)

Before:

```csharp
using Humanizer.Bytes;
using Humanizer.Localisation;
using Humanizer.Configuration;
```

After:

```csharp
using Humanizer;
```

Use the built-in analyzer (`HUMANIZER001`) to automate this migration.

See also: [Namespace-only migration guide](v3-namespace-migration.md).

### Removed APIs

1. `StringExtensions.FormatWith(...)` was removed.

Related:
- [PR #1395](https://github.com/Humanizr/Humanizer/pull/1395)
- Upgrade impact report: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656)

Before:

```csharp
"{0:N2}".FormatWith(culture, value);
```

After:

```csharp
string.Format(culture, "{0:N2}", value);
```

2. Obsolete `ToMetric` overloads were removed:

- `ToMetric(this int input, bool hasSpace, bool useSymbol = true, int? decimals = null)`
- `ToMetric(this double input, bool hasSpace, bool useSymbol = true, int? decimals = null)`

Use `MetricNumeralFormats` instead:

```csharp
// Equivalent to: value.ToMetric(hasSpace: true, useSymbol: true, decimals: 2);
value.ToMetric(MetricNumeralFormats.WithSpace, decimals: 2);

// If you previously passed useSymbol: false:
value.ToMetric(MetricNumeralFormats.WithSpace | MetricNumeralFormats.UseName, decimals: 2);
```

Related:
- [PR #1389](https://github.com/Humanizr/Humanizer/pull/1389)
- Upgrade impact report: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656)

3. `ToQuantity(this string, int, ...)` overloads were removed in early v3 and later restored in the patch line (`3.0.6+`, including `3.0.8`).

Related:
- [PR #1338](https://github.com/Humanizr/Humanizer/pull/1338)
- Follow-up request and resolution: [issue #1652](https://github.com/Humanizr/Humanizer/issues/1652), [PR #1679](https://github.com/Humanizr/Humanizer/pull/1679)

4. `EnglishArticles` enum was removed.

Related:
- [PR #1443](https://github.com/Humanizr/Humanizer/pull/1443)

5. `Configurator.EnumDescriptionPropertyLocator` public property was removed.

Use `Configurator.UseEnumDescriptionPropertyLocator(...)` instead, and call it early during startup:

```csharp
Configurator.UseEnumDescriptionPropertyLocator(p => p.Name == "Info");
```

`UseEnumDescriptionPropertyLocator(...)` now throws if you call it after enum humanization has already occurred.

Related:
- Upgrade impact report: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656)

### Enum API Signature Changes

Enum APIs moved from `Enum`-based extension signatures to constrained generics:

Before (`2.14.1`):

```csharp
public static string Humanize(this Enum input)
public static string Humanize(this Enum input, LetterCasing casing)
public static TTargetEnum DehumanizeTo<TTargetEnum>(this string input)
    where TTargetEnum : struct, IComparable, IFormattable
```

After (`3.0.8`):

```csharp
public static string Humanize<T>(this T input) where T : struct, Enum
public static string Humanize<T>(this T input, LetterCasing casing) where T : struct, Enum
public static TTargetEnum DehumanizeTo<TTargetEnum>(this string input)
    where TTargetEnum : struct, Enum
```

Impact:

- Code that stores values as `Enum` (not a concrete enum type) and then calls `.Humanize()` no longer compiles.
- Generic callers with non-enum constraints for `DehumanizeTo<T>` no longer compile.

Related:
- Upgrade impact report: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656)

### Extensibility Breaks (`IFormatter` / `DefaultFormatter`)

If you implement or subclass formatting infrastructure, update your code:

1. `IFormatter` now requires:

```csharp
string TimeSpanHumanize_Age();
```

2. `DefaultFormatter` override surface changed:

Before:

```csharp
protected virtual string Format(string resourceKey, int number, bool toWords = false)
```

After:

```csharp
protected virtual string Format(TimeUnit unit, string resourceKey, int number, bool toWords = false)
```

If you had custom `DefaultFormatter` subclasses overriding the old signature, they must be migrated.

Related:
- API introduction that expanded formatter contract: [PR #1068](https://github.com/Humanizr/Humanizer/pull/1068)
- Upgrade impact report: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656)

## Framework, Packaging, and Tooling Breaks

### Target Framework Support Changes

Compared to `2.14.1`, v3 removed support for:

- `netstandard1.0`
- `net462`
- `net472`
- dedicated `net6.0` assets (consumers on `net6.0`/`net7.0` now resolve `netstandard2.0` assets)

`3.0.8` package assets target:

- `netstandard2.0`
- `net48`
- `net8.0`
- `net10.0`

Related:
- `netstandard1.0` removal: [PR #1322](https://github.com/Humanizr/Humanizer/pull/1322)
- `net462`/`net472` removal: [PR #1482](https://github.com/Humanizr/Humanizer/pull/1482)
- Upgrade impact report: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656)

### Metapackage Restore Requirement

The `Humanizer` metapackage requires NuGet locale parsing support from newer tooling.

You need:

- .NET SDK `9.0.200+`, or
- Visual Studio/MSBuild that includes the same NuGet locale parsing fix.

On older tooling, restore can fail for the metapackage. Workaround: reference `Humanizer.Core` directly and install needed locale packages explicitly.

Related:
- NuGet locale parsing fix dependency note: [NuGet.Client discussion](https://github.com/NuGet/NuGet.Client/pull/6124#issuecomment-3391090183)

### Locale Package ID Changes

Several locale package IDs changed between `2.14.1` and `3.0.8`:

| `2.14.1` package | `3.0.8` package |
| --- | --- |
| `Humanizer.Core.bn-BD` | `Humanizer.Core.bn` |
| `Humanizer.Core.fi-FI` | `Humanizer.Core.fi` |
| `Humanizer.Core.ko-KR` | `Humanizer.Core.ko` |
| `Humanizer.Core.ms-MY` | `Humanizer.Core.ms` |
| `Humanizer.Core.nb-NO` | `Humanizer.Core.nb` |
| `Humanizer.Core.th-TH` | `Humanizer.Core.th` |

Removed from the metapackage dependency list (no direct one-to-one replacement):

- `Humanizer.Core.fr-BE`

Related:
- Locale ID normalization change: [commit 7b14ef6f](https://github.com/Humanizr/Humanizer/commit/7b14ef6f)
- Upgrade impact report: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656)

## Behavior Changes to Validate

1. `Pascalize` now treats hyphens (`-`) as delimiters.
2. `Dehumanize` output can differ because it is based on `Humanize().Pascalize()` and inherits `Pascalize` changes.
3. `Humanize` / `Titleize` preserve strings with no recognized letters instead of returning empty string.

Related:
- `Pascalize` hyphen behavior change: [issue #1282](https://github.com/Humanizr/Humanizer/issues/1282), [PR #1299](https://github.com/Humanizr/Humanizer/pull/1299)
- `Dehumanize`/spacing impact reports: [issue #1656](https://github.com/Humanizr/Humanizer/issues/1656), [issue #1668](https://github.com/Humanizr/Humanizer/issues/1668)
- `Titleize` no-letter preservation: [issue #385](https://github.com/Humanizr/Humanizer/issues/385), [PR #1611](https://github.com/Humanizr/Humanizer/pull/1611)
- `TitleCase` first-word casing regression: [issue #1658](https://github.com/Humanizr/Humanizer/issues/1658)

## Roslyn Analyzer Fixes Included in 3.0.8

`3.0.8` includes analyzer loading compatibility fixes from [PR #1676](https://github.com/Humanizr/Humanizer/pull/1676).

| Issue | Status | Impact in 3.0.1 | 3.0.8 result |
| --- | --- | --- | --- |
| [#1655](https://github.com/Humanizr/Humanizer/issues/1655) | Closed | Analyzer could fail to load on .NET 8 SDK hosts. | Fixed |
| [#1665](https://github.com/Humanizr/Humanizer/issues/1665) | Closed | Analyzer load failure due to `System.Memory` binding mismatch. | Fixed |
| [#1672](https://github.com/Humanizr/Humanizer/issues/1672) | Closed | Analyzer load failure due to `System.Collections.Immutable` dependency mismatch. | Fixed |

## Compatibility Fixes Included in 3.0.8

| Issue | Status | Patch-line fix |
| --- | --- | --- |
| [#1652](https://github.com/Humanizr/Humanizer/issues/1652) | Closed | `ToQuantity(int, ...)` compatibility restored via [PR #1679](https://github.com/Humanizr/Humanizer/pull/1679) (in `3.0.6+`, included in `3.0.8`). |
| [#1658](https://github.com/Humanizr/Humanizer/issues/1658) | Closed | `TitleCase` first-word capitalization fixed via [PR #1678](https://github.com/Humanizr/Humanizer/pull/1678) (in `3.0.6+`, included in `3.0.8`). |

## Remaining Known Upgrade Issue (as of March 5, 2026)

| Issue | Status | Impact | Suggested mitigation |
| --- | --- | --- | --- |
| [#1668](https://github.com/Humanizr/Humanizer/issues/1668) | Open | Some `Dehumanize()` cases retain underscore before digits (for example `everything_0`). | Pre-normalize affected inputs before `Dehumanize()`, or use custom conversion logic for these patterns. |

## Recommended Validation Pass

After migration:

1. Full clean restore with your actual CI SDK image.
2. Full rebuild of all projects that reference Humanizer.
3. Integration tests around string casing, enum formatting/dehumanization, and quantity formatting.
4. Spot-check localized output if you depended on renamed locale packages.


================================================
FILE: docs/quick-start.md
================================================
# Quick Start Guide

Get started with Humanizer in minutes.

## Installation

Install the Humanizer NuGet package:

```bash
dotnet add package Humanizer
```

For English-only:

```bash
dotnet add package Humanizer.Core
```

See [Installation](installation.md) for more options.

## Basic Examples

### Humanize Strings

```csharp
using Humanizer;

"PascalCaseString".Humanize(); 
// => "Pascal case string"

"some_property_name".Humanize(); 
// => "Some property name"
```

### Humanize DateTimes

```csharp
DateTime.UtcNow.AddHours(-2).Humanize(); 
// => "2 hours ago"

DateTime.UtcNow.AddDays(1).Humanize(); 
// => "tomorrow"
```

### Humanize TimeSpans

```csharp
TimeSpan.FromDays(1).Humanize(); 
// => "1 day"

TimeSpan.FromMinutes(90).Humanize(); 
// => "an hour"
```

### Humanize Enums

```csharp
public enum PaymentStatus
{
    PendingApproval,
    Approved,
    Declined
}

PaymentStatus.PendingApproval.Humanize(); 
// => "Pending approval"
```

### Pluralization

```csharp
"person".Pluralize(); 
// => "people"

"case".ToQuantity(5); 
// => "5 cases"
```

### Number Conversions

```csharp
1234.ToWords(); 
// => "one thousand two hundred and thirty-four"

1.Ordinalize(); 
// => "1st"

21.Ordinalize(); 
// => "21st"
```

### Fluent Dates

```csharp
In.January; 
// => January 1st of current year

2.Days() + 3.Hours(); 
// => TimeSpan of 2 days and 3 hours

DateTime.Now + 2.Weeks(); 
// => DateTime 2 weeks from now
```

### Collections

```csharp
var items = new[] { "apple", "banana", "cherry" };
items.Humanize(); 
// => "apple, banana, and cherry"
```

### Truncation

```csharp
"Long text that needs truncating".Truncate(10); 
// => "Long text…"
```

## Common Patterns

### Display Property Names in UI

```csharp
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
}

// Generate labels automatically
nameof(Person.FirstName).Humanize(); 
// => "First name"

nameof(Person.DateOfBirth).Humanize(); 
// => "Date of birth"
```

### Relative Time Display

```csharp
var postDate = DateTime.UtcNow.AddHours(-3);
$"Posted {postDate.Humanize()}"; 
// => "Posted 3 hours ago"
```

### Format Numbers for Display

```csharp
var count = 1234567;
$"Downloaded {count.ToMetric()} times"; 
// => "Downloaded 1.23M times"
```

### Pluralize Based on Count

```csharp
var itemCount = 5;
$"You have {itemCount} {"item".ToQuantity(itemCount)}"; 
// => "You have 5 items"

var singleItem = 1;
$"You have {singleItem} {"item".ToQuantity(singleItem)}"; 
// => "You have 1 item"
```

## Next Steps

Explore the documentation for detailed information on each feature:

- [String Humanization](string-humanization.md)
- [DateTime Humanization](datetime-humanization.md)
- [Number Conversions](number-to-words.md)
- [Pluralization](pluralization.md)
- [All Features](index.md)


================================================
FILE: docs/string-dehumanization.md
================================================
# String Dehumanization

Convert human-friendly strings back to PascalCase format.

## Overview

Dehumanization reverses the humanization process, taking a humanized string and converting it back to PascalCase. This is useful when you need to convert user input or display text back into a format suitable for code identifiers.

## Basic Usage

```csharp
"Pascal case input string is turned into sentence".Dehumanize() 
    // => "PascalCaseInputStringIsTurnedIntoSentence"

"some string".Dehumanize() 
    // => "SomeString"

"Some String".Dehumanize() 
    // => "SomeString"
```

## Behavior

The dehumanization process:
1. Splits the input on spaces
2. Humanizes each word (to handle edge cases)
3. Pascalizes each word (capitalizing first letter)
4. Removes all spaces

If the input is already in PascalCase (contains no spaces), it is returned unchanged.

## Examples

```csharp
"SomeStringAndAnotherString".Dehumanize() 
    // => "SomeStringAndAnotherString" (unchanged)
```

## Related Topics

- [String Humanization](string-humanization.md)
- [Inflector Methods](inflector-methods.md) - Pascalize, Camelize


================================================
FILE: docs/string-humanization.md
================================================
# String Humanization

String humanization transforms computerized strings (like class names, method names, or property names) into human-readable text. This is particularly useful when displaying programming identifiers to end users.

## Overview

The `Humanize` extension method intelligently handles:
- **PascalCase**: `PascalCaseString` → `Pascal case string`
- **camelCase**: `camelCaseString` → `Camel case string`
- **Underscores**: `underscored_string` → `Underscored string`
- **Dashes**: `dash-separated-string` → `Dash separated string`

## Basic Usage

```csharp
using Humanizer;

"PascalCaseInputStringIsTurnedIntoSentence".Humanize() 
    // => "Pascal case input string is turned into sentence"

"Underscored_input_string_is_turned_into_sentence".Humanize() 
    // => "Underscored input string is turned into sentence"

"dash-separated-string".Humanize() 
    // => "Dash separated string"
```

## Acronym Handling

Strings containing only uppercase letters are treated as acronyms and left unchanged:

```csharp
"HTML".Humanize() // => "HTML"
"HUMANIZER".Humanize() // => "HUMANIZER"
```

To force humanization of all-caps strings, use the `Transform` method:

```csharp
"HUMANIZER".Transform(To.LowerCase, To.TitleCase) // => "Humanizer"
```

## Letter Casing

Control the output casing:

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

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

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

"some string".Humanize(LetterCasing.Sentence) 
    // => "Some string"
```

Available casing options:
- `LetterCasing.Title` - Capitalizes the first letter of each word
- `LetterCasing.Sentence` - Capitalizes only the first letter
- `LetterCasing.AllCaps` - All uppercase
- `LetterCasing.LowerCase` - All lowercase

## How It Works

The humanization process applies several rules in order:

1. If the entire input is uppercase (an acronym), it returns unchanged
2. Handles freestanding underscores/dashes (e.g., "some _ string")
3. Splits on underscores and dashes
4. Breaks up PascalCase and camelCase text
5. Capitalizes the first letter of the result

## Real-World Examples

### Display Test Method Names

```csharp
// In a testing framework
public void ItShouldCalculateTheTotalPrice()
{
    // Test implementation
}

// Display to user:
nameof(ItShouldCalculateTheTotalPrice).Humanize()
// => "It should calculate the total price"
```

### Display Property Names in UI

```csharp
public class User
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
}

// Generate form labels automatically
nameof(User.FirstName).Humanize() // => "First name"
nameof(User.DateOfBirth).Humanize() // => "Date of birth"
```

### Convert API Field Names

```csharp
// API returns: "account_status", "last_login_date"
var fields = new[] { "account_status", "last_login_date" };

foreach (var field in fields)
{
    Console.WriteLine(field.Humanize());
}
// Output:
// Account status
// Last login date
```

## Version 3.0 Behavioral Change

In version 3.0, `Humanize` and `Titleize` now preserve input strings that contain no recognized letters (e.g., special characters, unrecognized Unicode scripts) instead of returning an empty string:

```csharp
// Before v3.0: returned ""
// v3.0 and later: returns "@@"
"@@".Humanize() // => "@@"

// Cyrillic and other Unicode scripts are preserved
"Майк".Titleize() // => "Майк"
```

## Related Topics

- [String Dehumanization](string-dehumanization.md) - Convert back to PascalCase
- [String Transformations](string-transformations.md) - Custom transformations
- [Inflector Methods](inflector-methods.md) - Titleize, Pascalize, Camelize, etc.


================================================
FILE: docs/string-truncation.md
================================================
# String Truncation

Humanizer provides intelligent string truncation with multiple strategies to handle different use cases.

## Overview

Truncation is useful when you need to limit string length for display purposes while maintaining readability. Humanizer offers several truncation strategies and uses the `…` character (one character) instead of `"..."` (three characters) to maximize visible text.

## Basic Usage

```csharp
using Humanizer;

"Long text to truncate".Truncate(10) 
    // => "Long text…"

"Long text to truncate".Truncate(10, "---") 
    // => "Long te---"
```

## Truncation Strategies

### Fixed Length (Default)

Truncates to a specific total length including the truncation indicator:

```csharp
"Long text to truncate".Truncate(10, Truncator.FixedLength) 
    // => "Long text…"

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

### Fixed Number of Characters

Truncates to a specific number of alphanumeric characters:

```csharp
"Long text to truncate".Truncate(6, Truncator.FixedNumberOfCharacters) 
    // => "Long t…"

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

### Fixed Number of Words

Truncates to a specific number of words:

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

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

### Dynamic Length - Preserve Words

Similar to fixed length but attempts to preserve whole words:

```csharp
"Long text to truncate".Truncate(10, Truncator.DynamicLengthAndPreserveWords) 
    // => "Long text…"

"Long text to truncate".Truncate(10, "---", Truncator.DynamicLengthAndPreserveWords) 
    // => "Long---"
```

### Dynamic Characters - Preserve Words

Similar to fixed number of characters but attempts to preserve whole words:

```csharp
"Long text to truncate".Truncate(6, Truncator.DynamicNumberOfCharactersAndPreserveWords) 
    // => "Long…"

"Long text to truncate".Truncate(6, "---", Truncator.DynamicNumberOfCharactersAndPreserveWords) 
    // => "---"
```

## Truncation Direction

By default, truncation happens from the right (end) of the string. You can truncate from the left (beginning) using `TruncateFrom.Left`:

```csharp
"Long text to truncate".Truncate(10, Truncator.FixedLength, TruncateFrom.Left) 
    // => "… truncate"

"Long text to truncate".Truncate(10, "---", Truncator.FixedLength, TruncateFrom.Left) 
    // => "---runcate"

"Long text to truncate".Truncate(2, Truncator.FixedNumberOfWords, TruncateFrom.Left) 
    // => "…to truncate"
```

## Custom Truncation Indicators

You can use any string as a truncation indicator:

```csharp
"Long text to truncate".Truncate(15, " [more]") 
    // => "Long [more]"

"Long text to truncate".Truncate(15, "...") 
    // => "Long text..."
```

## Custom Truncators

Implement the `ITruncator` interface to create custom truncation logic:

```csharp
public interface ITruncator
{
    string Truncate(string value, int length, string truncationString, TruncateFrom truncateFrom = TruncateFrom.Right);
}
```

Example custom truncator:

```csharp
public class SentenceTruncator : ITruncator
{
    public string Truncate(string value, int length, string truncationString, TruncateFrom truncateFrom)
    {
        // Custom logic to truncate at sentence boundaries
        // Implementation details...
    }
}

// Usage
"First sentence. Second sentence. Third sentence."
    .Truncate(30, new SentenceTruncator());
```

## Real-World Examples

### Truncate Article Previews

```csharp
var article = "This is a very long article that needs to be truncated for the preview.";
var preview = article.Truncate(50, Truncator.FixedNumberOfWords);
// => "This is a very long article that needs to be…"
```

### Truncate File Names

```csharp
var fileName = "Very_Long_File_Name_That_Needs_Truncation.pdf";
var displayName = fileName.Truncate(20, "…", Truncator.DynamicLengthAndPreserveWords);
// => "Very_Long_File_Name…"
```

### Truncate User Comments

```csharp
var comment = "This is a user comment that might be too long to display in a notification.";
var notification = comment.Truncate(40);
// => "This is a user comment that might be…"
```

## Best Practices

1. **Choose the right strategy**: 
   - Use `FixedLength` for consistent visual length
   - Use `FixedNumberOfWords` when word boundaries matter
   - Use dynamic strategies when readability is more important than exact length

2. **Consider the truncation indicator**:
   - Use `…` (single character) for space efficiency
   - Use `"..."` if your audience expects it
   - Use `" [more]"` or similar for clarity

3. **Test with your actual content**: Different text may truncate differently depending on word boundaries

## Related Topics

- [String Humanization](string-humanization.md)
- [String Transformations](string-transformations.md)


================================================
FILE: docs/v3-namespace-migration.md
================================================
# Humanizer v3 Namespace Migration

This document provides guidance on migrating code from Humanizer v2 to v3, focusing on the namespace consolidation changes.

> For the full `2.14.1 -> 3.0.8` upgrade path (all breaking changes, package/tooling changes, patch-line fixes, and known regressions), see [migration-v3.md](migration-v3.md).

## What Changed in v3

Humanizer v3 consolidates all sub-namespaces into the root `Humanizer` namespace. This is a **source-breaking change** that requires code updates.

### Consolidated Namespaces

All of the following namespaces have been moved into `Humanizer`:

- `Humanizer.Bytes`
- `Humanizer.Localisation`
- `Humanizer.Localisation.Formatters`
- `Humanizer.Localisation.NumberToWords`
- `Humanizer.DateTimeHumanizeStrategy`
- `Humanizer.Configuration`
- `Humanizer.Localisation.DateToOrdinalWords`
- `Humanizer.Localisation.Ordinalizers`
- `Humanizer.Inflections`
- `Humanizer.Localisation.CollectionFormatters`
- `Humanizer.Localisation.TimeToClockNotation`

### Migration Path

**Before (v2):**
```csharp
using Humanizer.Bytes;
using Humanizer.Localisation;
using Humanizer.Configuration;

public class Example
{
    public void Method()
    {
        var size = ByteSize.FromKilobytes(10);
        var formatter = new DefaultFormatter("en-US");
        Configurator.Localisation = new CultureInfo("en-US");
    }
}
```

**After (v3):**
```csharp
using Humanizer;

public class Example
{
    public void Method()
    {
        var size = ByteSize.FromKilobytes(10);
        var formatter = new DefaultFormatter("en-US");
        Configurator.Localisation = new CultureInfo("en-US");
    }
}
```

## Automated Migration with Roslyn Analyzer

Humanizer v3 includes a Roslyn analyzer that automatically detects and fixes namespace usage. No separate installation is required—the analyzer is bundled with the `Humanizer.Core` package starting from v3.0.0.

### Usage

Once you have installed or updated to `Humanizer.Core` v3.0.0 or later, the analyzer will be available automatically in your project.

The package includes Roslyn-versioned analyzer assets, so modern .NET SDK/Visual Studio toolchains load a compatible analyzer automatically. You should not need to add manual `System.*` package references to make the analyzer load.

If you are on `3.0.1` and see analyzer load warnings (for example AD0001) with older SDK/Visual Studio toolchains, upgrade to `3.0.8` and see the analyzer/patch-fix sections in [migration-v3.md](migration-v3.md).

### Usage in Visual Studio / Rider

1. The analyzer will highlight old namespace usages with warnings (HUMANIZER001)
2. Click the lightbulb 💡 icon or press `Ctrl+.` (Windows/Linux) / `Cmd+.` (Mac)
3. Select "Update to Humanizer namespace"
4. To fix all occurrences:
   - Right-click → Quick Actions and Refactorings
   - Choose "Fix all occurrences in Document/Project/Solution"

### Usage with dotnet CLI

The analyzer runs automatically during build and reports warnings:

```bash
# Build and see warnings
dotnet build

# Apply automatic fixes using dotnet format
dotnet format analyzers --diagnostics HUMANIZER001
```

## Manual Migration

If you prefer to migrate manually or can't use the analyzer:

### Step 1: Find Old Namespaces

Search your codebase for using directives:

```bash
# Using grep
grep -r "using Humanizer\." . --include="*.cs" | grep -v "using Humanizer;"

# Using PowerShell
Get-ChildItem -Recurse -Filter *.cs | Select-String "using Humanizer\." | Where-Object { $_ -notmatch "using Humanizer;" }
```

### Step 2: Replace with Single Using

Replace all old namespace usings with:
```csharp
using Humanizer;
```

### Step 3: Remove Qualified Names

If you use fully qualified names in your code, update them:

**Before:**
```csharp
var size = Humanizer.Bytes.ByteSize.FromKilobytes(10);
```

**After:**
```csharp
var size = Humanizer.ByteSize.FromKilobytes(10);
// Or with using directive:
using Humanizer;
// ...
var size = ByteSize.FromKilobytes(10);
```

### Step 4: Test Your Changes

After migration, rebuild and test your application:

```bash
dotnet build
dotnet test
```

## Common Migration Scenarios

### Scenario 1: Multiple Old Namespaces

**Before:**
```csharp
using Humanizer.Bytes;
using Humanizer.Localisation;
using Humanizer.Configuration;
using Humanizer.Inflections;
```

**After:**
```csharp
using Humanizer;
```

### Scenario 2: Mix of Old and New

**Before:**
```csharp
using Humanizer;
using Humanizer.Bytes;
using Humanizer.Localisation;
```

**After:**
```csharp
using Humanizer;
```

### Scenario 3: Qualified Names in Code

**Before:**
```csharp
public Humanizer.Bytes.ByteSize GetFileSize(string path)
{
    var info = new FileInfo(path);
    return Humanizer.Bytes.ByteSize.FromBytes(info.Length);
}
```

**After:**
```csharp
public Humanizer.ByteSize GetFileSize(string path)
{
    var info = new FileInfo(path);
    return Humanizer.ByteSize.FromBytes(info.Length);
}
// Or better with using:
using Humanizer;

public ByteSize GetFileSize(string path)
{
    var info = new FileInfo(path);
    return ByteSize.FromBytes(info.Length);
}
```

## Troubleshooting

### "The type or namespace name could not be found"

If you get compiler errors after migration, ensure:

1. You've updated to Humanizer v3
2. You have `using Humanizer;` at the top of your file
3. You're targeting a supported framework (net8.0, net10.0, or net48)

### Analyzer Not Showing Warnings

If the analyzer doesn't show warnings:

1. Rebuild your solution (`dotnet clean && dotnet build`)
2. Restart your IDE
3. Check that the analyzer package is correctly referenced
4. Ensure you're using a compatible IDE/editor (VS 2022, Rider, VS Code with C# extension)

### Can't Use the Analyzer

If you can't use the Roslyn analyzer (e.g., older IDE, build system limitations):

1. Use the manual migration steps above
2. Use find/replace in your editor
3. Use command-line tools (grep, sed, PowerShell) to find and replace

## Support

- **Documentation:** See [Humanizer README](../readme.md)
- **Issues:** [GitHub Issues](https://github.com/Humanizr/Humanizer/issues)
- **Discussions:** [GitHub Discussions](https://github.com/Humanizr/Humanizer/discussions)

## Summary

- ✅ **Recommended:** Use `Humanizer.Analyzers` for automatic detection and fixing
- ✅ **Alternative:** Manual migration using find/replace
- ⚠️ **Breaking Change:** Old namespaces will not work in v3
- 📦 **Minimal Change:** Usually just need to update using directives to `using Humanizer;`
- 🎯 **Goal:** All Humanizer types are now in the root `Humanizer` namespace


================================================
FILE: global.json
================================================
{
  "sdk": {
    "version": "10.0.100",
    "rollForward": "latestFeature"
  },
  "test": {
    "runner": "Microsoft.Testing.Platform"
  }
}

================================================
FILE: license.txt
================================================
The MIT License (MIT)

Copyright (c) .NET Foundation and Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

==============================================================================

Inflector (https://github.com/srkirkland/Inflector)
The MIT License (MIT)
Copyright (c) 2013 Scott Kirkland

==============================================================================

ByteSize (https://github.com/omar/ByteSize)
The MIT License (MIT)
Copyright (c) 2013-2014 Omar Khudeira (http://omar.io)

==============================================================================


================================================
FILE: nuget.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="signatureValidationMode" value="require" />
  </config>
  <packageSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
  <trustedSigners>
    <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
      <certificate fingerprint="0e5f38f57dc1bcc806d8494f4f90fbcedd988b46760709cbeec6f4219aa6157d" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
      <certificate fingerprint="5a2901d6ada3d18260b9c6dfe2133c95d74b9eef6ae0e5dc334c8454d1477df4" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
      <certificate fingerprint="1f4b311d9acc115c8dc8018b5a49e00fce6da8e2855f9f014ca6f34570bc482d" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
    </repository>
  </trustedSigners>
</configuration>

================================================
FILE: readme.md
================================================
# <img width="30px" src="logo.png" /> Humanizer

[![Build Status](https://dev.azure.com/dotnet/Humanizer/_apis/build/status/Humanizer-CI?branchName=main)](https://dev.azure.com/dotnet/Humanizer/_build?definitionId=14)
[![NuGet version](https://img.shields.io/nuget/v/Humanizer.svg?logo=nuget&cacheSeconds=300)](https://www.nuget.org/packages/Humanizer)
[![NuGet version prerelease](https://img.shields.io/nuget/vpre/Humanizer.svg?logo=nuget&cacheSeconds=300)](https://img.shields.io/nuget/vpre/Humanizer.Core)
[![NuGet downloads](https://img.shields.io/nuget/dt/Humanizer.Core.svg?logo=nuget&cacheSeconds=300)](https://www.nuget.org/packages/Humanizer.Core)

Humanizer meets 
Download .txt
gitextract_ui5lhkfj/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── codeql/
│   │   └── codeql-config.yml
│   ├── copilot-instructions.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── .devskim
│       ├── benchmarks-baseline-vs-current.yml
│       ├── codeql.yml
│       ├── copilot-setup-steps.yml
│       ├── devskim.yml
│       └── jekyll-gh-pages.yml
├── .gitignore
├── AGENTS.md
├── Directory.Build.props
├── Directory.Build.targets
├── Directory.Packages.props
├── Directory.Solution.targets
├── Humanizer.slnx
├── Humanizer.snk
├── NuSpecs/
│   ├── Humanizer.Core.af.nuspec
│   ├── Humanizer.Core.ar.nuspec
│   ├── Humanizer.Core.az.nuspec
│   ├── Humanizer.Core.bg.nuspec
│   ├── Humanizer.Core.bn.nuspec
│   ├── Humanizer.Core.ca.nuspec
│   ├── Humanizer.Core.cs.nuspec
│   ├── Humanizer.Core.da.nuspec
│   ├── Humanizer.Core.de.nuspec
│   ├── Humanizer.Core.el.nuspec
│   ├── Humanizer.Core.es.nuspec
│   ├── Humanizer.Core.fa.nuspec
│   ├── Humanizer.Core.fi.nuspec
│   ├── Humanizer.Core.fil.nuspec
│   ├── Humanizer.Core.fr.nuspec
│   ├── Humanizer.Core.he.nuspec
│   ├── Humanizer.Core.hr.nuspec
│   ├── Humanizer.Core.hu.nuspec
│   ├── Humanizer.Core.hy.nuspec
│   ├── Humanizer.Core.id.nuspec
│   ├── Humanizer.Core.is.nuspec
│   ├── Humanizer.Core.it.nuspec
│   ├── Humanizer.Core.ja.nuspec
│   ├── Humanizer.Core.ko.nuspec
│   ├── Humanizer.Core.ku.nuspec
│   ├── Humanizer.Core.lb.nuspec
│   ├── Humanizer.Core.lt.nuspec
│   ├── Humanizer.Core.lv.nuspec
│   ├── Humanizer.Core.ms.nuspec
│   ├── Humanizer.Core.mt.nuspec
│   ├── Humanizer.Core.nb.nuspec
│   ├── Humanizer.Core.nl.nuspec
│   ├── Humanizer.Core.nuspec
│   ├── Humanizer.Core.pl.nuspec
│   ├── Humanizer.Core.pt-BR.nuspec
│   ├── Humanizer.Core.pt.nuspec
│   ├── Humanizer.Core.ro.nuspec
│   ├── Humanizer.Core.ru.nuspec
│   ├── Humanizer.Core.sk.nuspec
│   ├── Humanizer.Core.sl.nuspec
│   ├── Humanizer.Core.sr-Latn.nuspec
│   ├── Humanizer.Core.sr.nuspec
│   ├── Humanizer.Core.sv.nuspec
│   ├── Humanizer.Core.ta.nuspec.unused
│   ├── Humanizer.Core.th.nuspec
│   ├── Humanizer.Core.tr.nuspec
│   ├── Humanizer.Core.uk.nuspec
│   ├── Humanizer.Core.uz-Cyrl-UZ.nuspec
│   ├── Humanizer.Core.uz-Latn-UZ.nuspec
│   ├── Humanizer.Core.vi.nuspec
│   ├── Humanizer.Core.zh-CN.nuspec
│   ├── Humanizer.Core.zh-Hans.nuspec
│   ├── Humanizer.Core.zh-Hant.nuspec
│   └── Humanizer.nuspec
├── ResXManager.config.xml
├── azure-pipelines.yml
├── docs/
│   ├── _config.yml
│   ├── _layouts/
│   │   └── default.html
│   ├── assets/
│   │   └── css/
│   │       └── style.css
│   ├── extensibility.md
│   ├── index.md
│   ├── installation.md
│   ├── localization.md
│   ├── migration-v3.md
│   ├── quick-start.md
│   ├── string-dehumanization.md
│   ├── string-humanization.md
│   ├── string-truncation.md
│   └── v3-namespace-migration.md
├── global.json
├── license.txt
├── nuget.config
├── readme.md
├── release_notes.md
├── src/
│   ├── Benchmarks/
│   │   ├── .editorconfig
│   │   ├── Benchmarks.csproj
│   │   ├── EnglishArticleBenchmarks.cs
│   │   ├── EnglishToWordsBenchmark.cs
│   │   ├── EnumBenchmarks.cs
│   │   ├── GlobalUsings.cs
│   │   ├── InflectorBenchmarks.cs
│   │   ├── ItalianNumberBenchmarks.cs
│   │   ├── MetricNumeralBenchmarks.cs
│   │   ├── NumberToWordsBenchmarks.cs
│   │   ├── OrdinalBenchmarks.cs
│   │   ├── Program.cs
│   │   ├── README.md
│   │   ├── RomanNumeralBenchmarks.cs
│   │   ├── StringHumanizeBenchmarks.cs
│   │   ├── TimeOnlyToClockNotationConverterBenchmarks.cs
│   │   ├── ToQuantityBenchmarks.cs
│   │   ├── TransformersBenchmarks.cs
│   │   ├── VocabularyBenchmarks.cs
│   │   └── WordsToNumberBenchmarks.cs
│   ├── Humanizer/
│   │   ├── ArticlePrefixSort.cs
│   │   ├── Bytes/
│   │   │   ├── ByteRate.cs
│   │   │   ├── ByteSize.cs
│   │   │   ├── ByteSizeExtensions.cs
│   │   │   └── LICENSE
│   │   ├── CasingExtensions.cs
│   │   ├── ClockNotationRounding.cs
│   │   ├── CollectionHumanizeExtensions.cs
│   │   ├── Configuration/
│   │   │   ├── CollectionFormatterRegistry.cs
│   │   │   ├── Configurator.cs
│   │   │   ├── DateOnlyToOrdinalWordsConverterRegistry.cs
│   │   │   ├── DateToOrdinalWordsConverterRegistry.cs
│   │   │   ├── FormatterRegistry.cs
│   │   │   ├── LocaliserRegistry.cs
│   │   │   ├── NumberToWordsConverterRegistry.cs
│   │   │   ├── OrdinalizerRegistry.cs
│   │   │   ├── TimeOnlyToClockNotationConvertersRegistry.cs
│   │   │   └── WordsToNumberConverterRegistry.cs
│   │   ├── DateHumanizeExtensions.cs
│   │   ├── DateTimeHumanizeStrategy/
│   │   │   ├── DateTimeHumanizeAlgorithms.cs
│   │   │   ├── DefaultDateOnlyHumanizeStrategy.cs
│   │   │   ├── DefaultDateTimeHumanizeStrategy.cs
│   │   │   ├── DefaultDateTimeOffsetHumanizeStrategy.cs
│   │   │   ├── DefaultTimeOnlyHumanizeStrategy.cs
│   │   │   ├── IDateOnlyHumanizeStrategy.cs
│   │   │   ├── IDateTimeHumanizeStrategy.cs
│   │   │   ├── IDateTimeOffsetHumanizeStrategy.cs
│   │   │   ├── ITimeOnlyHumanizeStrategy.cs
│   │   │   ├── PrecisionDateOnlyHumanizeStrategy.cs
│   │   │   ├── PrecisionDateTimeHumanizeStrategy.cs
│   │   │   ├── PrecisionDateTimeOffsetHumanizeStrategy.cs
│   │   │   └── PrecisionTimeOnlyHumanizeStrategy.cs
│   │   ├── DateToOrdinalWordsExtensions.cs
│   │   ├── EnumCache.cs
│   │   ├── EnumDehumanizeExtensions.cs
│   │   ├── EnumHumanizeExtensions.cs
│   │   ├── FluentDate/
│   │   │   ├── In.Months.cs
│   │   │   ├── In.Months.tt
│   │   │   ├── In.SomeTimeFrom.cs
│   │   │   ├── In.SomeTimeFrom.tt
│   │   │   ├── In.cs
│   │   │   ├── InDate.Months.cs
│   │   │   ├── InDate.Months.tt
│   │   │   ├── InDate.SomeTimeFrom.cs
│   │   │   ├── InDate.SomeTimeFrom.tt
│   │   │   ├── InDate.cs
│   │   │   ├── On.Days.cs
│   │   │   ├── On.Days.tt
│   │   │   ├── OnDate.Days.cs
│   │   │   ├── OnDate.Days.tt
│   │   │   └── PrepositionsExtensions.cs
│   │   ├── GlobalUsings.cs
│   │   ├── GrammaticalCase.cs
│   │   ├── GrammaticalGender.cs
│   │   ├── HeadingExtensions.cs
│   │   ├── Humanizer.csproj
│   │   ├── Inflections/
│   │   │   ├── LICENSE
│   │   │   ├── Vocabularies.cs
│   │   │   └── Vocabulary.cs
│   │   ├── InflectorExtensions.cs
│   │   ├── LetterCasing.cs
│   │   ├── Localisation/
│   │   │   ├── CollectionFormatters/
│   │   │   │   ├── DefaultCollectionFormatter.cs
│   │   │   │   ├── ICollectionFormatter.cs
│   │   │   │   └── OxfordStyleCollectionFormatter.cs
│   │   │   ├── DataUnit.cs
│   │   │   ├── DateToOrdinalWords/
│   │   │   │   ├── CaDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   ├── CaDateToOrdinalWordsConverter.cs
│   │   │   │   ├── DefaultDateOnlyToOrdinalWordConverter.cs
│   │   │   │   ├── DefaultDateToOrdinalWordConverter.cs
│   │   │   │   ├── EsDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   ├── EsDateToOrdinalWordsConverter.cs
│   │   │   │   ├── FrDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   ├── FrDateToOrdinalWordsConverter.cs
│   │   │   │   ├── IDateOnlyToOrdinalWordConverter.cs
│   │   │   │   ├── IDateToOrdinalWordConverter.cs
│   │   │   │   ├── LtDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   ├── LtDateToOrdinalWordsConverter.cs
│   │   │   │   ├── UsDateOnlyToOrdinalWordsConverter.cs
│   │   │   │   └── UsDateToOrdinalWordsConverter.cs
│   │   │   ├── Formatters/
│   │   │   │   ├── ArabicFormatter.cs
│   │   │   │   ├── BulgarianFormatter.cs
│   │   │   │   ├── CatalanFormatter.cs
│   │   │   │   ├── CroatianFormatter.cs
│   │   │   │   ├── CzechSlovakPolishFormatter.cs
│   │   │   │   ├── DefaultFormatter.cs
│   │   │   │   ├── FrenchFormatter.cs
│   │   │   │   ├── GermanFormatter.cs
│   │   │   │   ├── HebrewFormatter.cs
│   │   │   │   ├── IFormatter.cs
│   │   │   │   ├── IcelandicFormatter.cs
│   │   │   │   ├── LithuanianFormatter.cs
│   │   │   │   ├── LuxembourgishFormatter.cs
│   │   │   │   ├── MalteseFormatter.cs
│   │   │   │   ├── RomanianFormatter.cs
│   │   │   │   ├── RussianFormatter.cs
│   │   │   │   ├── SerbianFormatter.cs
│   │   │   │   ├── SlovenianFormatter.cs
│   │   │   │   └── UkrainianFormatter.cs
│   │   │   ├── GrammaticalNumber/
│   │   │   │   ├── LithuanianNumberForm.cs
│   │   │   │   ├── LithuanianNumberFormDetector.cs
│   │   │   │   ├── RussianGrammaticalNumber.cs
│   │   │   │   └── RussianGrammaticalNumberDetector.cs
│   │   │   ├── NumberToWords/
│   │   │   │   ├── AfrikaansNumberToWordsConverter.cs
│   │   │   │   ├── ArabicNumberToWordsConverter.cs
│   │   │   │   ├── ArmenianNumberToWordsConverter.cs
│   │   │   │   ├── AzerbaijaniNumberToWordsConverter.cs
│   │   │   │   ├── BanglaNumberToWordsConverter.cs
│   │   │   │   ├── BrazilianPortugueseNumberToWordsConverter.cs
│   │   │   │   ├── BulgarianNumberToWordsConverter.cs
│   │   │   │   ├── CatalanNumberToWordsConverter.cs
│   │   │   │   ├── CentralKurdishNumberToWordsConverter.cs
│   │   │   │   ├── ChineseNumberToWordsConverter.cs
│   │   │   │   ├── CroatianNumberToWordsConverter.cs
│   │   │   │   ├── CzechNumberToWordsConverter.cs
│   │   │   │   ├── DefaultNumberToWordsConverter.cs
│   │   │   │   ├── DutchNumberToWordsConverter.cs
│   │   │   │   ├── EnglishNumberToWordsConverter.cs
│   │   │   │   ├── FarsiNumberToWordsConverter.cs
│   │   │   │   ├── FinnishNumberToWordsConverter.cs
│   │   │   │   ├── FrenchBelgianNumberToWordsConverter.cs
│   │   │   │   ├── FrenchNumberToWordsConverter.cs
│   │   │   │   ├── FrenchNumberToWordsConverterBase.cs
│   │   │   │   ├── FrenchSwissNumberToWordsConverter.cs
│   │   │   │   ├── GenderedNumberToWordsConverter.cs
│   │   │   │   ├── GenderlessNumberToWordsConverter.cs
│   │   │   │   ├── GermanNumberToWordsConverter.cs
│   │   │   │   ├── GermanNumberToWordsConverterBase.cs
│   │   │   │   ├── GermanSwissLiechtensteinNumberToWordsConverter.cs
│   │   │   │   ├── GreekNumberToWordsConverter.cs
│   │   │   │   ├── HebrewNumberToWordsConverter.cs
│   │   │   │   ├── HungarianNumberToWordsConverter.cs
│   │   │   │   ├── INumberToWordsConverter.cs
│   │   │   │   ├── IcelandicNumberToWordsConverter.cs
│   │   │   │   ├── IndianNumberToWordsConverter.cs
│   │   │   │   ├── Italian/
│   │   │   │   │   ├── ItalianCardinalNumberCruncher.cs
│   │   │   │   │   └── ItalianOrdinalNumberCruncher.cs
│   │   │   │   ├── ItalianNumberToWordsConverter.cs
│   │   │   │   ├── JapaneseNumberToWordsConverter.cs
│   │   │   │   ├── KoreanNumberToWordsConverter.cs
│   │   │   │   ├── LatvianNumberToWordsConverter.cs
│   │   │   │   ├── LithuanianNumberToWordsConverter.cs
│   │   │   │   ├── LuxembourgishNumberToWordsConverter.cs
│   │   │   │   ├── MalteseNumberToWordsConvertor.cs
│   │   │   │   ├── NorwegianBokmalNumberToWordsConverter.cs
│   │   │   │   ├── PolishNumberToWordsConverter.cs
│   │   │   │   ├── PortugueseNumberToWordsConverter.cs
│   │   │   │   ├── Romanian/
│   │   │   │   │   ├── RomanianCardinalNumberConverter.cs
│   │   │   │   │   └── RomanianOrdinalNumberConverter.cs
│   │   │   │   ├── RomanianNumberToWordsConverter.cs
│   │   │   │   ├── RussianNumberToWordsConverter.cs
│   │   │   │   ├── SerbianCyrlNumberToWordsConverter.cs
│   │   │   │   ├── SerbianNumberToWordsConverter.cs
│   │   │   │   ├── SlovenianNumberToWordsConverter.cs
│   │   │   │   ├── SpanishNumberToWordsConverter.cs
│   │   │   │   ├── SwedishNumberToWordsConverter.cs
│   │   │   │   ├── TamilNumberToWordsConverter.cs
│   │   │   │   ├── ThaiNumberToWordsConverter.cs
│   │   │   │   ├── TurkishNumberToWordConverter.cs
│   │   │   │   ├── UkrainianNumberToWordsConverter.cs
│   │   │   │   ├── UzbekCyrlNumberToWordConverter.cs
│   │   │   │   ├── UzbekLatnNumberToWordConverter.cs
│   │   │   │   └── VietnameseNumberToWordsConverter.cs
│   │   │   ├── Ordinalizers/
│   │   │   │   ├── ArmenianOrdinalizer.cs
│   │   │   │   ├── AzerbaijaniOrdinalizer.cs
│   │   │   │   ├── CatalanOrdinalizer.cs
│   │   │   │   ├── DefaultOrdinalizer.cs
│   │   │   │   ├── DutchOrdinalizer.cs
│   │   │   │   ├── EnglishOrdinalizer.cs
│   │   │   │   ├── FrenchOrdinalizer.cs
│   │   │   │   ├── GermanOrdinalizer.cs
│   │   │   │   ├── HungarianOrdinalizer.cs
│   │   │   │   ├── IOrdinalizer.cs
│   │   │   │   ├── IcelandicOrdinalizer.cs
│   │   │   │   ├── ItalianOrdinalizer.cs
│   │   │   │   ├── LuxembourgishOrdinalizer.cs
│   │   │   │   ├── PortugueseOrdinalizer.cs
│   │   │   │   ├── RomanianOrdinalizer.cs
│   │   │   │   ├── RussianOrdinalizer.cs
│   │   │   │   ├── SpanishOrdinalizer.cs
│   │   │   │   ├── TurkishOrdinalizer.cs
│   │   │   │   └── UkrainianOrdinalizer.cs
│   │   │   ├── ResourceKeys.Common.cs
│   │   │   ├── ResourceKeys.DateHumanize.cs
│   │   │   ├── ResourceKeys.TimeSpanHumanize.cs
│   │   │   ├── ResourceKeys.TimeUnitSymbol.cs
│   │   │   ├── Resources.cs
│   │   │   ├── Tense.cs
│   │   │   ├── TimeToClockNotation/
│   │   │   │   ├── BrazilianPortugueseTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── CaTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── DefaultTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── EsTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── FrTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── GermanTimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── ITimeOnlyToClockNotationConverter.cs
│   │   │   │   ├── LbTimeOnlyToClockNotationConverter.cs
│   │   │   │   └── PortugueseTimeOnlyToClockNotationConverter.cs
│   │   │   ├── TimeUnit.cs
│   │   │   └── WordsToNumber/
│   │   │       ├── DefaultWordsToNumberConverter.cs
│   │   │       ├── EnglishWordsToNumberConverter.cs
│   │   │       ├── GenderlessWordsToNumberConverter.cs
│   │   │       └── IWordsToNumberConverter.cs
│   │   ├── MetricNumeralExtensions.cs
│   │   ├── MetricNumeralFormats.cs
│   │   ├── NoMatchFoundException.cs
│   │   ├── NumberToNumberExtensions.cs
│   │   ├── NumberToTimeSpanExtensions.cs
│   │   ├── NumberToWordsExtension.cs
│   │   ├── OnNoMatch.cs
│   │   ├── OrdinalizeExtensions.cs
│   │   ├── Plurality.cs
│   │   ├── PolyfillShims.cs
│   │   ├── PolyfillShims2.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   ├── Resources.af.resx
│   │   │   ├── Resources.ar.resx
│   │   │   ├── Resources.az.resx
│   │   │   ├── Resources.bg.resx
│   │   │   ├── Resources.bn.resx
│   │   │   ├── Resources.ca.resx
│   │   │   ├── Resources.cs.resx
│   │   │   ├── Resources.da.resx
│   │   │   ├── Resources.de.resx
│   │   │   ├── Resources.el.resx
│   │   │   ├── Resources.es.resx
│   │   │   ├── Resources.fa.resx
│   │   │   ├── Resources.fi.resx
│   │   │   ├── Resources.fil.resx
│   │   │   ├── Resources.fr.resx
│   │   │   ├── Resources.he.resx
│   │   │   ├── Resources.hr.resx
│   │   │   ├── Resources.hu.resx
│   │   │   ├── Resources.hy.resx
│   │   │   ├── Resources.id.resx
│   │   │   ├── Resources.is.resx
│   │   │   ├── Resources.it.resx
│   │   │   ├── Resources.ja.resx
│   │   │   ├── Resources.ko.resx
│   │   │   ├── Resources.ku.resx
│   │   │   ├── Resources.lb.resx
│   │   │   ├── Resources.lt.resx
│   │   │   ├── Resources.lv.resx
│   │   │   ├── Resources.ms.resx
│   │   │   ├── Resources.mt.resx
│   │   │   ├── Resources.nb.resx
│   │   │   ├── Resources.nl.resx
│   │   │   ├── Resources.pl.resx
│   │   │   ├── Resources.pt-BR.resx
│   │   │   ├── Resources.pt.resx
│   │   │   ├── Resources.resx
│   │   │   ├── Resources.ro.resx
│   │   │   ├── Resources.ru.resx
│   │   │   ├── Resources.sk.resx
│   │   │   ├── Resources.sl.resx
│   │   │   ├── Resources.sr-Latn.resx
│   │   │   ├── Resources.sr.resx
│   │   │   ├── Resources.sv.resx
│   │   │   ├── Resources.th.resx
│   │   │   ├── Resources.tr.resx
│   │   │   ├── Resources.uk.resx
│   │   │   ├── Resources.uz-Cyrl-UZ.resx
│   │   │   ├── Resources.uz-Latn-UZ.resx
│   │   │   ├── Resources.vi.resx
│   │   │   ├── Resources.zh-CN.resx
│   │   │   ├── Resources.zh-Hans.resx
│   │   │   └── Resources.zh-Hant.resx
│   │   ├── RomanNumeralExtensions.cs
│   │   ├── StringDehumanizeExtensions.cs
│   │   ├── StringHumanizeExtensions.cs
│   │   ├── TimeOnlyToClockNotationExtensions.cs
│   │   ├── TimeSpanHumanizeExtensions.cs
│   │   ├── TimeUnitToSymbolExtensions.cs
│   │   ├── ToQuantityExtensions.cs
│   │   ├── Transformer/
│   │   │   ├── ICulturedStringTransformer.cs
│   │   │   ├── IStringTransformer.cs
│   │   │   ├── To.cs
│   │   │   ├── ToLowerCase.cs
│   │   │   ├── ToSentenceCase.cs
│   │   │   ├── ToTitleCase.cs
│   │   │   └── ToUpperCase.cs
│   │   ├── TruncateExtensions.cs
│   │   ├── TruncateFrom.cs
│   │   ├── Truncation/
│   │   │   ├── DynamicLengthAndPreserveWordsTruncator.cs
│   │   │   ├── DynamicNumberOfCharactersAndPreserveWordTruncator.cs
│   │   │   ├── FixedLengthTruncator.cs
│   │   │   ├── FixedNumberOfCharactersTruncator.cs
│   │   │   ├── FixedNumberOfWordsTruncator.cs
│   │   │   ├── ITruncator.cs
│   │   │   └── Truncator.cs
│   │   ├── TupleizeExtensions.cs
│   │   ├── WordForm.cs
│   │   └── WordsToNumberExtension.cs
│   ├── Humanizer.Analyzers/
│   │   ├── AnalyzerReleases.Shipped.md
│   │   ├── AnalyzerReleases.Unshipped.md
│   │   ├── Humanizer.Analyzers.csproj
│   │   ├── NamespaceMigrationAnalyzer.cs
│   │   ├── NamespaceMigrationCodeFixProvider.cs
│   │   ├── README.md
│   │   └── build/
│   │       └── Humanizer.Core.targets
│   └── scripts/
│       └── split-benchmark-results.ps1
├── tests/
│   ├── Humanizer.Analyzers.Tests/
│   │   ├── AnalyzerAssemblyCompatibilityTests.cs
│   │   ├── Humanizer.Analyzers.Tests.csproj
│   │   ├── NamespaceMigrationAnalyzerTests.cs
│   │   ├── NamespaceMigrationCodeFixTests.cs
│   │   └── Verifiers.cs
│   ├── Humanizer.Tests/
│   │   ├── .editorconfig
│   │   ├── ApiApprover/
│   │   │   ├── PublicApiApprovalTest.Approve_Public_Api.DotNet10_0.verified.txt
│   │   │   ├── PublicApiApprovalTest.Approve_Public_Api.DotNet8_0.verified.txt
│   │   │   ├── PublicApiApprovalTest.Approve_Public_Api.Net4_8.verified.txt
│   │   │   └── PublicApiApprovalTest.cs
│   │   ├── ArticlePrefixSortTests.cs
│   │   ├── BitFieldEnumHumanizeTests.cs
│   │   ├── BitFieldEnumUnderTest.cs
│   │   ├── Bytes/
│   │   │   ├── ArithmeticTests.cs
│   │   │   ├── ByteRateTests.cs
│   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   ├── ComparingTests.cs
│   │   │   ├── CreatingTests.cs
│   │   │   ├── ParsingTests.cs
│   │   │   ├── ToFullWordsTests.cs
│   │   │   └── ToStringTests.cs
│   │   ├── CasingTests.cs
│   │   ├── CollectionHumanizeTests.cs
│   │   ├── DateHumanize.cs
│   │   ├── DateHumanizeDefaultStrategyTests.cs
│   │   ├── DateOnlyHumanizeTests.cs
│   │   ├── DateTimeHumanizePrecisionStrategyTests.cs
│   │   ├── DateTimeOffsetHumanizeTests.cs
│   │   ├── EnumHumanizeTests.cs
│   │   ├── EnumUnderTest.cs
│   │   ├── FluentDate/
│   │   │   ├── InDateTests.cs
│   │   │   ├── InTests.cs
│   │   │   ├── OnDateTests.cs
│   │   │   ├── OnTests.cs
│   │   │   └── PrepositionTests.cs
│   │   ├── GlobalUsings.cs
│   │   ├── HeadingTests.cs
│   │   ├── Humanizer.Tests.csproj
│   │   ├── InflectorTests.cs
│   │   ├── Localisation/
│   │   │   ├── DefaultFormatterTests.cs
│   │   │   ├── ResourcesTests.cs
│   │   │   ├── af/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ar/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── az/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── bg/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── bn-BD/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ca/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsFeminineTest.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   └── TimeToClockNotationTests.cs
│   │   │   ├── cs/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── da/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── de/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteRateTests.cs
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── HeadingTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   ├── TimeToClockNotationTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── de-CH/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── de-LI/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── el/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── en/
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   └── TimeToClockNotationTests.cs
│   │   │   ├── en-IN/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── es/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsFeminineTest.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   └── TimeToClockNotationTests.cs
│   │   │   ├── fa/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── fi-FI/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── fil-PH/
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── fr/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeOnlyHumanizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   ├── TimeToClockNotationTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── fr-BE/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── fr-CH/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── he/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── hr/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── hu/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── hy/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── id/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── invariant/
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── ToQuantityTests.cs
│   │   │   ├── is/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── HeadingTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── ResourcesTests.cs
│   │   │   │   ├── TimeOnlyHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── it/
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizerTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ja/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ko-KR/
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ku/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── lb/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteRateTests.cs
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeOnlyHumanizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   └── TimeToClockNotationTests.cs
│   │   │   ├── lt/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── lv/
│   │   │   │   ├── DateToOrdinalWordsTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ms-MY/
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── mt/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── nb/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── nb-NO/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── nl/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── pl/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── pt/
│   │   │   │   ├── Bytes/
│   │   │   │   │   └── ByteSizeExtensionsTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   ├── TimeToClockNotationTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── pt-BR/
│   │   │   │   ├── Bytes/
│   │   │   │   │   └── ByteSizeExtensionsTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   ├── TimeToClockNotationTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── ro-Ro/
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizerTests.cs
│   │   │   │   └── TimeSpanHumanizerTests.cs
│   │   │   ├── ru-RU/
│   │   │   │   ├── Bytes/
│   │   │   │   │   ├── ByteRateTests.cs
│   │   │   │   │   ├── ByteSizeExtensionsTests.cs
│   │   │   │   │   ├── ToFullWordsTests.cs
│   │   │   │   │   └── ToStringTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── HeadingTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   ├── TimeSpanHumanizeTests.cs
│   │   │   │   └── TimeUnitToSymbolTests.cs
│   │   │   ├── sk/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── sl/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── sr/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTest.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── sr-Latn/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTest.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── sv/
│   │   │   │   ├── CollectionFormatterTests.cs
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── ta/
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── th-TH/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── NumberToWordsTests.cs
│   │   │   ├── tr/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── uk-UA/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   ├── OrdinalizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── uz-Cyrl-UZ/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── uz-Latn-UZ/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── vi/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── zh-CN/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   ├── NumberToWordsTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── zh-HK/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   ├── zh-Hans/
│   │   │   │   ├── DateHumanizeTests.cs
│   │   │   │   └── TimeSpanHumanizeTests.cs
│   │   │   └── zh-Hant/
│   │   │       ├── DateHumanizeTests.cs
│   │   │       └── TimeSpanHumanizeTests.cs
│   │   ├── MetricNumeralTests.cs
│   │   ├── ModuleInitializer.cs
│   │   ├── NumberToNumberTests.cs
│   │   ├── NumberToTimeSpanTests.cs
│   │   ├── NumberToWordsTests.cs
│   │   ├── OrdinalizeTests.cs
│   │   ├── ResourceKeyTests.cs
│   │   ├── RomanNumeralTests.cs
│   │   ├── StringDehumanizeTests.cs
│   │   ├── StringHumanizeTests.cs
│   │   ├── TimeOnlyHumanizeTests.cs
│   │   ├── TimeSpanHumanizeTests.cs
│   │   ├── TimeUnitToSymbolTests.cs
│   │   ├── ToQuantityTests.cs
│   │   ├── TransformersTests.cs
│   │   ├── TruncatorTests.cs
│   │   ├── TupleizeTests.cs
│   │   ├── UseCultureAttribute.cs
│   │   ├── WordsToNumberTests.cs
│   │   └── testconfig.json
│   ├── fixtures/
│   │   ├── PackageSmoke/
│   │   │   ├── AnalyzerProbe.cs
│   │   │   ├── BlazorConsumer/
│   │   │   │   ├── App.razor
│   │   │   │   ├── Consumer.csproj.template
│   │   │   │   └── Program.cs
│   │   │   ├── ConsoleConsumer/
│   │   │   │   ├── Consumer.csproj.template
│   │   │   │   └── Program.cs
│   │   │   └── WebApiConsumer/
│   │   │       ├── Consumer.csproj.template
│   │   │       └── Program.cs
│   │   └── WapProjSmoke/
│   │       ├── EntryPointApp/
│   │       │   ├── EntryPointApp.csproj.template
│   │       │   └── Program.cs
│   │       └── Package/
│   │           ├── Package.appxmanifest
│   │           └── Package.wapproj.template
│   └── verify-packages.ps1
└── version.json
Download .txt
Showing preview only (303K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4068 symbols across 524 files)

FILE: src/Benchmarks/EnglishArticleBenchmarks.cs
  class EnglishArticleBenchmarks (line 1) | [MemoryDiagnoser(false)]
    method AppendArticlePrefix (line 4) | [Benchmark]
    method PrependArticleSuffix (line 8) | [Benchmark]

FILE: src/Benchmarks/EnglishToWordsBenchmark.cs
  class EnglishToWordsBenchmark (line 1) | [MemoryDiagnoser]
    method ToWords (line 6) | [Benchmark]
    method ToWordsOrdinal (line 10) | [Benchmark]

FILE: src/Benchmarks/EnumBenchmarks.cs
  class EnumBenchmarks (line 1) | [MemoryDiagnoser(false)]
    type EnumUnderTest (line 4) | public enum EnumUnderTest
    method Humanize (line 14) | [Benchmark(Description = "Enum.Humanize")]
    method Dehumanize (line 17) | [Benchmark(Description = "Enum.DehumanizeTo")]

FILE: src/Benchmarks/InflectorBenchmarks.cs
  class InflectorBenchmarks (line 9) | [MemoryDiagnoser]
    method Pascalize (line 12) | [Benchmark(Description = "Pascalize")]
    method Camelize (line 16) | [Benchmark(Description = "Camelize")]
    method Underscore (line 20) | [Benchmark(Description = "Underscore")]
    method Dasherize (line 24) | [Benchmark(Description = "Dasherize")]
    method Kebaberize (line 28) | [Benchmark(Description = "Kebaberize")]
    method Titleize (line 32) | [Benchmark(Description = "Titleize")]
    method Pluralize (line 36) | [Benchmark(Description = "Pluralize")]
    method Singularize (line 40) | [Benchmark(Description = "Singularize")]

FILE: src/Benchmarks/ItalianNumberBenchmarks.cs
  class ItalianNumberBenchmarks (line 3) | [MemoryDiagnoser(false)]
    method ToOrdinalWords (line 7) | [Benchmark(Description = "ItalianNumber.ToOrdinalWords")]

FILE: src/Benchmarks/MetricNumeralBenchmarks.cs
  class MetricNumeralBenchmarks (line 9) | [MemoryDiagnoser]
    method ToMetricSmall (line 12) | [Benchmark(Description = "ToMetric small")]
    method ToMetricKilo (line 16) | [Benchmark(Description = "ToMetric kilo")]
    method ToMetricMega (line 20) | [Benchmark(Description = "ToMetric mega")]
    method ToMetricMilli (line 24) | [Benchmark(Description = "ToMetric milli")]
    method FromMetricKilo (line 28) | [Benchmark(Description = "FromMetric kilo")]
    method FromMetricMega (line 32) | [Benchmark(Description = "FromMetric mega")]
    method FromMetricMicro (line 36) | [Benchmark(Description = "FromMetric micro")]

FILE: src/Benchmarks/NumberToWordsBenchmarks.cs
  class NumberToWordsBenchmarks (line 9) | [MemoryDiagnoser]
    method EnglishToWordsSmall (line 12) | [Benchmark(Description = "English ToWords small")]
    method EnglishToWordsLarge (line 16) | [Benchmark(Description = "English ToWords large")]
    method EnglishToOrdinalWords (line 20) | [Benchmark(Description = "English ToOrdinalWords")]
    method TurkishToWords (line 24) | [Benchmark(Description = "Turkish ToWords")]
    method GreekToWords (line 28) | [Benchmark(Description = "Greek ToWords")]
    method KoreanToWords (line 32) | [Benchmark(Description = "Korean ToWords")]
    method FinnishToWords (line 36) | [Benchmark(Description = "Finnish ToWords")]

FILE: src/Benchmarks/OrdinalBenchmarks.cs
  class OrdinalBenchmarks (line 10) | [MemoryDiagnoser]
    method EnglishOrdinalize (line 13) | [Benchmark(Description = "English Ordinalize")]
    method DutchOrdinalize (line 17) | [Benchmark(Description = "Dutch Ordinalize")]
    method TurkishOrdinalize (line 21) | [Benchmark(Description = "Turkish Ordinalize")]
    method GreekOrdinalize (line 25) | [Benchmark(Description = "Greek Ordinalize")]
    method FinnishOrdinalize (line 29) | [Benchmark(Description = "Finnish Ordinalize")]

FILE: src/Benchmarks/RomanNumeralBenchmarks.cs
  class RomanNumeralBenchmarks (line 9) | [MemoryDiagnoser]
    method ToRomanSmall (line 12) | [Benchmark(Description = "ToRoman small")]
    method ToRomanMedium (line 16) | [Benchmark(Description = "ToRoman medium")]
    method ToRomanLarge (line 20) | [Benchmark(Description = "ToRoman large")]
    method FromRomanSmall (line 24) | [Benchmark(Description = "FromRoman small")]
    method FromRomanMedium (line 28) | [Benchmark(Description = "FromRoman medium")]
    method FromRomanLarge (line 32) | [Benchmark(Description = "FromRoman large")]

FILE: src/Benchmarks/StringHumanizeBenchmarks.cs
  class StringHumanizeBenchmarks (line 9) | [MemoryDiagnoser]
    method HumanizePascalCase (line 12) | [Benchmark(Description = "Humanize PascalCase")]
    method HumanizeUnderscore (line 16) | [Benchmark(Description = "Humanize with underscore")]
    method HumanizeDashes (line 20) | [Benchmark(Description = "Humanize with dashes")]
    method HumanizeWithCasing (line 24) | [Benchmark(Description = "Humanize with casing")]
    method HumanizeMixed (line 28) | [Benchmark(Description = "Humanize mixed format")]

FILE: src/Benchmarks/TimeOnlyToClockNotationConverterBenchmarks.cs
  class TimeOnlyToClockNotationConverterBenchmarks (line 1) | [MemoryDiagnoser(false)]
    method EsClockNotationConverter (line 7) | [Benchmark]
    method BrazilianPortugueseClockNotationConverter (line 15) | [Benchmark]
    method FrClockNotationConverter (line 23) | [Benchmark]
    method LbClockNotationConverter (line 31) | [Benchmark]
    method DefaultClockNotationConverter (line 39) | [Benchmark]

FILE: src/Benchmarks/ToQuantityBenchmarks.cs
  class ToQuantityBenchmarks (line 9) | [MemoryDiagnoser]
    method ToQuantityNumericPlural (line 12) | [Benchmark(Description = "ToQuantity Numeric - Plural")]
    method ToQuantityNumericSingular (line 16) | [Benchmark(Description = "ToQuantity Numeric - Singular")]
    method ToQuantityWords (line 20) | [Benchmark(Description = "ToQuantity Words")]
    method ToQuantityDouble (line 24) | [Benchmark(Description = "ToQuantity Double")]
    method ToQuantityFormatted (line 28) | [Benchmark(Description = "ToQuantity Formatted")]

FILE: src/Benchmarks/TransformersBenchmarks.cs
  class TransformersBenchmarks (line 1) | [MemoryDiagnoser(false)]
    method GlobalSetup (line 29) | [GlobalSetup]
    method AllTransforms (line 41) | [Benchmark]
    method LowerCase (line 45) | [Benchmark]
    method UpperCase (line 49) | [Benchmark]
    method SentenceCase (line 53) | [Benchmark]
    method TitleCase (line 57) | [Benchmark]

FILE: src/Benchmarks/VocabularyBenchmarks.cs
  class VocabularyBenchmarks (line 9) | [MemoryDiagnoser]
    method PluralizeBatch (line 19) | [Benchmark(Description = "Pluralize various words")]
    method SingularizeBatch (line 28) | [Benchmark(Description = "Singularize various words")]
    method PluralizeCommon (line 37) | [Benchmark(Description = "Pluralize single common")]
    method PluralizeIrregular (line 41) | [Benchmark(Description = "Pluralize single irregular")]
    method SingularizeCommon (line 45) | [Benchmark(Description = "Singularize single common")]
    method SingularizeIrregular (line 49) | [Benchmark(Description = "Singularize single irregular")]

FILE: src/Benchmarks/WordsToNumberBenchmarks.cs
  class WordsToNumberBenchmarks (line 10) | [MemoryDiagnoser]
    method SimpleWord (line 15) | [Benchmark(Description = "Simple word")]
    method CompoundWord (line 19) | [Benchmark(Description = "Compound word")]
    method ComplexNumber (line 23) | [Benchmark(Description = "Complex number")]
    method OrdinalWord (line 27) | [Benchmark(Description = "Ordinal word")]
    method LargeNumber (line 31) | [Benchmark(Description = "Large number")]

FILE: src/Humanizer.Analyzers/NamespaceMigrationAnalyzer.cs
  class NamespaceMigrationAnalyzer (line 11) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 49) | public override void Initialize(AnalysisContext context)
    method AnalyzeUsingDirective (line 58) | private static void AnalyzeUsingDirective(SyntaxNodeAnalysisContext co...
    method AnalyzeQualifiedName (line 75) | private static void AnalyzeQualifiedName(SyntaxNodeAnalysisContext con...
    method IsNamespaceMatch (line 104) | private static bool IsNamespaceMatch(ReadOnlySpan<char> fullName, Read...
    method IsNamespaceMatch (line 116) | private static bool IsNamespaceMatch(string fullName, string oldNamesp...
    method HasMatchingNamespace (line 127) | private static bool HasMatchingNamespace(string namespaceName)
    method TryGetMatchingNamespace (line 147) | private static bool TryGetMatchingNamespace(string fullName, out strin...

FILE: src/Humanizer.Analyzers/NamespaceMigrationCodeFixProvider.cs
  class NamespaceMigrationCodeFixProvider (line 12) | [ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(NamespaceMigr...
    method GetFixAllProvider (line 35) | public sealed override FixAllProvider GetFixAllProvider() => WellKnown...
    method RegisterCodeFixesAsync (line 37) | public sealed override async Task RegisterCodeFixesAsync(CodeFixContex...
    method ReplaceUsingDirectiveAsync (line 72) | private static async Task<Document> ReplaceUsingDirectiveAsync(
    method ReplaceQualifiedNameAsync (line 89) | private static async Task<Document> ReplaceQualifiedNameAsync(Document...
    method IsNamespaceMatch (line 112) | private static bool IsNamespaceMatch(ReadOnlySpan<char> fullName, Read...
    method IsNamespaceMatch (line 124) | private static bool IsNamespaceMatch(string fullName, string oldNamesp...
    method GetReplacementName (line 135) | private static string GetReplacementName(string fullName, string match...
    method TryGetMatchingNamespace (line 153) | private static bool TryGetMatchingNamespace(string fullName, out strin...

FILE: src/Humanizer/ArticlePrefixSort.cs
  class EnglishArticle (line 6) | public static partial class EnglishArticle
    method ArticleRegexGenerated (line 11) | [GeneratedRegex(ArticlePattern)]
    method ArticleRegex (line 14) | private static Regex ArticleRegex() => ArticleRegexGenerated();
    method ArticleRegex (line 18) | private static Regex ArticleRegex() => ArticleRegexField;
    method AppendArticlePrefix (line 26) | public static string[] AppendArticlePrefix(string[] items)
    method PrependArticleSuffix (line 65) | public static string[] PrependArticleSuffix(string[] appended)
    method RearrangeArticle (line 113) | static string RearrangeArticle(string item, int suffixLength, int tota...

FILE: src/Humanizer/Bytes/ByteRate.cs
  class ByteRate (line 9) | public class ByteRate(ByteSize size, TimeSpan interval)
    method Humanize (line 25) | public string Humanize(TimeUnit timeUnit = TimeUnit.Second) =>
    method Humanize (line 34) | public string Humanize(string? format, TimeUnit timeUnit = TimeUnit.Se...

FILE: src/Humanizer/Bytes/ByteSize.cs
  type ByteSize (line 30) | public struct ByteSize(double byteSize) :
    method GetLargestWholeNumberSymbol (line 69) | public readonly string GetLargestWholeNumberSymbol(IFormatProvider? pr...
    method GetLargestWholeNumberFullWord (line 104) | public readonly string GetLargestWholeNumberFullWord(IFormatProvider? ...
    method FromBits (line 173) | public static ByteSize FromBits(long value) =>
    method FromBytes (line 176) | public static ByteSize FromBytes(double value) =>
    method FromKilobytes (line 179) | public static ByteSize FromKilobytes(double value) =>
    method FromMegabytes (line 182) | public static ByteSize FromMegabytes(double value) =>
    method FromGigabytes (line 185) | public static ByteSize FromGigabytes(double value) =>
    method FromTerabytes (line 188) | public static ByteSize FromTerabytes(double value) =>
    method ToString (line 197) | public readonly override string ToString() =>
    method ToString (line 200) | public readonly string ToString(IFormatProvider? provider)
    method ToString (line 207) | public readonly string ToString(string? format) =>
    method ToString (line 210) | public readonly string ToString(string? format, IFormatProvider? provi...
    method ToString (line 213) | readonly string ToString(string? format, IFormatProvider? provider, bo...
    method ToFullWords (line 289) | public readonly string ToFullWords(string? format = null, IFormatProvi...
    method Equals (line 292) | public readonly override bool Equals(object? value)
    method Equals (line 312) | public readonly bool Equals(ByteSize value) =>
    method GetHashCode (line 315) | public readonly override int GetHashCode() =>
    method CompareTo (line 318) | public readonly int CompareTo(object? obj)
    method CompareTo (line 333) | public readonly int CompareTo(ByteSize other) =>
    method Add (line 336) | public readonly ByteSize Add(ByteSize bs) =>
    method AddBits (line 339) | public readonly ByteSize AddBits(long value) =>
    method AddBytes (line 342) | public readonly ByteSize AddBytes(double value) =>
    method AddKilobytes (line 345) | public readonly ByteSize AddKilobytes(double value) =>
    method AddMegabytes (line 348) | public readonly ByteSize AddMegabytes(double value) =>
    method AddGigabytes (line 351) | public readonly ByteSize AddGigabytes(double value) =>
    method AddTerabytes (line 354) | public readonly ByteSize AddTerabytes(double value) =>
    method Subtract (line 357) | public readonly ByteSize Subtract(ByteSize bs) =>
    method TryParse (line 393) | public static bool TryParse(string? s, out ByteSize result) =>
    method TryParse (line 396) | public static bool TryParse(CharSpan s, out ByteSize result) =>
    method TryParse (line 399) | public static bool TryParse(string? s, IFormatProvider? formatProvider...
    method TryParse (line 402) | public static bool TryParse(CharSpan s, IFormatProvider? formatProvide...
    method Parse (line 527) | public static ByteSize Parse(string s) =>
    method Parse (line 530) | public static ByteSize Parse(string s, IFormatProvider? formatProvider)

FILE: src/Humanizer/Bytes/ByteSizeExtensions.cs
  class ByteSizeExtensions (line 7) | public static class ByteSizeExtensions
    method Bits (line 12) | public static ByteSize Bits(this byte input) =>
    method Bits (line 18) | public static ByteSize Bits(this sbyte input) =>
    method Bits (line 24) | public static ByteSize Bits(this short input) =>
    method Bits (line 30) | public static ByteSize Bits(this ushort input) =>
    method Bits (line 36) | public static ByteSize Bits(this int input) =>
    method Bits (line 42) | public static ByteSize Bits(this uint input) =>
    method Bits (line 48) | public static ByteSize Bits(this long input) =>
    method Bytes (line 54) | public static ByteSize Bytes(this byte input) =>
    method Bytes (line 60) | public static ByteSize Bytes(this sbyte input) =>
    method Bytes (line 66) | public static ByteSize Bytes(this short input) =>
    method Bytes (line 72) | public static ByteSize Bytes(this ushort input) =>
    method Bytes (line 78) | public static ByteSize Bytes(this int input) =>
    method Bytes (line 84) | public static ByteSize Bytes(this uint input) =>
    method Bytes (line 90) | public static ByteSize Bytes(this double input) =>
    method Bytes (line 96) | public static ByteSize Bytes(this long input) =>
    method Kilobytes (line 102) | public static ByteSize Kilobytes(this byte input) =>
    method Kilobytes (line 108) | public static ByteSize Kilobytes(this sbyte input) =>
    method Kilobytes (line 114) | public static ByteSize Kilobytes(this short input) =>
    method Kilobytes (line 120) | public static ByteSize Kilobytes(this ushort input) =>
    method Kilobytes (line 126) | public static ByteSize Kilobytes(this int input) =>
    method Kilobytes (line 132) | public static ByteSize Kilobytes(this uint input) =>
    method Kilobytes (line 138) | public static ByteSize Kilobytes(this double input) =>
    method Kilobytes (line 144) | public static ByteSize Kilobytes(this long input) =>
    method Megabytes (line 150) | public static ByteSize Megabytes(this byte input) =>
    method Megabytes (line 156) | public static ByteSize Megabytes(this sbyte input) =>
    method Megabytes (line 162) | public static ByteSize Megabytes(this short input) =>
    method Megabytes (line 168) | public static ByteSize Megabytes(this ushort input) =>
    method Megabytes (line 174) | public static ByteSize Megabytes(this int input) =>
    method Megabytes (line 180) | public static ByteSize Megabytes(this uint input) =>
    method Megabytes (line 186) | public static ByteSize Megabytes(this double input) =>
    method Megabytes (line 192) | public static ByteSize Megabytes(this long input) =>
    method Gigabytes (line 198) | public static ByteSize Gigabytes(this byte input) =>
    method Gigabytes (line 204) | public static ByteSize Gigabytes(this sbyte input) =>
    method Gigabytes (line 210) | public static ByteSize Gigabytes(this short input) =>
    method Gigabytes (line 216) | public static ByteSize Gigabytes(this ushort input) =>
    method Gigabytes (line 222) | public static ByteSize Gigabytes(this int input) =>
    method Gigabytes (line 228) | public static ByteSize Gigabytes(this uint input) =>
    method Gigabytes (line 234) | public static ByteSize Gigabytes(this double input) =>
    method Gigabytes (line 240) | public static ByteSize Gigabytes(this long input) =>
    method Terabytes (line 246) | public static ByteSize Terabytes(this byte input) =>
    method Terabytes (line 252) | public static ByteSize Terabytes(this sbyte input) =>
    method Terabytes (line 258) | public static ByteSize Terabytes(this short input) =>
    method Terabytes (line 264) | public static ByteSize Terabytes(this ushort input) =>
    method Terabytes (line 270) | public static ByteSize Terabytes(this int input) =>
    method Terabytes (line 276) | public static ByteSize Terabytes(this uint input) =>
    method Terabytes (line 282) | public static ByteSize Terabytes(this double input) =>
    method Terabytes (line 288) | public static ByteSize Terabytes(this long input) =>
    method Humanize (line 295) | public static string Humanize(this ByteSize input, string? format = nu...
    method Humanize (line 302) | public static string Humanize(this ByteSize input, IFormatProvider for...
    method Humanize (line 310) | public static string Humanize(this ByteSize input, string? format, IFo...
    method Per (line 318) | public static ByteRate Per(this ByteSize size, TimeSpan interval) =>

FILE: src/Humanizer/CasingExtensions.cs
  class CasingExtensions (line 6) | public static class CasingExtensions
    method ApplyCase (line 29) | public static string ApplyCase(this string input, LetterCasing casing) =>

FILE: src/Humanizer/ClockNotationRounding.cs
  type ClockNotationRounding (line 6) | public enum ClockNotationRounding

FILE: src/Humanizer/CollectionHumanizeExtensions.cs
  class CollectionHumanizeExtensions (line 6) | public static class CollectionHumanizeExtensions
    method Humanize (line 28) | public static string Humanize<T>(this IEnumerable<T> collection) =>
    method Humanize (line 55) | public static string Humanize<T>(this IEnumerable<T> collection, Func<...
    method Humanize (line 86) | public static string Humanize<T>(this IEnumerable<T> collection, Func<...
    method Humanize (line 110) | public static string Humanize<T>(this IEnumerable<T> collection, strin...
    method Humanize (line 137) | public static string Humanize<T>(this IEnumerable<T> collection, Func<...
    method Humanize (line 168) | public static string Humanize<T>(this IEnumerable<T> collection, Func<...

FILE: src/Humanizer/Configuration/CollectionFormatterRegistry.cs
  class CollectionFormatterRegistry (line 3) | class CollectionFormatterRegistry : LocaliserRegistry<ICollectionFormatter>
    method CollectionFormatterRegistry (line 5) | public CollectionFormatterRegistry()

FILE: src/Humanizer/Configuration/Configurator.cs
  class Configurator (line 6) | public static class Configurator
    method GetFormatter (line 56) | internal static IFormatter GetFormatter(CultureInfo? culture) =>
    method GetNumberToWordsConverter (line 63) | internal static INumberToWordsConverter GetNumberToWordsConverter(Cult...
    method GetWordsToNumberConverter (line 66) | internal static IWordsToNumberConverter GetWordsToNumberConverter(Cult...
    method UseEnumDescriptionPropertyLocator (line 150) | public static void UseEnumDescriptionPropertyLocator(Func<PropertyInfo...
    method ResetUseEnumDescriptionPropertyLocator (line 163) | internal static void ResetUseEnumDescriptionPropertyLocator()

FILE: src/Humanizer/Configuration/DateOnlyToOrdinalWordsConverterRegistry.cs
  class DateOnlyToOrdinalWordsConverterRegistry (line 4) | class DateOnlyToOrdinalWordsConverterRegistry : LocaliserRegistry<IDateO...
    method DateOnlyToOrdinalWordsConverterRegistry (line 6) | public DateOnlyToOrdinalWordsConverterRegistry() : base(_ => new Defau...

FILE: src/Humanizer/Configuration/DateToOrdinalWordsConverterRegistry.cs
  class DateToOrdinalWordsConverterRegistry (line 3) | class DateToOrdinalWordsConverterRegistry : LocaliserRegistry<IDateToOrd...
    method DateToOrdinalWordsConverterRegistry (line 5) | public DateToOrdinalWordsConverterRegistry()

FILE: src/Humanizer/Configuration/FormatterRegistry.cs
  class FormatterRegistry (line 3) | class FormatterRegistry : LocaliserRegistry<IFormatter>
    method FormatterRegistry (line 5) | public FormatterRegistry()
    method RegisterDefaultFormatter (line 61) | void RegisterDefaultFormatter(string localeCode) =>
    method RegisterCzechSlovakPolishFormatter (line 64) | void RegisterCzechSlovakPolishFormatter(string localeCode) =>

FILE: src/Humanizer/Configuration/LocaliserRegistry.cs
  class LocaliserRegistry (line 6) | public class LocaliserRegistry<TLocaliser>
    method LocaliserRegistry (line 18) | public LocaliserRegistry(TLocaliser defaultLocaliser) =>
    method LocaliserRegistry (line 24) | public LocaliserRegistry(Func<CultureInfo, TLocaliser> defaultLocalise...
    method ResolveForUiCulture (line 30) | public TLocaliser ResolveForUiCulture() =>
    method ResolveForCulture (line 37) | public TLocaliser ResolveForCulture(CultureInfo? culture)
    method Register (line 54) | public void Register(string localeCode, TLocaliser localiser)
    method Register (line 69) | public void Register(string localeCode, Func<CultureInfo, TLocaliser> ...
    method FindLocaliser (line 81) | Func<CultureInfo, TLocaliser> FindLocaliser(CultureInfo culture)

FILE: src/Humanizer/Configuration/NumberToWordsConverterRegistry.cs
  class NumberToWordsConverterRegistry (line 3) | class NumberToWordsConverterRegistry : LocaliserRegistry<INumberToWordsC...
    method NumberToWordsConverterRegistry (line 5) | public NumberToWordsConverterRegistry()

FILE: src/Humanizer/Configuration/OrdinalizerRegistry.cs
  class OrdinalizerRegistry (line 3) | class OrdinalizerRegistry : LocaliserRegistry<IOrdinalizer>
    method OrdinalizerRegistry (line 5) | public OrdinalizerRegistry()

FILE: src/Humanizer/Configuration/TimeOnlyToClockNotationConvertersRegistry.cs
  class TimeOnlyToClockNotationConvertersRegistry (line 5) | class TimeOnlyToClockNotationConvertersRegistry : LocaliserRegistry<ITim...
    method TimeOnlyToClockNotationConvertersRegistry (line 7) | public TimeOnlyToClockNotationConvertersRegistry() : base(_ => new Def...

FILE: src/Humanizer/Configuration/WordsToNumberConverterRegistry.cs
  class WordsToNumberConverterRegistry (line 3) | internal class WordsToNumberConverterRegistry : LocaliserRegistry<IWords...
    method WordsToNumberConverterRegistry (line 5) | public WordsToNumberConverterRegistry()

FILE: src/Humanizer/DateHumanizeExtensions.cs
  class DateHumanizeExtensions (line 6) | public static class DateHumanizeExtensions
    method Humanize (line 16) | public static string Humanize(this DateTime input, bool? utcDate = nul...
    method Humanize (line 33) | public static string Humanize(this DateTime? input, bool? utcDate = nu...
    method Humanize (line 52) | public static string Humanize(this DateTimeOffset input, DateTimeOffse...
    method Humanize (line 66) | public static string Humanize(this DateTimeOffset? input, DateTimeOffs...
    method Humanize (line 86) | public static string Humanize(this DateOnly input, DateOnly? dateToCom...
    method Humanize (line 99) | public static string Humanize(this DateOnly? input, DateOnly? dateToCo...
    method Humanize (line 119) | public static string Humanize(this TimeOnly input, TimeOnly? timeToCom...
    method Humanize (line 134) | public static string Humanize(this TimeOnly? input, TimeOnly? timeToCo...

FILE: src/Humanizer/DateTimeHumanizeStrategy/DateTimeHumanizeAlgorithms.cs
  class DateTimeHumanizeAlgorithms (line 6) | static class DateTimeHumanizeAlgorithms
    method PrecisionHumanize (line 11) | public static string PrecisionHumanize(DateTime input, DateTime compar...
    method PrecisionHumanize (line 23) | public static string PrecisionHumanize(DateOnly input, DateOnly compar...
    method PrecisionHumanize (line 35) | public static string PrecisionHumanize(TimeOnly input, TimeOnly compar...
    method PrecisionHumanize (line 43) | static string PrecisionHumanize(TimeSpan ts, Tense tense, double preci...
    method DefaultHumanize (line 134) | public static string DefaultHumanize(DateTime input, DateTime comparis...
    method DefaultHumanize (line 150) | public static string DefaultHumanize(DateOnly input, DateOnly comparis...
    method DefaultHumanize (line 166) | public static string DefaultHumanize(TimeOnly input, TimeOnly comparis...
    method DefaultHumanize (line 175) | static string DefaultHumanize(TimeSpan ts, bool sameMonth, int days, T...

FILE: src/Humanizer/DateTimeHumanizeStrategy/DefaultDateOnlyHumanizeStrategy.cs
  class DefaultDateOnlyHumanizeStrategy (line 8) | public class DefaultDateOnlyHumanizeStrategy : IDateOnlyHumanizeStrategy
    method Humanize (line 13) | public string Humanize(DateOnly input, DateOnly comparisonBase, Cultur...

FILE: src/Humanizer/DateTimeHumanizeStrategy/DefaultDateTimeHumanizeStrategy.cs
  class DefaultDateTimeHumanizeStrategy (line 6) | public class DefaultDateTimeHumanizeStrategy : IDateTimeHumanizeStrategy
    method Humanize (line 11) | public string Humanize(DateTime input, DateTime comparisonBase, Cultur...

FILE: src/Humanizer/DateTimeHumanizeStrategy/DefaultDateTimeOffsetHumanizeStrategy.cs
  class DefaultDateTimeOffsetHumanizeStrategy (line 6) | public class DefaultDateTimeOffsetHumanizeStrategy : IDateTimeOffsetHuma...
    method Humanize (line 11) | public string Humanize(DateTimeOffset input, DateTimeOffset comparison...

FILE: src/Humanizer/DateTimeHumanizeStrategy/DefaultTimeOnlyHumanizeStrategy.cs
  class DefaultTimeOnlyHumanizeStrategy (line 8) | public class DefaultTimeOnlyHumanizeStrategy : ITimeOnlyHumanizeStrategy
    method Humanize (line 13) | public string Humanize(TimeOnly input, TimeOnly comparisonBase, Cultur...

FILE: src/Humanizer/DateTimeHumanizeStrategy/IDateOnlyHumanizeStrategy.cs
  type IDateOnlyHumanizeStrategy (line 8) | public interface IDateOnlyHumanizeStrategy
    method Humanize (line 13) | string Humanize(DateOnly input, DateOnly comparisonBase, CultureInfo? ...

FILE: src/Humanizer/DateTimeHumanizeStrategy/IDateTimeHumanizeStrategy.cs
  type IDateTimeHumanizeStrategy (line 6) | public interface IDateTimeHumanizeStrategy
    method Humanize (line 11) | string Humanize(DateTime input, DateTime comparisonBase, CultureInfo? ...

FILE: src/Humanizer/DateTimeHumanizeStrategy/IDateTimeOffsetHumanizeStrategy.cs
  type IDateTimeOffsetHumanizeStrategy (line 6) | public interface IDateTimeOffsetHumanizeStrategy
    method Humanize (line 11) | string Humanize(DateTimeOffset input, DateTimeOffset comparisonBase, C...

FILE: src/Humanizer/DateTimeHumanizeStrategy/ITimeOnlyHumanizeStrategy.cs
  type ITimeOnlyHumanizeStrategy (line 8) | public interface ITimeOnlyHumanizeStrategy
    method Humanize (line 13) | string Humanize(TimeOnly input, TimeOnly comparisonBase, CultureInfo? ...

FILE: src/Humanizer/DateTimeHumanizeStrategy/PrecisionDateOnlyHumanizeStrategy.cs
  class PrecisionDateOnlyHumanizeStrategy (line 12) | public class PrecisionDateOnlyHumanizeStrategy(double precision = .75) :...
    method Humanize (line 19) | public string Humanize(DateOnly input, DateOnly comparisonBase, Cultur...

FILE: src/Humanizer/DateTimeHumanizeStrategy/PrecisionDateTimeHumanizeStrategy.cs
  class PrecisionDateTimeHumanizeStrategy (line 10) | public class PrecisionDateTimeHumanizeStrategy(double precision = .75) :...
    method Humanize (line 17) | public string Humanize(DateTime input, DateTime comparisonBase, Cultur...

FILE: src/Humanizer/DateTimeHumanizeStrategy/PrecisionDateTimeOffsetHumanizeStrategy.cs
  class PrecisionDateTimeOffsetHumanizeStrategy (line 10) | public class PrecisionDateTimeOffsetHumanizeStrategy(double precision = ...
    method Humanize (line 17) | public string Humanize(DateTimeOffset input, DateTimeOffset comparison...

FILE: src/Humanizer/DateTimeHumanizeStrategy/PrecisionTimeOnlyHumanizeStrategy.cs
  class PrecisionTimeOnlyHumanizeStrategy (line 12) | public class PrecisionTimeOnlyHumanizeStrategy(double precision = .75) :...
    method Humanize (line 19) | public string Humanize(TimeOnly input, TimeOnly comparisonBase, Cultur...

FILE: src/Humanizer/DateToOrdinalWordsExtensions.cs
  class DateToOrdinalWordsExtensions (line 6) | public static class DateToOrdinalWordsExtensions
    method ToOrdinalWords (line 26) | public static string ToOrdinalWords(this DateTime input) =>
    method ToOrdinalWords (line 51) | public static string ToOrdinalWords(this DateTime input, GrammaticalCa...
    method ToOrdinalWords (line 74) | public static string ToOrdinalWords(this DateOnly input) =>
    method ToOrdinalWords (line 100) | public static string ToOrdinalWords(this DateOnly input, GrammaticalCa...

FILE: src/Humanizer/EnumCache.cs
  class EnumCache (line 5) | static class EnumCache<[DynamicallyAccessedMembers(DynamicallyAccessedMe...
    method CreateInfo (line 12) | private static (T Zero, FrozenDictionary<T, string> Humanized, FrozenD...
    method GetInfo (line 35) | public static (T Zero, FrozenDictionary<T, string> Humanized, FrozenSe...
    method GetDehumanized (line 38) | public static FrozenDictionary<string, T> GetDehumanized() =>
    method TreatAsFlags (line 41) | public static bool TreatAsFlags(T input)
    method GetDescription (line 51) | static string GetDescription(T input)
    method TryGetDescription (line 68) | [UnconditionalSuppressMessage("Trimming", "IL2072", Justification = "R...

FILE: src/Humanizer/EnumDehumanizeExtensions.cs
  class EnumDehumanizeExtensions (line 6) | public static class EnumDehumanizeExtensions
    method DehumanizeTo (line 37) | public static TTargetEnum DehumanizeTo<[DynamicallyAccessedMembers(Dyn...
    method DehumanizeTo (line 70) | public static TTargetEnum? DehumanizeTo<[DynamicallyAccessedMembers(Dy...
    method GetDehumanizeToMethodInfo (line 75) | [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = "T...
    method DehumanizeTo (line 115) | [RequiresDynamicCode("The native code for the target enumeration might...
    method DehumanizeToPrivate (line 132) | static T? DehumanizeToPrivate<[DynamicallyAccessedMembers(DynamicallyA...

FILE: src/Humanizer/EnumHumanizeExtensions.cs
  class EnumHumanizeExtensions (line 6) | public static class EnumHumanizeExtensions
    method Humanize (line 42) | public static string Humanize<[DynamicallyAccessedMembers(DynamicallyA...
    method Humanize (line 88) | public static string Humanize<[DynamicallyAccessedMembers(DynamicallyA...

FILE: src/Humanizer/FluentDate/In.Months.cs
  class In (line 3) | public partial class In
    method JanuaryOf (line 14) | public static DateTime JanuaryOf(int year)
    method FebruaryOf (line 26) | public static DateTime FebruaryOf(int year)
    method MarchOf (line 38) | public static DateTime MarchOf(int year)
    method AprilOf (line 50) | public static DateTime AprilOf(int year)
    method MayOf (line 62) | public static DateTime MayOf(int year)
    method JuneOf (line 74) | public static DateTime JuneOf(int year)
    method JulyOf (line 86) | public static DateTime JulyOf(int year)
    method AugustOf (line 98) | public static DateTime AugustOf(int year)
    method SeptemberOf (line 110) | public static DateTime SeptemberOf(int year)
    method OctoberOf (line 122) | public static DateTime OctoberOf(int year)
    method NovemberOf (line 134) | public static DateTime NovemberOf(int year)
    method DecemberOf (line 146) | public static DateTime DecemberOf(int year)

FILE: src/Humanizer/FluentDate/In.SomeTimeFrom.cs
  class In (line 5) | public partial class In
    class One (line 9) | public static class One
      method SecondFrom (line 20) | public static DateTime SecondFrom(DateTime date)
      method MinuteFrom (line 32) | public static DateTime MinuteFrom(DateTime date)
      method HourFrom (line 44) | public static DateTime HourFrom(DateTime date)
      method DayFrom (line 56) | public static DateTime DayFrom(DateTime date)
      method WeekFrom (line 68) | public static DateTime WeekFrom(DateTime date)
      method MonthFrom (line 80) | public static DateTime MonthFrom(DateTime date)
      method YearFrom (line 92) | public static DateTime YearFrom(DateTime date)
    class Two (line 98) | public static class Two
      method SecondsFrom (line 109) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 121) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 133) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 145) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 157) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 169) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 181) | public static DateTime YearsFrom(DateTime date)
    class Three (line 187) | public static class Three
      method SecondsFrom (line 198) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 210) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 222) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 234) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 246) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 258) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 270) | public static DateTime YearsFrom(DateTime date)
    class Four (line 276) | public static class Four
      method SecondsFrom (line 287) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 299) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 311) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 323) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 335) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 347) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 359) | public static DateTime YearsFrom(DateTime date)
    class Five (line 365) | public static class Five
      method SecondsFrom (line 376) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 388) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 400) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 412) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 424) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 436) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 448) | public static DateTime YearsFrom(DateTime date)
    class Six (line 454) | public static class Six
      method SecondsFrom (line 465) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 477) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 489) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 501) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 513) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 525) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 537) | public static DateTime YearsFrom(DateTime date)
    class Seven (line 543) | public static class Seven
      method SecondsFrom (line 554) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 566) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 578) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 590) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 602) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 614) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 626) | public static DateTime YearsFrom(DateTime date)
    class Eight (line 632) | public static class Eight
      method SecondsFrom (line 643) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 655) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 667) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 679) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 691) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 703) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 715) | public static DateTime YearsFrom(DateTime date)
    class Nine (line 721) | public static class Nine
      method SecondsFrom (line 732) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 744) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 756) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 768) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 780) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 792) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 804) | public static DateTime YearsFrom(DateTime date)
    class Ten (line 810) | public static class Ten
      method SecondsFrom (line 821) | public static DateTime SecondsFrom(DateTime date)
      method MinutesFrom (line 833) | public static DateTime MinutesFrom(DateTime date)
      method HoursFrom (line 845) | public static DateTime HoursFrom(DateTime date)
      method DaysFrom (line 857) | public static DateTime DaysFrom(DateTime date)
      method WeeksFrom (line 869) | public static DateTime WeeksFrom(DateTime date)
      method MonthsFrom (line 881) | public static DateTime MonthsFrom(DateTime date)
      method YearsFrom (line 893) | public static DateTime YearsFrom(DateTime date)

FILE: src/Humanizer/FluentDate/In.cs
  class In (line 3) | public partial class In
    method TheYear (line 8) | public static DateTime TheYear(int year) =>

FILE: src/Humanizer/FluentDate/InDate.Months.cs
  class InDate (line 5) | public partial class InDate
    method JanuaryOf (line 16) | public static DateOnly JanuaryOf(int year)
    method FebruaryOf (line 28) | public static DateOnly FebruaryOf(int year)
    method MarchOf (line 40) | public static DateOnly MarchOf(int year)
    method AprilOf (line 52) | public static DateOnly AprilOf(int year)
    method MayOf (line 64) | public static DateOnly MayOf(int year)
    method JuneOf (line 76) | public static DateOnly JuneOf(int year)
    method JulyOf (line 88) | public static DateOnly JulyOf(int year)
    method AugustOf (line 100) | public static DateOnly AugustOf(int year)
    method SeptemberOf (line 112) | public static DateOnly SeptemberOf(int year)
    method OctoberOf (line 124) | public static DateOnly OctoberOf(int year)
    method NovemberOf (line 136) | public static DateOnly NovemberOf(int year)
    method DecemberOf (line 148) | public static DateOnly DecemberOf(int year)

FILE: src/Humanizer/FluentDate/InDate.SomeTimeFrom.cs
  class InDate (line 6) | public partial class InDate
    class One (line 10) | public static class One
      method DayFrom (line 21) | public static DateOnly DayFrom(DateOnly date)
      method DayFrom (line 27) | public static DateOnly DayFrom(DateTime date)
      method WeekFrom (line 39) | public static DateOnly WeekFrom(DateOnly date)
      method WeekFrom (line 45) | public static DateOnly WeekFrom(DateTime date)
      method MonthFrom (line 57) | public static DateOnly MonthFrom(DateOnly date)
      method MonthFrom (line 63) | public static DateOnly MonthFrom(DateTime date)
      method YearFrom (line 75) | public static DateOnly YearFrom(DateOnly date)
      method YearFrom (line 81) | public static DateOnly YearFrom(DateTime date)
    class Two (line 87) | public static class Two
      method DaysFrom (line 98) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 104) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 116) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 122) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 134) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 140) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 152) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 158) | public static DateOnly YearsFrom(DateTime date)
    class Three (line 164) | public static class Three
      method DaysFrom (line 175) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 181) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 193) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 199) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 211) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 217) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 229) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 235) | public static DateOnly YearsFrom(DateTime date)
    class Four (line 241) | public static class Four
      method DaysFrom (line 252) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 258) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 270) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 276) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 288) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 294) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 306) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 312) | public static DateOnly YearsFrom(DateTime date)
    class Five (line 318) | public static class Five
      method DaysFrom (line 329) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 335) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 347) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 353) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 365) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 371) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 383) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 389) | public static DateOnly YearsFrom(DateTime date)
    class Six (line 395) | public static class Six
      method DaysFrom (line 406) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 412) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 424) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 430) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 442) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 448) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 460) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 466) | public static DateOnly YearsFrom(DateTime date)
    class Seven (line 472) | public static class Seven
      method DaysFrom (line 483) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 489) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 501) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 507) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 519) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 525) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 537) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 543) | public static DateOnly YearsFrom(DateTime date)
    class Eight (line 549) | public static class Eight
      method DaysFrom (line 560) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 566) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 578) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 584) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 596) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 602) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 614) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 620) | public static DateOnly YearsFrom(DateTime date)
    class Nine (line 626) | public static class Nine
      method DaysFrom (line 637) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 643) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 655) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 661) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 673) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 679) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 691) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 697) | public static DateOnly YearsFrom(DateTime date)
    class Ten (line 703) | public static class Ten
      method DaysFrom (line 714) | public static DateOnly DaysFrom(DateOnly date)
      method DaysFrom (line 720) | public static DateOnly DaysFrom(DateTime date)
      method WeeksFrom (line 732) | public static DateOnly WeeksFrom(DateOnly date)
      method WeeksFrom (line 738) | public static DateOnly WeeksFrom(DateTime date)
      method MonthsFrom (line 750) | public static DateOnly MonthsFrom(DateOnly date)
      method MonthsFrom (line 756) | public static DateOnly MonthsFrom(DateTime date)
      method YearsFrom (line 768) | public static DateOnly YearsFrom(DateOnly date)
      method YearsFrom (line 774) | public static DateOnly YearsFrom(DateTime date)

FILE: src/Humanizer/FluentDate/InDate.cs
  class InDate (line 4) | public partial class InDate
    method TheYear (line 9) | public static DateOnly TheYear(int year) =>

FILE: src/Humanizer/FluentDate/On.Days.cs
  class On (line 3) | public class On
    class January (line 8) | public class January
      method The (line 13) | public static DateTime The(int dayNumber)
    class February (line 206) | public class February
      method The (line 211) | public static DateTime The(int dayNumber)
    class March (line 392) | public class March
      method The (line 397) | public static DateTime The(int dayNumber)
    class April (line 590) | public class April
      method The (line 595) | public static DateTime The(int dayNumber)
    class May (line 782) | public class May
      method The (line 787) | public static DateTime The(int dayNumber)
    class June (line 980) | public class June
      method The (line 985) | public static DateTime The(int dayNumber)
    class July (line 1172) | public class July
      method The (line 1177) | public static DateTime The(int dayNumber)
    class August (line 1370) | public class August
      method The (line 1375) | public static DateTime The(int dayNumber)
    class September (line 1568) | public class September
      method The (line 1573) | public static DateTime The(int dayNumber)
    class October (line 1760) | public class October
      method The (line 1765) | public static DateTime The(int dayNumber)
    class November (line 1958) | public class November
      method The (line 1963) | public static DateTime The(int dayNumber)
    class December (line 2150) | public class December
      method The (line 2155) | public static DateTime The(int dayNumber)

FILE: src/Humanizer/FluentDate/OnDate.Days.cs
  class OnDate (line 4) | public class OnDate
    class January (line 9) | public class January
      method The (line 14) | public static DateOnly The(int dayNumber)
    class February (line 206) | public class February
      method The (line 211) | public static DateOnly The(int dayNumber)
    class March (line 391) | public class March
      method The (line 396) | public static DateOnly The(int dayNumber)
    class April (line 588) | public class April
      method The (line 593) | public static DateOnly The(int dayNumber)
    class May (line 779) | public class May
      method The (line 784) | public static DateOnly The(int dayNumber)
    class June (line 976) | public class June
      method The (line 981) | public static DateOnly The(int dayNumber)
    class July (line 1167) | public class July
      method The (line 1172) | public static DateOnly The(int dayNumber)
    class August (line 1364) | public class August
      method The (line 1369) | public static DateOnly The(int dayNumber)
    class September (line 1561) | public class September
      method The (line 1566) | public static DateOnly The(int dayNumber)
    class October (line 1752) | public class October
      method The (line 1757) | public static DateOnly The(int dayNumber)
    class November (line 1949) | public class November
      method The (line 1954) | public static DateOnly The(int dayNumber)
    class December (line 2140) | public class December
      method The (line 2145) | public static DateOnly The(int dayNumber)

FILE: src/Humanizer/FluentDate/PrepositionsExtensions.cs
  class PrepositionsExtensions (line 6) | public static class PrepositionsExtensions
    method At (line 12) | public static DateTime At(this DateTime date, int hour, int min = 0, i...
    method AtMidnight (line 18) | public static DateTime AtMidnight(this DateTime date) =>
    method AtNoon (line 24) | public static DateTime AtNoon(this DateTime date) =>
    method In (line 30) | public static DateTime In(this DateTime date, int year) =>

FILE: src/Humanizer/GrammaticalCase.cs
  type GrammaticalCase (line 6) | public enum GrammaticalCase

FILE: src/Humanizer/GrammaticalGender.cs
  type GrammaticalGender (line 6) | public enum GrammaticalGender

FILE: src/Humanizer/HeadingExtensions.cs
  type HeadingStyle (line 6) | public enum HeadingStyle
  class HeadingExtensions (line 23) | public static class HeadingExtensions
    method ToHeading (line 39) | public static string ToHeading(this double heading, HeadingStyle style...
    method ToHeadingArrow (line 56) | public static char ToHeadingArrow(this double heading)
    method FromAbbreviatedHeading (line 68) | public static double FromAbbreviatedHeading(this string heading) =>
    method FromAbbreviatedHeading (line 77) | public static double FromAbbreviatedHeading(this string heading, Cultu...
    method FromHeadingArrow (line 99) | public static double FromHeadingArrow(this char heading)
    method FromHeadingArrow (line 114) | public static double FromHeadingArrow(this string heading)

FILE: src/Humanizer/Inflections/Vocabularies.cs
  class Vocabularies (line 6) | public static class Vocabularies
    method BuildDefault (line 17) | static Vocabulary BuildDefault()

FILE: src/Humanizer/Inflections/Vocabulary.cs
  class Vocabulary (line 8) | public partial class Vocabulary
    method Vocabulary (line 10) | internal Vocabulary()
    method LetterSRegexGenerated (line 21) | [GeneratedRegex(LetterSPattern)]
    method LetterSRegex (line 24) | private static Regex LetterSRegex() => LetterSRegexGenerated();
    method LetterSRegex (line 28) | private static Regex LetterSRegex() => LetterSRegexField;
    method AddIrregular (line 37) | public void AddIrregular(string singular, string plural, bool matchEnd...
    method AddUncountable (line 57) | public void AddUncountable(string word) =>
    method AddPlural (line 65) | public void AddPlural(string rule, string replacement) =>
    method AddSingular (line 73) | public void AddSingular(string rule, string replacement) =>
    method Pluralize (line 81) | [return: NotNullIfNotNull(nameof(word))]
    method Singularize (line 122) | [return: NotNullIfNotNull(nameof(word))]
    method ApplyRules (line 160) | string? ApplyRules(IList<Rule> rules, string? word, bool skipFirstRule)
    method IsUncountable (line 195) | bool IsUncountable(string word) =>
    method MatchUpperCase (line 198) | static string MatchUpperCase(string word, string replacement) =>
    method LetterS (line 205) | static string? LetterS(string word)
    class Rule (line 211) | class Rule(string pattern, string replacement)
      method Apply (line 215) | public string? Apply(string word)

FILE: src/Humanizer/InflectorExtensions.cs
  class InflectorExtensions (line 26) | public static partial class InflectorExtensions
    method PascalizeRegexGenerated (line 34) | [GeneratedRegex(PascalizePattern)]
    method PascalizeRegex (line 37) | private static Regex PascalizeRegex() => PascalizeRegexGenerated();
    method UnderscoreRegex1Generated (line 39) | [GeneratedRegex(UnderscorePattern1)]
    method UnderscoreRegex1 (line 42) | private static Regex UnderscoreRegex1() => UnderscoreRegex1Generated();
    method UnderscoreRegex2Generated (line 44) | [GeneratedRegex(UnderscorePattern2)]
    method UnderscoreRegex2 (line 47) | private static Regex UnderscoreRegex2() => UnderscoreRegex2Generated();
    method UnderscoreRegex3Generated (line 49) | [GeneratedRegex(UnderscorePattern3)]
    method UnderscoreRegex3 (line 52) | private static Regex UnderscoreRegex3() => UnderscoreRegex3Generated();
    method PascalizeRegex (line 55) | private static Regex PascalizeRegex() => PascalizeRegexField;
    method UnderscoreRegex1 (line 58) | private static Regex UnderscoreRegex1() => UnderscoreRegex1Field;
    method UnderscoreRegex2 (line 61) | private static Regex UnderscoreRegex2() => UnderscoreRegex2Field;
    method UnderscoreRegex3 (line 64) | private static Regex UnderscoreRegex3() => UnderscoreRegex3Field;
    method Pluralize (line 92) | [return: NotNullIfNotNull(nameof(word))]
    method Singularize (line 125) | public static string Singularize(this string word, bool inputIsKnownTo...
    method Titleize (line 147) | public static string Titleize(this string input)
    method Pascalize (line 173) | public static string Pascalize(this string input) =>
    method Camelize (line 198) | public static string Camelize(this string input)
    method Underscore (line 227) | public static string Underscore(this string input) =>
    method Dasherize (line 250) | public static string Dasherize(this string underscoredWord) =>
    method Hyphenate (line 268) | public static string Hyphenate(this string underscoredWord) =>
    method Kebaberize (line 291) | public static string Kebaberize(this string input) =>

FILE: src/Humanizer/LetterCasing.cs
  type LetterCasing (line 6) | public enum LetterCasing

FILE: src/Humanizer/Localisation/CollectionFormatters/DefaultCollectionFormatter.cs
  class DefaultCollectionFormatter (line 3) | class DefaultCollectionFormatter(string defaultSeparator) : ICollectionF...
    method Humanize (line 7) | public virtual string Humanize<T>(IEnumerable<T> collection) =>
    method Humanize (line 10) | public virtual string Humanize<T>(IEnumerable<T> collection, Func<T, s...
    method Humanize (line 13) | public string Humanize<T>(IEnumerable<T> collection, Func<T, object?> ...
    method Humanize (line 16) | public virtual string Humanize<T>(IEnumerable<T> collection, string se...
    method Humanize (line 19) | public virtual string Humanize<T>(IEnumerable<T> collection, Func<T, s...
    method Humanize (line 30) | public string Humanize<T>(IEnumerable<T> collection, Func<T, object?> ...
    method HumanizeDisplayStrings (line 43) | string HumanizeDisplayStrings(IEnumerable<string?> strings, string sep...
    method GetConjunctionFormatString (line 81) | protected virtual string GetConjunctionFormatString(int itemCount) => ...

FILE: src/Humanizer/Localisation/CollectionFormatters/ICollectionFormatter.cs
  type ICollectionFormatter (line 6) | public interface ICollectionFormatter
    method Humanize (line 11) | string Humanize<T>(IEnumerable<T> collection);
    method Humanize (line 16) | string Humanize<T>(IEnumerable<T> collection, Func<T, string?> objectF...
    method Humanize (line 21) | string Humanize<T>(IEnumerable<T> collection, Func<T, object?> objectF...
    method Humanize (line 27) | string Humanize<T>(IEnumerable<T> collection, string separator);
    method Humanize (line 33) | string Humanize<T>(IEnumerable<T> collection, Func<T, string?> objectF...
    method Humanize (line 39) | string Humanize<T>(IEnumerable<T> collection, Func<T, object?> objectF...

FILE: src/Humanizer/Localisation/CollectionFormatters/OxfordStyleCollectionFormatter.cs
  class OxfordStyleCollectionFormatter (line 3) | class OxfordStyleCollectionFormatter() :
    method GetConjunctionFormatString (line 6) | protected override string GetConjunctionFormatString(int itemCount) =>...

FILE: src/Humanizer/Localisation/DataUnit.cs
  type DataUnit (line 3) | public enum DataUnit

FILE: src/Humanizer/Localisation/DateToOrdinalWords/CaDateOnlyToOrdinalWordsConverter.cs
  class CaDateOnlyToOrdinalWordsConverter (line 5) | class CaDateOnlyToOrdinalWordsConverter : DefaultDateOnlyToOrdinalWordCo...
    method Convert (line 7) | public override string Convert(DateOnly date)

FILE: src/Humanizer/Localisation/DateToOrdinalWords/CaDateToOrdinalWordsConverter.cs
  class CaDateToOrdinalWordsConverter (line 3) | class CaDateToOrdinalWordsConverter : DefaultDateToOrdinalWordConverter
    method Convert (line 5) | public override string Convert(DateTime date) =>

FILE: src/Humanizer/Localisation/DateToOrdinalWords/DefaultDateOnlyToOrdinalWordConverter.cs
  class DefaultDateOnlyToOrdinalWordConverter (line 5) | class DefaultDateOnlyToOrdinalWordConverter : IDateOnlyToOrdinalWordConv...
    method Convert (line 7) | public virtual string Convert(DateOnly date) =>
    method Convert (line 10) | public virtual string Convert(DateOnly date, GrammaticalCase grammatic...

FILE: src/Humanizer/Localisation/DateToOrdinalWords/DefaultDateToOrdinalWordConverter.cs
  class DefaultDateToOrdinalWordConverter (line 3) | class DefaultDateToOrdinalWordConverter : IDateToOrdinalWordConverter
    method Convert (line 5) | public virtual string Convert(DateTime date) =>
    method Convert (line 8) | public virtual string Convert(DateTime date, GrammaticalCase grammatic...

FILE: src/Humanizer/Localisation/DateToOrdinalWords/EsDateOnlyToOrdinalWordsConverter.cs
  class EsDateOnlyToOrdinalWordsConverter (line 5) | class EsDateOnlyToOrdinalWordsConverter : DefaultDateOnlyToOrdinalWordCo...
    method Convert (line 7) | public override string Convert(DateOnly date)

FILE: src/Humanizer/Localisation/DateToOrdinalWords/EsDateToOrdinalWordsConverter.cs
  class EsDateToOrdinalWordsConverter (line 3) | class EsDateToOrdinalWordsConverter : DefaultDateToOrdinalWordConverter
    method Convert (line 5) | public override string Convert(DateTime date) =>

FILE: src/Humanizer/Localisation/DateToOrdinalWords/FrDateOnlyToOrdinalWordsConverter.cs
  class FrDateOnlyToOrdinalWordsConverter (line 5) | class FrDateOnlyToOrdinalWordsConverter : DefaultDateOnlyToOrdinalWordCo...
    method Convert (line 7) | public override string Convert(DateOnly date)

FILE: src/Humanizer/Localisation/DateToOrdinalWords/FrDateToOrdinalWordsConverter.cs
  class FrDateToOrdinalWordsConverter (line 3) | class FrDateToOrdinalWordsConverter : DefaultDateToOrdinalWordConverter
    method Convert (line 5) | public override string Convert(DateTime date)

FILE: src/Humanizer/Localisation/DateToOrdinalWords/IDateOnlyToOrdinalWordConverter.cs
  type IDateOnlyToOrdinalWordConverter (line 8) | public interface IDateOnlyToOrdinalWordConverter
    method Convert (line 13) | string Convert(DateOnly date);
    method Convert (line 18) | string Convert(DateOnly date, GrammaticalCase grammaticalCase);

FILE: src/Humanizer/Localisation/DateToOrdinalWords/IDateToOrdinalWordConverter.cs
  type IDateToOrdinalWordConverter (line 6) | public interface IDateToOrdinalWordConverter
    method Convert (line 11) | string Convert(DateTime date);
    method Convert (line 16) | string Convert(DateTime date, GrammaticalCase grammaticalCase);

FILE: src/Humanizer/Localisation/DateToOrdinalWords/LtDateOnlyToOrdinalWordsConverter.cs
  class LtDateOnlyToOrdinalWordsConverter (line 5) | class LtDateOnlyToOrdinalWordsConverter : IDateOnlyToOrdinalWordConverter
    method Convert (line 7) | public string Convert(DateOnly date) =>
    method Convert (line 10) | public string Convert(DateOnly date, GrammaticalCase grammaticalCase) =>

FILE: src/Humanizer/Localisation/DateToOrdinalWords/LtDateToOrdinalWordsConverter.cs
  class LtDateToOrdinalWordsConverter (line 3) | class LtDateToOrdinalWordsConverter : IDateToOrdinalWordConverter
    method Convert (line 5) | public string Convert(DateTime date) =>
    method Convert (line 8) | public string Convert(DateTime date, GrammaticalCase grammaticalCase) =>

FILE: src/Humanizer/Localisation/DateToOrdinalWords/UsDateOnlyToOrdinalWordsConverter.cs
  class UsDateOnlyToOrdinalWordsConverter (line 5) | class UsDateOnlyToOrdinalWordsConverter : DefaultDateOnlyToOrdinalWordCo...
    method Convert (line 7) | public override string Convert(DateOnly date) =>

FILE: src/Humanizer/Localisation/DateToOrdinalWords/UsDateToOrdinalWordsConverter.cs
  class UsDateToOrdinalWordsConverter (line 3) | class UsDateToOrdinalWordsConverter : DefaultDateToOrdinalWordConverter
    method Convert (line 5) | public override string Convert(DateTime date) =>

FILE: src/Humanizer/Localisation/Formatters/ArabicFormatter.cs
  class ArabicFormatter (line 3) | class ArabicFormatter(CultureInfo culture) :
    method GetResourceKey (line 9) | protected override string GetResourceKey(string resourceKey, int number)

FILE: src/Humanizer/Localisation/Formatters/BulgarianFormatter.cs
  class BulgarianFormatter (line 3) | class BulgarianFormatter(CultureInfo culture)
    method NumberToWords (line 6) | protected override string NumberToWords(TimeUnit unit, int number, Cul...
    method GetUnitGender (line 9) | static GrammaticalGender GetUnitGender(TimeUnit unit) =>

FILE: src/Humanizer/Localisation/Formatters/CatalanFormatter.cs
  class CatalanFormatter (line 3) | class CatalanFormatter(CultureInfo culture) :
    method Format (line 6) | protected override string Format(TimeUnit unit, string resourceKey, in...

FILE: src/Humanizer/Localisation/Formatters/CroatianFormatter.cs
  class CroatianFormatter (line 3) | class CroatianFormatter(CultureInfo culture) :
    method GetResourceKey (line 8) | protected override string GetResourceKey(string resourceKey, int number)

FILE: src/Humanizer/Localisation/Formatters/CzechSlovakPolishFormatter.cs
  class CzechSlovakPolishFormatter (line 3) | class CzechSlovakPolishFormatter(CultureInfo culture) :
    method GetResourceKey (line 8) | protected override string GetResourceKey(string resourceKey, int number)

FILE: src/Humanizer/Localisation/Formatters/DefaultFormatter.cs
  class DefaultFormatter (line 6) | public class DefaultFormatter(CultureInfo culture) : IFormatter
    method DefaultFormatter (line 10) | public DefaultFormatter(string localeCode)
    method DateHumanize_Now (line 15) | public virtual string DateHumanize_Now() =>
    method DateHumanize_Never (line 18) | public virtual string DateHumanize_Never() =>
    method DateHumanize (line 24) | public virtual string DateHumanize(TimeUnit timeUnit, Tense timeUnitTe...
    method TimeSpanHumanize_Zero (line 31) | public virtual string TimeSpanHumanize_Zero() =>
    method TimeSpanHumanize (line 39) | public virtual string TimeSpanHumanize(TimeUnit timeUnit, int unit, bo...
    method TimeSpanHumanize_Age (line 43) | public virtual string TimeSpanHumanize_Age()
    method DataUnitHumanize (line 54) | public virtual string DataUnitHumanize(DataUnit dataUnit, double count...
    method TimeUnitHumanize (line 86) | public virtual string TimeUnitHumanize(TimeUnit timeUnit)
    method GetResourceForDate (line 92) | string GetResourceForDate(TimeUnit unit, Tense timeUnitTense, int count)
    method GetResourceForTimeSpan (line 98) | string GetResourceForTimeSpan(TimeUnit unit, int count, bool toWords =...
    method Format (line 109) | protected virtual string Format(string resourceKey)
    method Format (line 123) | protected virtual string Format(TimeUnit unit, string resourceKey, int...
    method NumberToWords (line 131) | protected virtual string NumberToWords(TimeUnit unit, int number, Cult...
    method GetResourceKey (line 139) | protected virtual string GetResourceKey(string resourceKey, int number...
    method GetResourceKey (line 142) | protected virtual string GetResourceKey(string resourceKey) =>

FILE: src/Humanizer/Localisation/Formatters/FrenchFormatter.cs
  class FrenchFormatter (line 3) | class FrenchFormatter(CultureInfo culture) :
    method GetResourceKey (line 8) | protected override string GetResourceKey(string resourceKey, int number)

FILE: src/Humanizer/Localisation/Formatters/GermanFormatter.cs
  class GermanFormatter (line 3) | class GermanFormatter(CultureInfo culture) :
    method DataUnitHumanize (line 7) | public override string DataUnitHumanize(DataUnit dataUnit, double coun...

FILE: src/Humanizer/Localisation/Formatters/HebrewFormatter.cs
  class HebrewFormatter (line 3) | class HebrewFormatter(CultureInfo culture) :
    method GetResourceKey (line 9) | protected override string GetResourceKey(string resourceKey, int number)

FILE: src/Humanizer/Localisation/Formatters/IFormatter.cs
  type IFormatter (line 8) | public interface IFormatter
    method DateHumanize_Now (line 10) | string DateHumanize_Now();
    method DateHumanize_Never (line 12) | string DateHumanize_Never();
    method DateHumanize (line 17) | string DateHumanize(TimeUnit timeUnit, Tense timeUnitTense, int unit);
    method TimeSpanHumanize_Zero (line 23) | string TimeSpanHumanize_Zero();
    method TimeSpanHumanize (line 28) | string TimeSpanHumanize(TimeUnit timeUnit, int unit, bool toWords = fa...
    method TimeSpanHumanize_Age (line 35) | string TimeSpanHumanize_Age();
    method DataUnitHumanize (line 44) | string DataUnitHumanize(DataUnit dataUnit, double count, bool toSymbol...
    method TimeUnitHumanize (line 51) | string TimeUnitHumanize(TimeUnit timeUnit);

FILE: src/Humanizer/Localisation/Formatters/IcelandicFormatter.cs
  class IcelandicFormatter (line 3) | class IcelandicFormatter(CultureInfo culture) :
    method DataUnitHumanize (line 6) | public override string DataUnitHumanize(DataUnit dataUnit, double coun...
    method NumberToWords (line 9) | protected override string NumberToWords(TimeUnit unit, int number, Cul...
    method GetUnitGender (line 12) | static GrammaticalGender GetUnitGender(TimeUnit unit) =>

FILE: src/Humanizer/Localisation/Formatters/LithuanianFormatter.cs
  class LithuanianFormatter (line 3) | class LithuanianFormatter(CultureInfo culture) :
    method GetResourceKey (line 8) | protected override string GetResourceKey(string resourceKey, int number)
    method GetSuffix (line 20) | static string GetSuffix(LithuanianNumberForm form)

FILE: src/Humanizer/Localisation/Formatters/LuxembourgishFormatter.cs
  class LuxembourgishFormatter (line 3) | class LuxembourgishFormatter(CultureInfo culture) :
    method DataUnitHumanize (line 16) | public override string DataUnitHumanize(DataUnit dataUnit, double coun...
    method ApplyEifelerRule (line 21) | public static string ApplyEifelerRule(string word)
    method CheckForAndApplyEifelerRule (line 24) | public static string CheckForAndApplyEifelerRule(string word, string n...
    method DoesEifelerRuleApply (line 29) | public static bool DoesEifelerRuleApply(CharSpan nextWord)
    method Format (line 33) | protected override string Format(TimeUnit unit, string resourceKey, in...
    method GetResourceKey (line 43) | protected override string GetResourceKey(string resourceKey, int number)
    method GetUnitGender (line 54) | static GrammaticalGender GetUnitGender(TimeUnit unit) =>

FILE: src/Humanizer/Localisation/Formatters/MalteseFormatter.cs
  class MalteseFormatter (line 3) | class MalteseFormatter(CultureInfo culture) :
    method GetResourceKey (line 6) | protected override string GetResourceKey(string resourceKey, int number)

FILE: src/Humanizer/Localisation/Formatters/RomanianFormatter.cs
  class RomanianFormatter (line 3) | class RomanianFormatter(CultureInfo culture) :
    method Format (line 13) | protected override string Format(TimeUnit unit, string resourceKey, in...
    method ShouldUsePreposition (line 23) | static bool ShouldUsePreposition(int number)

FILE: src/Humanizer/Localisation/Formatters/RussianFormatter.cs
  class RussianFormatter (line 3) | class RussianFormatter(CultureInfo culture) :
    method DataUnitHumanize (line 7) | public override string DataUnitHumanize(DataUnit dataUnit, double coun...
    method GetResourceKey (line 9) | protected override string GetResourceKey(string resourceKey, int number)
    method NumberToWords (line 20) | protected override string NumberToWords(TimeUnit unit, int number, Cul...
    method GetUnitGender (line 24) | static GrammaticalGender GetUnitGender(TimeUnit unit) =>

FILE: src/Humanizer/Localisation/Formatters/SerbianFormatter.cs
  class SerbianFormatter (line 3) | class SerbianFormatter(CultureInfo culture) :
    method GetResourceKey (line 8) | protected override string GetResourceKey(string resourceKey, int number)

FILE: src/Humanizer/Localisation/Formatters/SlovenianFormatter.cs
  class SlovenianFormatter (line 3) | class SlovenianFormatter(CultureInfo culture) :
    method GetResourceKey (line 9) | protected override string GetResourceKey(string resourceKey, int number)

FILE: src/Humanizer/Localisation/Formatters/UkrainianFormatter.cs
  class UkrainianFormatter (line 3) | class UkrainianFormatter(CultureInfo culture)
    method GetResourceKey (line 6) | protected override string GetResourceKey(string resourceKey, int number)
    method NumberToWords (line 17) | protected override string NumberToWords(TimeUnit unit, int number, Cul...
    method GetUnitGender (line 20) | static GrammaticalGender GetUnitGender(TimeUnit unit) =>

FILE: src/Humanizer/Localisation/GrammaticalNumber/LithuanianNumberForm.cs
  type LithuanianNumberForm (line 3) | enum LithuanianNumberForm

FILE: src/Humanizer/Localisation/GrammaticalNumber/LithuanianNumberFormDetector.cs
  class LithuanianNumberFormDetector (line 3) | static class LithuanianNumberFormDetector
    method Detect (line 5) | public static LithuanianNumberForm Detect(long number)

FILE: src/Humanizer/Localisation/GrammaticalNumber/RussianGrammaticalNumber.cs
  type RussianGrammaticalNumber (line 3) | enum RussianGrammaticalNumber

FILE: src/Humanizer/Localisation/GrammaticalNumber/RussianGrammaticalNumberDetector.cs
  class RussianGrammaticalNumberDetector (line 3) | static class RussianGrammaticalNumberDetector
    method Detect (line 5) | public static RussianGrammaticalNumber Detect(long number)

FILE: src/Humanizer/Localisation/NumberToWords/AfrikaansNumberToWordsConverter.cs
  class AfrikaansNumberToWordsConverter (line 3) | class AfrikaansNumberToWordsConverter :
    method Convert (line 43) | public override string Convert(long number)
    method ConvertToOrdinal (line 53) | public override string ConvertToOrdinal(int number) =>
    method Convert (line 56) | string Convert(int number, bool isOrdinal)
    method GetUnitValue (line 143) | static string GetUnitValue(int number, bool isOrdinal)
    method RemoveOnePrefix (line 163) | static string RemoveOnePrefix(string toWords)
    method ExceptionNumbersToWords (line 175) | static bool ExceptionNumbersToWords(int number, [NotNullWhen(true)] ou...

FILE: src/Humanizer/Localisation/NumberToWords/ArabicNumberToWordsConverter.cs
  class ArabicNumberToWordsConverter (line 3) | class ArabicNumberToWordsConverter :
    method Convert (line 17) | public override string Convert(long number, GrammaticalGender gender, ...
    method ConvertToOrdinal (line 227) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method ParseNumber (line 258) | static string ParseNumber(string word, int number, GrammaticalGender g...

FILE: src/Humanizer/Localisation/NumberToWords/ArmenianNumberToWordsConverter.cs
  class ArmenianNumberToWordsConverter (line 3) | class ArmenianNumberToWordsConverter :
    method Convert (line 28) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 31) | public override string ConvertToOrdinal(int number)
    method ConvertImpl (line 41) | string ConvertImpl(long number, bool isOrdinal)
    method GetUnitValue (line 161) | static string GetUnitValue(long number, bool isOrdinal)
    method ExceptionNumbersToWords (line 171) | static bool ExceptionNumbersToWords(long number, [NotNullWhen(true)] o...

FILE: src/Humanizer/Localisation/NumberToWords/AzerbaijaniNumberToWordsConverter.cs
  class AzerbaijaniNumberToWordsConverter (line 3) | class AzerbaijaniNumberToWordsConverter :
    method Convert (line 40) | public override string Convert(long input)
    method ConvertToOrdinal (line 102) | public override string ConvertToOrdinal(int number)

FILE: src/Humanizer/Localisation/NumberToWords/BanglaNumberToWordsConverter.cs
  class BanglaNumberToWordsConverter (line 3) | class BanglaNumberToWordsConverter :
    method ConvertToOrdinal (line 95) | public override string ConvertToOrdinal(int number)
    method Convert (line 105) | public override string Convert(long input)
    method ExceptionNumbersToWords (line 158) | static bool ExceptionNumbersToWords(int number, [NotNullWhen(true)] ou...

FILE: src/Humanizer/Localisation/NumberToWords/BrazilianPortugueseNumberToWordsConverter.cs
  class BrazilianPortugueseNumberToWordsConverter (line 3) | class BrazilianPortugueseNumberToWordsConverter :
    method Convert (line 14) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 103) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method ApplyGender (line 160) | static string ApplyGender(string toWords, GrammaticalGender gender)
    method ApplyOrdinalGender (line 185) | static string ApplyOrdinalGender(string toWords, GrammaticalGender gen...

FILE: src/Humanizer/Localisation/NumberToWords/BulgarianNumberToWordsConverter.cs
  class BulgarianNumberToWordsConverter (line 3) | class BulgarianNumberToWordsConverter() :
    method Convert (line 38) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 41) | public override string ConvertToOrdinal(int input, GrammaticalGender g...
    method InnerConvert (line 44) | static string InnerConvert(long input, GrammaticalGender gender, bool ...
    method CollectParts (line 69) | static void CollectParts(List<string> parts, ref long number, bool isO...
    method CollectPartsUnderOneThousand (line 96) | static void CollectPartsUnderOneThousand(List<string> parts, ref long ...
    method GetUnit (line 149) | static string GetUnit(long number, GrammaticalGender gender) =>
    method OrdinalZero (line 158) | static string OrdinalZero(GrammaticalGender gender) =>
    method ToOrdinalOverAHundred (line 167) | static string ToOrdinalOverAHundred(string word, GrammaticalGender gen...
    method ToOrdinalUnitsAndTens (line 176) | static string ToOrdinalUnitsAndTens(string word, GrammaticalGender gen...

FILE: src/Humanizer/Localisation/NumberToWords/CatalanNumberToWordsConverter.cs
  class CatalanNumberToWordsConverter (line 3) | class CatalanNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 44) | public override string Convert(long number, GrammaticalGender gender, ...
    method GetUnit (line 89) | private static string GetUnit(int number, GrammaticalGender gender)
    method GetTens (line 92) | private static string GetTens(int number, GrammaticalGender gender)
    method GetHundreds (line 115) | private static string GetHundreds(int number, GrammaticalGender gender)
    method GetThousands (line 133) | private string GetThousands(int number, GrammaticalGender gender)
    method GetMillions (line 159) | private string GetMillions(int number, GrammaticalGender gender)
    method ConvertToOrdinal (line 188) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method GetOrdinalTens (line 234) | private static string GetOrdinalTens(int number, GrammaticalGender gen...
    method GetOrdinalHundreds (line 264) | private string GetOrdinalHundreds(int number, GrammaticalGender gender)
    method GetOrdinalThousands (line 300) | private string GetOrdinalThousands(int number, GrammaticalGender gender)
    method GetOrdinalMillions (line 324) | private string GetOrdinalMillions(int number, GrammaticalGender gender)
    method ConvertToOrdinal (line 343) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method ConvertToTuple (line 404) | public override string ConvertToTuple(int number)

FILE: src/Humanizer/Localisation/NumberToWords/CentralKurdishNumberToWordsConverter.cs
  class CentralKurdishNumberToWordsConverter (line 3) | class CentralKurdishNumberToWordsConverter : GenderlessNumberToWordsConv...
    method Convert (line 9) | public override string Convert(long number)
    method ConvertToOrdinal (line 79) | public override string ConvertToOrdinal(int number)
    method IsVowel (line 85) | static bool IsVowel(char c) =>

FILE: src/Humanizer/Localisation/NumberToWords/ChineseNumberToWordsConverter.cs
  class ChineseNumberToWordsConverter (line 3) | class ChineseNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 7) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 10) | public override string ConvertToOrdinal(int number) =>
    method IsSpecial (line 13) | static bool IsSpecial(long number) => number is > 10 and < 20;
    method Convert (line 15) | static string Convert(long number, bool isOrdinal, bool isSpecial)

FILE: src/Humanizer/Localisation/NumberToWords/CroatianNumberToWordsConverter.cs
  class CroatianNumberToWordsConverter (line 3) | class CroatianNumberToWordsConverter(CultureInfo culture)
    method Convert (line 44) | public override string Convert(long number)
    method ConvertToOrdinal (line 312) | public override string ConvertToOrdinal(int number) =>

FILE: src/Humanizer/Localisation/NumberToWords/CzechNumberToWordsConverter.cs
  class CzechNumberToWordsConverter (line 3) | class CzechNumberToWordsConverter(CultureInfo culture) :
    method Convert (line 18) | public override string Convert(long number, GrammaticalGender gender, ...
    method ConvertToOrdinal (line 41) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method UnitByGender (line 44) | static string UnitByGender(long number, GrammaticalGender? gender)
    method CollectLessThanThousand (line 61) | static void CollectLessThanThousand(List<string> parts, long number, G...
    method CollectThousandAndAbove (line 81) | static void CollectThousandAndAbove(List<string> parts, ref long numbe...

FILE: src/Humanizer/Localisation/NumberToWords/DefaultNumberToWordsConverter.cs
  class DefaultNumberToWordsConverter (line 7) | class DefaultNumberToWordsConverter(CultureInfo? culture) : GenderlessNu...
    method Convert (line 15) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 22) | public override string ConvertToOrdinal(int number) =>

FILE: src/Humanizer/Localisation/NumberToWords/DutchNumberToWordsConverter.cs
  class DutchNumberToWordsConverter (line 9) | class DutchNumberToWordsConverter :
    class Fact (line 15) | class Fact
    method Convert (line 84) | public override string Convert(long input)
    method ConvertToOrdinal (line 170) | public override string ConvertToOrdinal(int number)

FILE: src/Humanizer/Localisation/NumberToWords/EnglishNumberToWordsConverter.cs
  class EnglishNumberToWordsConverter (line 3) | class EnglishNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 9) | public override string Convert(long number) =>
    method Convert (line 12) | public override string Convert(long number, bool addAnd = true) =>
    method ConvertToOrdinal (line 15) | public override string ConvertToOrdinal(int number) =>
    method Convert (line 18) | string Convert(long number, bool isOrdinal, bool addAnd = true)
    method CollectParts (line 50) | static void CollectParts(List<string> parts, ref long number, bool isO...
    method CollectPartsUnderAThousand (line 64) | static void CollectPartsUnderAThousand(List<string> parts, long number...
    method GetUnitValue (line 102) | static string GetUnitValue(long number, bool isOrdinal) =>
    method ConvertToTuple (line 105) | public override string ConvertToTuple(int number) =>

FILE: src/Humanizer/Localisation/NumberToWords/FarsiNumberToWordsConverter.cs
  class FarsiNumberToWordsConverter (line 3) | class FarsiNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 9) | public override string Convert(long number)
    method ConvertToOrdinal (line 70) | public override string ConvertToOrdinal(int number)

FILE: src/Humanizer/Localisation/NumberToWords/FinnishNumberToWordsConverter.cs
  class FinnishNumberToWordsConverter (line 3) | class FinnishNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 14) | public override string Convert(long input)
    method GetOrdinalUnit (line 88) | static string GetOrdinalUnit(int number, bool useExceptions)
    method ToOrdinal (line 98) | static string ToOrdinal(int number, bool useExceptions)
    method ConvertToOrdinal (line 149) | public override string ConvertToOrdinal(int number) =>

FILE: src/Humanizer/Localisation/NumberToWords/FrenchBelgianNumberToWordsConverter.cs
  class FrenchBelgianNumberToWordsConverter (line 3) | class FrenchBelgianNumberToWordsConverter : FrenchNumberToWordsConverter...
    method CollectPartsUnderAHundred (line 5) | protected override void CollectPartsUnderAHundred(List<string> parts, ...
    method GetTens (line 21) | protected override string GetTens(long tens)

FILE: src/Humanizer/Localisation/NumberToWords/FrenchNumberToWordsConverter.cs
  class FrenchNumberToWordsConverter (line 3) | class FrenchNumberToWordsConverter : FrenchNumberToWordsConverterBase
    method CollectPartsUnderAHundred (line 5) | protected override void CollectPartsUnderAHundred(List<string> parts, ...
    method GetTens (line 28) | protected override string GetTens(long tens)

FILE: src/Humanizer/Localisation/NumberToWords/FrenchNumberToWordsConverterBase.cs
  class FrenchNumberToWordsConverterBase (line 3) | abstract class FrenchNumberToWordsConverterBase : GenderedNumberToWordsC...
    method Convert (line 8) | public override string Convert(long number, GrammaticalGender gender, ...
    method ConvertToOrdinal (line 35) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method GetUnits (line 72) | protected static string GetUnits(long number, GrammaticalGender gender)
    method CollectHundreds (line 82) | static void CollectHundreds(List<string> parts, ref long number, long ...
    method CollectParts (line 110) | void CollectParts(List<string> parts, ref long number, long d, string ...
    method CollectPartsUnderAThousand (line 133) | void CollectPartsUnderAThousand(List<string> parts, long number, Gramm...
    method CollectThousands (line 143) | void CollectThousands(List<string> parts, ref long number, int d, stri...
    method CollectPartsUnderAHundred (line 161) | protected virtual void CollectPartsUnderAHundred(List<string> parts, r...
    method GetTens (line 188) | protected virtual string GetTens(long tens) =>

FILE: src/Humanizer/Localisation/NumberToWords/GenderedNumberToWordsConverter.cs
  class GenderedNumberToWordsConverter (line 3) | abstract class GenderedNumberToWordsConverter(GrammaticalGender defaultG...
    method Convert (line 8) | public string Convert(long number) =>
    method Convert (line 12) | public string Convert(long number, WordForm wordForm) =>
    method Convert (line 16) | public string Convert(long number, bool addAnd) =>
    method Convert (line 20) | public string Convert(long number, bool addAnd, WordForm wordForm) =>
    method Convert (line 24) | public abstract string Convert(long number, GrammaticalGender gender, ...
    method Convert (line 27) | public virtual string Convert(long number, WordForm wordForm, Grammati...
    method ConvertToOrdinal (line 31) | public string ConvertToOrdinal(int number) =>
    method ConvertToOrdinal (line 35) | public abstract string ConvertToOrdinal(int number, GrammaticalGender ...
    method ConvertToOrdinal (line 38) | public string ConvertToOrdinal(int number, WordForm wordForm) =>
    method ConvertToOrdinal (line 42) | public virtual string ConvertToOrdinal(int number, GrammaticalGender g...
    method ConvertToTuple (line 46) | public virtual string ConvertToTuple(int number) =>

FILE: src/Humanizer/Localisation/NumberToWords/GenderlessNumberToWordsConverter.cs
  class GenderlessNumberToWordsConverter (line 3) | abstract class GenderlessNumberToWordsConverter : INumberToWordsConverter
    method Convert (line 6) | public abstract string Convert(long number);
    method Convert (line 8) | public string Convert(long number, WordForm wordForm) =>
    method Convert (line 11) | public virtual string Convert(long number, bool addAnd) =>
    method Convert (line 14) | public string Convert(long number, bool addAnd, WordForm wordForm) =>
    method Convert (line 17) | public virtual string Convert(long number, GrammaticalGender gender, b...
    method Convert (line 20) | public virtual string Convert(long number, WordForm wordForm, Grammati...
    method ConvertToOrdinal (line 23) | public abstract string ConvertToOrdinal(int number);
    method ConvertToOrdinal (line 25) | public string ConvertToOrdinal(int number, GrammaticalGender gender) =>
    method ConvertToOrdinal (line 28) | public virtual string ConvertToOrdinal(int number, WordForm wordForm) =>
    method ConvertToOrdinal (line 31) | public virtual string ConvertToOrdinal(int number, GrammaticalGender g...
    method ConvertToTuple (line 34) | public virtual string ConvertToTuple(int number) =>

FILE: src/Humanizer/Localisation/NumberToWords/GermanNumberToWordsConverterBase.cs
  class GermanNumberToWordsConverterBase (line 3) | abstract class GermanNumberToWordsConverterBase : GenderedNumberToWordsC...
    method Convert (line 17) | public override string Convert(long number, GrammaticalGender gender, ...
    method ConvertToOrdinal (line 71) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method CollectParts (line 105) | void CollectParts(List<string> parts, ref long number, long divisor, b...
    method CollectOrdinalParts (line 118) | void CollectOrdinalParts(List<string> parts, ref int number, int divis...
    method Part (line 128) | string Part(string pluralFormat, string singular, long number)
    method NoRestIndex (line 138) | static int NoRestIndex(int number) =>
    method GetEndingForGender (line 141) | static string GetEndingForGender(GrammaticalGender gender) =>
    method GetTens (line 150) | protected virtual string GetTens(long tens) =>

FILE: src/Humanizer/Localisation/NumberToWords/GermanSwissLiechtensteinNumberToWordsConverter.cs
  class GermanSwissLiechtensteinNumberToWordsConverter (line 3) | class GermanSwissLiechtensteinNumberToWordsConverter : GermanNumberToWor...
    method GetTens (line 5) | protected override string GetTens(long tens)

FILE: src/Humanizer/Localisation/NumberToWords/GreekNumberToWordsConverter.cs
  class GreekNumberToWordsConverter (line 3) | class GreekNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 103) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 106) | public override string ConvertToOrdinal(int number)
    method GetOneDigitOrdinal (line 132) | static string GetOneDigitOrdinal(int number)
    method GetTwoDigitOrdinal (line 142) | static string GetTwoDigitOrdinal(int number)
    method GetThreeDigitOrdinal (line 169) | static string GetThreeDigitOrdinal(int number)
    method GetFourDigitOrdinal (line 191) | static string GetFourDigitOrdinal(int number)
    method ConvertImpl (line 218) | string ConvertImpl(long number, bool returnPluralized)
    method ConvertIntB13 (line 253) | static string ConvertIntB13(long number, bool returnPluralized) =>
    method ConvertIntBH (line 256) | string ConvertIntBH(long number, bool returnPluralized)
    method ConvertIntBT (line 274) | string ConvertIntBT(long number, bool returnPluralized)
    method ConvertIntBM (line 300) | string ConvertIntBM(long number)
    method ConvertIntBB (line 322) | string ConvertIntBB(long number)
    method ConvertIntBTR (line 344) | string ConvertIntBTR(long number)

FILE: src/Humanizer/Localisation/NumberToWords/HebrewNumberToWordsConverter.cs
  class HebrewNumberToWordsConverter (line 3) | class HebrewNumberToWordsConverter(CultureInfo culture) :
    class DescriptionAttribute (line 10) | [AttributeUsage(AttributeTargets.Field)]
    type Group (line 17) | enum Group
    method Convert (line 29) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 117) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method ToBigNumber (line 120) | void ToBigNumber(int number, Group group, List<string> parts)
    method ToThousands (line 138) | void ToThousands(int number, List<string> parts)
    method ToHundreds (line 164) | static void ToHundreds(int number, List<string> parts)

FILE: src/Humanizer/Localisation/NumberToWords/HungarianNumberToWordsConverter.cs
  class HungarianNumberToWordsConverter (line 3) | class HungarianNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 39) | public override string Convert(long number) => ConvertInternal(number,...
    method ConvertToOrdinal (line 41) | public override string ConvertToOrdinal(int number) => ConvertInternal...
    method ConvertInternal (line 43) | private static string ConvertInternal(long number, bool isOrdinal)
    method GetOneThousandPart (line 89) | static string GetOneThousandPart(ref long number, bool isOrdinal)
    method CollectParts (line 99) | private static void CollectParts(List<string> parts, ref long number, ...
    method GetUnderAThousandPart (line 115) | private static string GetUnderAThousandPart(long number, bool isOrdina...
    method GetOrdinalOnes (line 154) | private static string GetOrdinalOnes(long number, bool lessThanTen)
    method ConvertToTuple (line 164) | public override string ConvertToTuple(int number) =>

FILE: src/Humanizer/Localisation/NumberToWords/INumberToWordsConverter.cs
  type INumberToWordsConverter (line 6) | public interface INumberToWordsConverter
    method Convert (line 11) | string Convert(long number);
    method Convert (line 16) | string Convert(long number, WordForm wordForm);
    method Convert (line 22) | string Convert(long number, bool addAnd);
    method Convert (line 27) | string Convert(long number, bool addAnd, WordForm wordForm);
    method Convert (line 32) | string Convert(long number, GrammaticalGender gender, bool addAnd = tr...
    method Convert (line 37) | string Convert(long number, WordForm wordForm, GrammaticalGender gende...
    method ConvertToOrdinal (line 42) | string ConvertToOrdinal(int number);
    method ConvertToOrdinal (line 47) | string ConvertToOrdinal(int number, WordForm wordForm);
    method ConvertToOrdinal (line 52) | string ConvertToOrdinal(int number, GrammaticalGender gender);
    method ConvertToOrdinal (line 57) | string ConvertToOrdinal(int number, GrammaticalGender gender, WordForm...
    method ConvertToTuple (line 62) | string ConvertToTuple(int number);

FILE: src/Humanizer/Localisation/NumberToWords/IcelandicNumberToWordsConverter.cs
  class IcelandicNumberToWordsConverter (line 3) | class IcelandicNumberToWordsConverter : GenderedNumberToWordsConverter
    class Fact (line 14) | class Fact
    method IsAndSplitNeeded (line 107) | static bool IsAndSplitNeeded(int number) =>
    method GetOrdinalEnding (line 110) | static string GetOrdinalEnding(GrammaticalGender gender) =>
    method GetUnits (line 113) | static void GetUnits(List<string?> builder, long number, GrammaticalGe...
    method CollectOrdinalParts (line 132) | static void CollectOrdinalParts(List<string?> builder, int threeDigitP...
    method CollectOrdinalPartsUnderAHundred (line 202) | static string? CollectOrdinalPartsUnderAHundred(int number, Grammatica...
    method CollectParts (line 228) | static void CollectParts(List<string?> parts, ref long number, ref boo...
    method CollectPart (line 247) | static void CollectPart(List<string?> parts, long number, Fact rule)
    method CollectPartUnderOneThousand (line 260) | static void CollectPartUnderOneThousand(List<string?> builder, long nu...
    method CollectOrdinal (line 303) | static void CollectOrdinal(List<string?> parts, ref int number, ref bo...
    method Convert (line 342) | public override string Convert(long number, GrammaticalGender gender, ...
    method ConvertToOrdinal (line 377) | public override string ConvertToOrdinal(int number, GrammaticalGender ...

FILE: src/Humanizer/Localisation/NumberToWords/IndianNumberToWordsConverter.cs
  class IndianNumberToWordsConverter (line 3) | class IndianNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 18) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 22) | public override string ConvertToOrdinal(int number)
    method NumberToText (line 29) | static string NumberToText(long number)

FILE: src/Humanizer/Localisation/NumberToWords/Italian/ItalianCardinalNumberCruncher.cs
  class ItalianCardinalNumberCruncher (line 3) | class ItalianCardinalNumberCruncher(int number, GrammaticalGender gender)
    method Convert (line 5) | public string Convert()
    method SplitEveryThreeDigits (line 41) | static List<int> SplitEveryThreeDigits(int number)
    method GetNextPartConverter (line 63) | Func<int, string>? GetNextPartConverter()
    method ThreeDigitSetConverter (line 106) | static string ThreeDigitSetConverter(int number, bool thisIsLastSet = ...
    method UnitsConverter (line 164) | string UnitsConverter(int number)
    method ThousandsConverter (line 180) | static string ThousandsConverter(int number)
    method MillionsConverter (line 200) | static string MillionsConverter(int number)
    method BillionsConverter (line 220) | static string BillionsConverter(int number)
    type ThreeDigitSets (line 301) | protected enum ThreeDigitSets

FILE: src/Humanizer/Localisation/NumberToWords/Italian/ItalianOrdinalNumberCruncher.cs
  class ItalianOrdinalNumberCruncher (line 3) | class ItalianOrdinalNumberCruncher(int number, GrammaticalGender gender)
    method Convert (line 5) | public string Convert()

FILE: src/Humanizer/Localisation/NumberToWords/ItalianNumberToWordsConverter.cs
  class ItalianNumberToWordsConverter (line 3) | class ItalianNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 5) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 24) | public override string ConvertToOrdinal(int number, GrammaticalGender ...

FILE: src/Humanizer/Localisation/NumberToWords/JapaneseNumberToWordsConverter.cs
  class JapaneseNumberToWordsConverter (line 3) | class JapaneseNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 14) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 17) | public override string ConvertToOrdinal(int number) =>
    method ConvertImpl (line 20) | static string ConvertImpl(long number, bool isOrdinal)

FILE: src/Humanizer/Localisation/NumberToWords/KoreanNumberToWordsConverter.cs
  class KoreanNumberToWordsConverter (line 3) | class KoreanNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 73) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 76) | public override string ConvertToOrdinal(int number) =>
    method ConvertImpl (line 79) | static string ConvertImpl(long number, bool isOrdinal)

FILE: src/Humanizer/Localisation/NumberToWords/LatvianNumberToWordsConverter.cs
  class LatvianNumberToWordsConverter (line 3) | class LatvianNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 10) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 87) | public override string ConvertToOrdinal(int input, GrammaticalGender g...
    method GetOrdinalEndingForGender (line 187) | static string GetOrdinalEndingForGender(GrammaticalGender gender) =>
    method GetCardinalEndingForGender (line 195) | static string GetCardinalEndingForGender(GrammaticalGender gender, lon...

FILE: src/Humanizer/Localisation/NumberToWords/LithuanianNumberToWordsConverter.cs
  class LithuanianNumberToWordsConverter (line 3) | class LithuanianNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 13) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 35) | public override string ConvertToOrdinal(int input, GrammaticalGender g...
    method HandleNegative (line 54) | static void HandleNegative(List<string> parts, ref long number)
    method CollectParts (line 63) | static void CollectParts(List<string> parts, ref long number, long div...
    method CollectOrdinalParts (line 82) | static void CollectOrdinalParts(List<string> parts, ref long number, l...
    method CollectPartsUnderOneThousand (line 101) | static void CollectPartsUnderOneThousand(List<string> parts, long numb...
    method CollectOrdinalPartsUnderOneThousand (line 123) | static void CollectOrdinalPartsUnderOneThousand(List<string> parts, lo...
    method ChooseForm (line 158) | static string ChooseForm(long number, string[] forms) =>
    method ChooseCardinalOrOrdinalForm (line 161) | static string ChooseCardinalOrOrdinalForm(long number, string ordinalF...
    method GetFormIndex (line 172) | static int GetFormIndex(long number)
    method GetCardinalNumberForGender (line 184) | static string GetCardinalNumberForGender(string number, GrammaticalGen...
    method GetOrdinalEndingForGender (line 214) | static string GetOrdinalEndingForGender(GrammaticalGender gender) =>

FILE: src/Humanizer/Localisation/NumberToWords/LuxembourgishNumberToWordsConverter.cs
  class LuxembourgishNumberToWordsConverter (line 3) | class LuxembourgishNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 17) | public override string Convert(long number, GrammaticalGender gender, ...
    method Convert (line 20) | public override string Convert(long number, WordForm wordForm, Grammat...
    method ConvertToOrdinal (line 84) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method CollectParts (line 118) | private void CollectParts(List<string> parts, ref long number, long di...
    method CollectOrdinalParts (line 133) | private void CollectOrdinalParts(List<string> parts, ref int number, i...
    method Part (line 145) | private string Part(string pluralFormat, string singular, long number,...
    method NoRestIndex (line 154) | private static int NoRestIndex(int number) =>
    method GetEndingForGender (line 157) | private static string GetEndingForGender(GrammaticalGender gender) =>
    method GetPartWithEifelerRule (line 166) | private string GetPartWithEifelerRule(string pluralFormat, long number...

FILE: src/Humanizer/Localisation/NumberToWords/MalteseNumberToWordsConvertor.cs
  class MalteseNumberToWordsConvertor (line 3) | class MalteseNumberToWordsConvertor : GenderedNumberToWordsConverter
    method Convert (line 34) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 64) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method GetTens (line 92) | static string GetTens(long value, bool usePrefixMap, bool usePrefixMap...
    method GetHundreds (line 129) | static string GetHundreds(long value, bool usePrefixMap, bool usePrefi...
    method GetThousands (line 161) | static string GetThousands(long value, GrammaticalGender gender)
    method GetMillions (line 184) | static string GetMillions(long value, GrammaticalGender gender)
    method GetPrefixText (line 206) | static string GetPrefixText(long thousands, long tensInThousands, stri...

FILE: src/Humanizer/Localisation/NumberToWords/NorwegianBokmalNumberToWordsConverter.cs
  class NorwegianBokmalNumberToWordsConverter (line 3) | class NorwegianBokmalNumberToWordsConverter : GenderedNumberToWordsConve...
    method Convert (line 39) | public override string Convert(long number, GrammaticalGender gender, ...
    method ConvertToOrdinal (line 49) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method Convert (line 52) | string Convert(int number, bool isOrdinal, GrammaticalGender gender)
    method GetUnitValue (line 158) | static string GetUnitValue(int number, bool isOrdinal)
    method ExceptionNumbersToWords (line 179) | static bool ExceptionNumbersToWords(int number, [NotNullWhen(true)] ou...
    method Part (line 182) | string Part(string pluralFormat, string singular, int number, bool pos...

FILE: src/Humanizer/Localisation/NumberToWords/PolishNumberToWordsConverter.cs
  class PolishNumberToWordsConverter (line 3) | class PolishNumberToWordsConverter(CultureInfo culture) :
    method Convert (line 36) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 49) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method CollectParts (line 52) | static void CollectParts(List<string> parts, long input, GrammaticalGe...
    method CollectPartsUnderThousand (line 95) | static void CollectPartsUnderThousand(List<string> parts, int number, ...
    method GetPowerOfThousandNameForm (line 137) | static string GetPowerOfThousandNameForm(int multiplier, int power)

FILE: src/Humanizer/Localisation/NumberToWords/PortugueseNumberToWordsConverter.cs
  class PortugueseNumberToWordsConverter (line 3) | class PortugueseNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 13) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 102) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method ApplyGender (line 159) | static string ApplyGender(string toWords, GrammaticalGender gender)
    method ApplyOrdinalGender (line 184) | static string ApplyOrdinalGender(string toWords, GrammaticalGender gen...

FILE: src/Humanizer/Localisation/NumberToWords/Romanian/RomanianCardinalNumberConverter.cs
  class RomanianCardinalNumberConverter (line 3) | class RomanianCardinalNumberConverter
    type ThreeDigitSets (line 66) | enum ThreeDigitSets
    method Convert (line 94) | public string Convert(int number, GrammaticalGender gender)
    method SplitEveryThreeDigits (line 143) | static List<int> SplitEveryThreeDigits(int number)
    method GetNextPartConverter (line 165) | Func<int, GrammaticalGender, string>? GetNextPartConverter(ThreeDigitS...
    method ThreeDigitSetConverter (line 182) | string ThreeDigitSetConverter(int number, GrammaticalGender gender)
    method GetPartByGender (line 227) | static string GetPartByGender(string multiGenderPart, GrammaticalGende...
    method IsAbove20 (line 248) | static bool IsAbove20(int number) =>
    method HundredsToText (line 251) | string HundredsToText(int hundreds)
    method UnitsConverter (line 272) | string UnitsConverter(int number, GrammaticalGender gender) =>
    method ThousandsConverter (line 281) | string ThousandsConverter(int number, GrammaticalGender gender)
    method MillionsConverter (line 314) | string MillionsConverter(int number, GrammaticalGender gender)
    method BillionsConverter (line 335) | string BillionsConverter(int number, GrammaticalGender gender)

FILE: src/Humanizer/Localisation/NumberToWords/Romanian/RomanianOrdinalNumberConverter.cs
  class RomanianOrdinalNumberConverter (line 3) | class RomanianOrdinalNumberConverter
    method Convert (line 44) | public string Convert(int number, GrammaticalGender gender)
    method GetPartByGender (line 135) | static string GetPartByGender(string multiGenderPart, GrammaticalGende...

FILE: src/Humanizer/Localisation/NumberToWords/RomanianNumberToWordsConverter.cs
  class RomanianNumberToWordsConverter (line 3) | class RomanianNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 5) | public override string Convert(long number, GrammaticalGender gender, ...
    method ConvertToOrdinal (line 16) | public override string ConvertToOrdinal(int number, GrammaticalGender ...

FILE: src/Humanizer/Localisation/NumberToWords/RussianNumberToWordsConverter.cs
  class RussianNumberToWordsConverter (line 3) | class RussianNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 13) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 42) | public override string ConvertToOrdinal(int input, GrammaticalGender g...
    method CollectPartsUnderOneThousand (line 100) | static void CollectPartsUnderOneThousand(List<string> parts, long numb...
    method GetPrefix (line 137) | static string GetPrefix(long number)
    method CollectParts (line 170) | static void CollectParts(List<string> parts, ref long number, long div...
    method CollectOrdinalParts (line 183) | static void CollectOrdinalParts(List<string> parts, ref long number, i...
    method GetIndex (line 210) | static int GetIndex(RussianGrammaticalNumber number)
    method ChooseOneForGrammaticalNumber (line 225) | static string ChooseOneForGrammaticalNumber(long number, string[] form...
    method GetEndingForGender (line 228) | static string GetEndingForGender(GrammaticalGender gender, long number)

FILE: src/Humanizer/Localisation/NumberToWords/SerbianCyrlNumberToWordsConverter.cs
  class SerbianCyrlNumberToWordsConverter (line 3) | class SerbianCyrlNumberToWordsConverter(CultureInfo culture) :
    method Convert (line 9) | public override string Convert(long input)
    method ConvertToOrdinal (line 103) | public override string ConvertToOrdinal(int number) =>
    method Part (line 107) | string Part(string singular, string dual, string trialQuadral, string ...

FILE: src/Humanizer/Localisation/NumberToWords/SerbianNumberToWordsConverter.cs
  class SerbianNumberToWordsConverter (line 3) | class SerbianNumberToWordsConverter(CultureInfo culture) :
    method Convert (line 9) | public override string Convert(long input)
    method ConvertToOrdinal (line 101) | public override string ConvertToOrdinal(int number) =>
    method Part (line 105) | string Part(string singular, string dual, string trialQuadral, string ...

FILE: src/Humanizer/Localisation/NumberToWords/SlovenianNumberToWordsConverter.cs
  class SlovenianNumberToWordsConverter (line 3) | class SlovenianNumberToWordsConverter(CultureInfo culture) :
    method Convert (line 9) | public override string Convert(long input)
    method ConvertToOrdinal (line 101) | public override string ConvertToOrdinal(int number) =>
    method Part (line 104) | string Part(string singular, string dual, string trialQuadral, string ...

FILE: src/Humanizer/Localisation/NumberToWords/SpanishNumberToWordsConverter.cs
  class SpanishNumberToWordsConverter (line 3) | class SpanishNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 53) | public override string Convert(long input, GrammaticalGender gender, b...
    method Convert (line 56) | public override string Convert(long number, WordForm wordForm, Grammat...
    method ConvertToOrdinal (line 85) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method ConvertToOrdinal (line 88) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method ConvertToTuple (line 122) | public override string ConvertToTuple(int number)
    method BuildWord (line 134) | static string BuildWord(List<string> wordParts)
    method ConvertHundreds (line 140) | static string ConvertHundreds(in long inputNumber, out long remainder,...
    method ConvertHundredths (line 155) | static string ConvertHundredths(in int number, out int remainder, Gram...
    method ConvertMappedOrdinalNumber (line 158) | static string ConvertMappedOrdinalNumber(
    method ConvertOrdinalUnits (line 178) | static string ConvertOrdinalUnits(in int number, GrammaticalGender gen...
    method ConvertTenths (line 202) | static string ConvertTenths(in int number, out int remainder, Grammati...
    method ConvertThousandths (line 205) | static string ConvertThousandths(in int number, out int remainder, Gra...
    method ConvertUnits (line 208) | static string ConvertUnits(long inputNumber, GrammaticalGender gender,...
    method GetGenderedHundredsMap (line 232) | static List<string> GetGenderedHundredsMap(GrammaticalGender gender)
    method GetGenderedOne (line 246) | static string GetGenderedOne(GrammaticalGender gender, WordForm wordFo...
    method GetGenderedTwentyOne (line 256) | static string GetGenderedTwentyOne(GrammaticalGender gender, WordForm ...
    method HasOrdinalAbbreviation (line 266) | static bool HasOrdinalAbbreviation(int number, WordForm wordForm) =>
    method IsRoundBillion (line 269) | static bool IsRoundBillion(int number) =>
    method IsRoundMillion (line 272) | static bool IsRoundMillion(int number) =>
    method PluralizeGreaterThanMillion (line 275) | static string PluralizeGreaterThanMillion(string singularWord) =>
    method ConvertGreaterThanMillion (line 285) | string ConvertGreaterThanMillion(in long inputNumber, out long remainder)
    method ConvertRoundBillionths (line 310) | string ConvertRoundBillionths(int number, GrammaticalGender gender)
    method ConvertTensAndHunderdsOfThousandths (line 318) | string ConvertTensAndHunderdsOfThousandths(in int number, out int rema...
    method ConvertThousands (line 355) | string ConvertThousands(in long inputNumber, out long remainder, Gramm...

FILE: src/Humanizer/Localisation/NumberToWords/SwedishNumberToWordsConverter.cs
  class SwedishNumberToWordsConverter (line 3) | class SwedishNumberToWordsConverter : GenderlessNumberToWordsConverter
    class Fact (line 8) | class Fact
    method Convert (line 56) | public override string Convert(long input, GrammaticalGender gender, b...
    method Convert (line 140) | public override string Convert(long input) =>
    method ConvertToOrdinal (line 168) | public override string ConvertToOrdinal(int number)

FILE: src/Humanizer/Localisation/NumberToWords/TamilNumberToWordsConverter.cs
  class TamilNumberToWordsConverter (line 3) | class TamilNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 40) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 43) | public override string ConvertToOrdinal(int number) =>
    method ConvertImpl (line 46) | string ConvertImpl(long number, bool isOrdinal)
    method GetUnitValue (line 129) | static string GetUnitValue(long number, bool isOrdinal)
    method GetTensValue (line 144) | static string GetTensValue(long number, bool isOrdinal, bool isThousan...
    method GetLakhsValue (line 211) | static string GetLakhsValue(ref long number, bool isOrdinal)
    method GetCroresValue (line 242) | static string GetCroresValue(ref long number)
    method GetThousandsValue (line 294) | static string GetThousandsValue(ref long number)
    method GetHundredsValue (line 330) | static string GetHundredsValue(ref long number)
    method RemoveOnePrefix (line 358) | static string RemoveOnePrefix(string toWords)
    method ExceptionNumbersToWords (line 369) | static bool ExceptionNumbersToWords(long number, [NotNullWhen(true)] o...

FILE: src/Humanizer/Localisation/NumberToWords/ThaiNumberToWordsConverter.cs
  class ThaiNumberToWordsConverter (line 3) | class ThaiNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 5) | public override string Convert(long numbermoney)
    method ConvertToOrdinal (line 110) | public override string ConvertToOrdinal(int number) =>

FILE: src/Humanizer/Localisation/NumberToWords/TurkishNumberToWordConverter.cs
  class TurkishNumberToWordConverter (line 3) | class TurkishNumberToWordConverter :
    method Convert (line 65) | public override string Convert(long input)
    method ConvertToOrdinal (line 140) | public override string ConvertToOrdinal(int number)
    method ConvertToTuple (line 168) | public override string ConvertToTuple(int number)

FILE: src/Humanizer/Localisation/NumberToWords/UkrainianNumberToWordsConverter.cs
  class UkrainianNumberToWordsConverter (line 3) | class UkrainianNumberToWordsConverter : GenderedNumberToWordsConverter
    method Convert (line 13) | public override string Convert(long input, GrammaticalGender gender, b...
    method ConvertToOrdinal (line 42) | public override string ConvertToOrdinal(int number, GrammaticalGender ...
    method CollectPartsUnderOneThousand (line 99) | static void CollectPartsUnderOneThousand(List<string> parts, long numb...
    method GetPrefix (line 136) | static string GetPrefix(int number)
    method CollectParts (line 169) | static void CollectParts(List<string> parts, ref long number, long div...
    method CollectOrdinalParts (line 182) | static void CollectOrdinalParts(List<string> parts, ref int number, in...
    method GetIndex (line 209) | static int GetIndex(RussianGrammaticalNumber number)
    method ChooseOneForGrammaticalNumber (line 224) | static string ChooseOneForGrammaticalNumber(long number, string[] form...
    method GetEndingForGender (line 227) | static string GetEndingForGender(GrammaticalGender gender, int number)

FILE: src/Humanizer/Localisation/NumberToWords/UzbekCyrlNumberToWordConverter.cs
  class UzbekCyrlNumberToWordConverter (line 3) | class UzbekCyrlNumberToWordConverter : GenderlessNumberToWordsConverter
    method Convert (line 10) | public override string Convert(long input)
    method Convert (line 26) | static string Convert(int number, bool checkForHundredRule)
    method ConvertToOrdinal (line 82) | public override string ConvertToOrdinal(int number)

FILE: src/Humanizer/Localisation/NumberToWords/UzbekLatnNumberToWordConverter.cs
  class UzbekLatnNumberToWordConverter (line 3) | class UzbekLatnNumberToWordConverter : GenderlessNumberToWordsConverter
    method Convert (line 10) | public override string Convert(long input)
    method Convert (line 26) | static string Convert(int number, bool checkForHundredRule)
    method ConvertToOrdinal (line 82) | public override string ConvertToOrdinal(int number)

FILE: src/Humanizer/Localisation/NumberToWords/VietnameseNumberToWordsConverter.cs
  class VietnameseNumberToWordsConverter (line 3) | class VietnameseNumberToWordsConverter : GenderlessNumberToWordsConverter
    method Convert (line 13) | public override string Convert(long number) =>
    method ConvertToOrdinal (line 18) | public override string ConvertToOrdinal(int number) =>
    method ConvertToOrdinalImpl (line 21) | string ConvertToOrdinalImpl(int number) =>
    method ConvertImpl (line 30) | static string ConvertImpl(long number, bool hasTens = false, bool isGr...

FILE: src/Humanizer/Localisation/Ordinalizers/ArmenianOrdinalizer.cs
  class ArmenianOrdinalizer (line 3) | class ArmenianOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString)

FILE: src/Humanizer/Localisation/Ordinalizers/AzerbaijaniOrdinalizer.cs
  class AzerbaijaniOrdinalizer (line 3) | class AzerbaijaniOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>

FILE: src/Humanizer/Localisation/Ordinalizers/CatalanOrdinalizer.cs
  class CatalanOrdinalizer (line 3) | class CatalanOrdinalizer() : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...
    method Convert (line 11) | public override string Convert(int number, string numberString, Gramma...

FILE: src/Humanizer/Localisation/Ordinalizers/DefaultOrdinalizer.cs
  class DefaultOrdinalizer (line 3) | class DefaultOrdinalizer : IOrdinalizer
    method Convert (line 5) | public virtual string Convert(int number, string numberString, Grammat...
    method Convert (line 8) | public virtual string Convert(int number, string numberString) =>
    method Convert (line 11) | public virtual string Convert(int number, string numberString, WordFor...
    method Convert (line 14) | public virtual string Convert(int number, string numberString, Grammat...

FILE: src/Humanizer/Localisation/Ordinalizers/DutchOrdinalizer.cs
  class DutchOrdinalizer (line 3) | class DutchOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...

FILE: src/Humanizer/Localisation/Ordinalizers/EnglishOrdinalizer.cs
  class EnglishOrdinalizer (line 3) | class EnglishOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString)

FILE: src/Humanizer/Localisation/Ordinalizers/FrenchOrdinalizer.cs
  class FrenchOrdinalizer (line 3) | class FrenchOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...

FILE: src/Humanizer/Localisation/Ordinalizers/GermanOrdinalizer.cs
  class GermanOrdinalizer (line 3) | class GermanOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>

FILE: src/Humanizer/Localisation/Ordinalizers/HungarianOrdinalizer.cs
  class HungarianOrdinalizer (line 3) | class HungarianOrdinalizer : DefaultOrdinalizer
    method Convert (line 6) | public override string Convert(int number, string numberString) => num...

FILE: src/Humanizer/Localisation/Ordinalizers/IOrdinalizer.cs
  type IOrdinalizer (line 6) | public interface IOrdinalizer
    method Convert (line 11) | string Convert(int number, string numberString);
    method Convert (line 16) | string Convert(int number, string numberString, WordForm wordForm);
    method Convert (line 21) | string Convert(int number, string numberString, GrammaticalGender gend...
    method Convert (line 26) | string Convert(int number, string numberString, GrammaticalGender gend...

FILE: src/Humanizer/Localisation/Ordinalizers/IcelandicOrdinalizer.cs
  class IcelandicOrdinalizer (line 3) | class IcelandicOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>

FILE: src/Humanizer/Localisation/Ordinalizers/ItalianOrdinalizer.cs
  class ItalianOrdinalizer (line 3) | class ItalianOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...

FILE: src/Humanizer/Localisation/Ordinalizers/LuxembourgishOrdinalizer.cs
  class LuxembourgishOrdinalizer (line 3) | class LuxembourgishOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>

FILE: src/Humanizer/Localisation/Ordinalizers/PortugueseOrdinalizer.cs
  class PortugueseOrdinalizer (line 3) | class PortugueseOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...

FILE: src/Humanizer/Localisation/Ordinalizers/RomanianOrdinalizer.cs
  class RomanianOrdinalizer (line 3) | class RomanianOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...

FILE: src/Humanizer/Localisation/Ordinalizers/RussianOrdinalizer.cs
  class RussianOrdinalizer (line 3) | class RussianOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...

FILE: src/Humanizer/Localisation/Ordinalizers/SpanishOrdinalizer.cs
  class SpanishOrdinalizer (line 3) | class SpanishOrdinalizer(CultureInfo culture) : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...
    method Convert (line 11) | public override string Convert(int number, string numberString, Gramma...
    method GetNumberString (line 32) | string GetNumberString(int number) =>
    method GetWordForm (line 35) | static string GetWordForm(int number, WordForm wordForm) =>

FILE: src/Humanizer/Localisation/Ordinalizers/TurkishOrdinalizer.cs
  class TurkishOrdinalizer (line 3) | class TurkishOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>

FILE: src/Humanizer/Localisation/Ordinalizers/UkrainianOrdinalizer.cs
  class UkrainianOrdinalizer (line 3) | class UkrainianOrdinalizer : DefaultOrdinalizer
    method Convert (line 5) | public override string Convert(int number, string numberString) =>
    method Convert (line 8) | public override string Convert(int number, string numberString, Gramma...

FILE: src/Humanizer/Localisation/ResourceKeys.Common.cs
  class ResourceKeys (line 3) | public partial class ResourceKeys
    method ValidateRange (line 5) | static void ValidateRange(int count)

FILE: src/Humanizer/Localisation/ResourceKeys.DateHumanize.cs
  class ResourceKeys (line 3) | public partial class ResourceKeys
    class DateHumanize (line 8) | public static class DateHumanize
      method GetResourceKey (line 27) | public static string GetResourceKey(TimeUnit timeUnit, Tense timeUni...

FILE: src/Humanizer/Localisation/ResourceKeys.TimeSpanHumanize.cs
  class ResourceKeys (line 3) | public partial class ResourceKeys
    class TimeSpanHumanize (line 9) | public static class TimeSpanHumanize
      method GetResourceKey (line 18) | public static string GetResourceKey(TimeUnit unit, int count = 1, bo...

FILE: src/Humanizer/Localisation/ResourceKeys.TimeUnitSymbol.cs
  class ResourceKeys (line 3) | public partial class ResourceKeys
    class TimeUnitSymbol (line 8) | public static class TimeUnitSymbol
      method GetResourceKey (line 16) | public static string GetResourceKey(TimeUnit unit) =>

FILE: src/Humanizer/Localisation/Resources.cs
  class Resources (line 8) | public static class Resources
    method GetResource (line 19) | public static string GetResource(string resourceKey, CultureInfo? cult...
    method TryGetResource (line 59) | public static bool TryGetResource(string resourceKey, CultureInfo? cul...

FILE: src/Humanizer/Localisation/Tense.cs
  type Tense (line 6) | public enum Tense

FILE: src/Humanizer/Localisation/TimeToClockNotation/BrazilianPortugueseTimeOnlyToClockNotationConverter.cs
  class BrazilianPortugueseTimeOnlyToClockNotationConverter (line 5) | class BrazilianPortugueseTimeOnlyToClockNotationConverter : ITimeOnlyToC...
    method Convert (line 7) | public string Convert(TimeOnly time, ClockNotationRounding roundToNear...

FILE: src/Humanizer/Localisation/TimeToClockNotation/CaTimeOnlyToClockNotationConverter.cs
  class CaTimeOnlyToClockNotationConverter (line 5) | class CaTimeOnlyToClockNotationConverter : ITimeOnlyToClockNotationConve...
    method Convert (line 11) | public string Convert(TimeOnly time, ClockNotationRounding roundToNear...
    method NormalizeHour (line 48) | static int NormalizeHour(TimeOnly time) =>
    method GetArticle (line 51) | static string GetArticle(TimeOnly time) =>
    method GetDayPeriod (line 54) | static string GetDayPeriod(TimeOnly time)
    method IsEarlyMorning (line 74) | static bool IsEarlyMorning(TimeOnly time) =>
    method IsMorning (line 77) | static bool IsMorning(TimeOnly time) =>
    method IsAfternoon (line 80) | static bool IsAfternoon(TimeOnly time) =>

FILE: src/Humanizer/Localisation/TimeToClockNotation/DefaultTimeOnlyToClockNotationConverter.cs
  class DefaultTimeOnlyToClockNotationConverter (line 5) | class DefaultTimeOnlyToClockNotationConverter : ITimeOnlyToClockNotation...
    method Convert (line 7) | public string Convert(TimeOnly time, ClockNotationRounding roundToNear...

FILE: src/Humanizer/Localisation/TimeToClockNotation/EsTimeOnlyToClockNotationConverter.cs
  class EsTimeOnlyToClockNotationConverter (line 5) | class EsTimeOnlyToClockNotationConverter : ITimeOnlyToClockNotationConve...
    method Convert (line 11) | public string Convert(TimeOnly time, ClockNotationRounding roundToNear...
    method NormalizeHour (line 48) | static int NormalizeHour(TimeOnly time) =>
    method GetArticle (line 51) | static string GetArticle(TimeOnly time) =>
    method GetDayPeriod (line 54) | static string GetDayPeriod(TimeOnly time)
    method IsEarlyMorning (line 74) | static bool IsEarlyMorning(TimeOnly time) =>
    method IsMorning (line 77) | static bool IsMorning(TimeOnly time) =>
    method IsAfternoon (line 80) | static bool IsAfternoon(TimeOnly time) =>

FILE: src/Humanizer/Localisation/TimeToClockNotation/FrTimeOnlyToClockNotationConverter.cs
  class FrTimeOnlyToClockNotationConverter (line 5) | class FrTimeOnlyToClockNotationConverter : ITimeOnlyToClockNotationConve...
    method Convert (line 7) | public string Convert(TimeOnly time, ClockNotationRounding roundToNear...

FILE: src/Humanizer/Localisation/TimeToClockNotation/GermanTimeOnlyToClockNotationConverter.cs
  class GermanTimeOnlyToClockNotationConverter (line 5) | class GermanTimeOnlyToClockNotationConverter : ITimeOnlyToClockNotationC...
    method Convert (line 7) | public string Convert(TimeOnly time, ClockNotationRounding roundToNear...

FILE: src/Humanizer/Localisation/TimeToClockNotation/ITimeOnlyToClockNotationConverter.cs
  type ITimeOnlyToClockNotationConverter (line 8) | public interface ITimeOnlyToClockNotationConverter
    method Convert (line 13) | string Convert(TimeOnly time, ClockNotationRounding roundToNearestFive);

FILE: src/Humanizer/Localisation/TimeToClockNotation/LbTimeOnlyToClockNotationConverter.cs
  class LbTimeOnlyToClockNotationConverter (line 5) | class LbTimeOnlyToClockNotationConverter : ITimeOnlyToClockNotationConve...
    method Convert (line 7) | public string Convert(TimeOnly time, ClockNotationRounding roundToNear...
    method GetRoundedTime (line 39) | private static TimeOnly GetRoundedTime(TimeOnly time)
    method GetMinuteExpression (line 47) | private static string GetMinuteExpression(int minute, string nextWord ...
    method GetHourExpression (line 50) | private static string GetHourExpression(int hour, string nextWord = "")
    method GetFormattedExpression (line 58) | private static string GetFormattedExpression(int number, string nextWo...

FILE: src/Humanizer/Localisation/TimeToClockNotation/PortugueseTimeOnlyToClockNotationConverter.cs
  class PortugueseTimeOnlyToClockNotationConverter (line 5) | class PortugueseTimeOnlyToClockNotationConverter : ITimeOnlyToClockNotat...
    method Convert (line 7) | public string Convert(TimeOnly time, ClockNotationRounding roundToNear...

FILE: src/Humanizer/Localisation/TimeUnit.cs
  type TimeUnit (line 3) | public enum TimeUnit

FILE: src/Humanizer/Localisation/WordsToNumber/DefaultWordsToNumberConverter.cs
  class DefaultWordsToNumberConverter (line 3) | internal class DefaultWordsToNumberConverter(CultureInfo culture) : Gend...
    method Convert (line 7) | public override int Convert(string words)
    method TryConvert (line 13) | public override bool TryConvert(string words, out int parsedValue) => ...
    method TryConvert (line 15) | public override bool TryConvert(string words, out int parsedValue, out...

FILE: src/Humanizer/Localisation/WordsToNumber/EnglishWordsToNumberConverter.cs
  class EnglishWordsToNumberConverter (line 3) | internal partial class EnglishWordsToNumberConverter : GenderlessWordsTo...
    method OrdinalSuffixRegexGenerated (line 8) | [GeneratedRegex(OrdinalSuffixPattern)]
    method OrdinalSuffixRegex (line 11) | private static Regex OrdinalSuffixRegex() => OrdinalSuffixRegexGenerat...
    method OrdinalSuffixRegex (line 15) | private static Regex OrdinalSuffixRegex() => OrdinalSuffixRegexField;
    method Convert (line 41) | public override int Convert(string words)
    method TryConvert (line 51) | public override bool TryConvert(string words, out int result) => TryCo...
    method TryConvert (line 53) | public override bool TryConvert(string words, out int parsedValue, out...
    method TryConvertWordsToNumber (line 99) | private static bool TryConvertWordsToNumber(string words, out int resu...

FILE: src/Humanizer/Localisation/WordsToNumber/GenderlessWordsToNumberConverter.cs
  class GenderlessWordsToNumberConverter (line 3) | internal abstract class GenderlessWordsToNumberConverter : IWordsToNumbe...
    method Convert (line 5) | public abstract int Convert(string words);
    method TryConvert (line 6) | public abstract bool TryConvert(string words, out int parsedValue);
    method TryConvert (line 7) | public abstract bool TryConvert(string words, out int parsedValue, out...

FILE: src/Humanizer/Localisation/WordsToNumber/IWordsToNumberConverter.cs
  type IWordsToNumberConverter (line 3) | public interface IWordsToNumberConverter
    method TryConvert (line 5) | bool TryConvert(string words, out int parsedValue);
    method TryConvert (line 6) | bool TryConvert(string words, out int parsedValue, out string? unrecog...
    method Convert (line 8) | int Convert(string words);

FILE: src/Humanizer/MetricNumeralExtensions.cs
  class MetricNumeralExtensions (line 30) | public static class MetricNumeralExtensions
    method FromMetric (line 125) | public static double FromMetric(this string input)
    method ToMetric (line 149) | public static string ToMetric(this int input, MetricNumeralFormats? fo...
    method ToMetric (line 170) | public static string ToMetric(this long input, MetricNumeralFormats? f...
    method ToMetric (line 198) | public static string ToMetric(this double input, MetricNumeralFormats?...
    method CleanRepresentation (line 218) | static string CleanRepresentation(string input)
    method BuildNumber (line 238) | static double BuildNumber(string input, char last) =>
    method BuildMetricNumber (line 249) | static double BuildMetricNumber(string input, char last)
    method ReplaceNameBySymbol (line 271) | static string ReplaceNameBySymbol(string input) =>
    method BuildRepresentation (line 282) | static string BuildRepresentation(long input, MetricNumeralFormats? fo...
    method BuildMetricRepresentation (line 315) | static string BuildMetricRepresentation(long input, int scale, MetricN...
    method BuildRepresentation (line 385) | static string BuildRepresentation(double input, MetricNumeralFormats? ...
    method BuildMetricRepresentation (line 411) | static string BuildMetricRepresentation(double input, int exponent, Me...
    method GetUnitText (line 438) | static string GetUnitText(char symbol, MetricNumeralFormats? formats)
    method IsOutOfRange (line 467) | static bool IsOutOfRange(this double input)
    method IsInvalidMetricNumeral (line 485) | static bool IsInvalidMetricNumeral(this string input)
    type UnitPrefix (line 493) | struct UnitPrefix(string name, string shortScaleWord, string? longScal...

FILE: src/Humanizer/MetricNumeralFormats.cs
  type MetricNumeralFormats (line 6) | [Flags]

FILE: src/Humanizer/NoMatchFoundException.cs
  class NoMatchFoundException (line 7) | public class NoMatchFoundException : Exception
    method NoMatchFoundException (line 9) | public NoMatchFoundException()
    method NoMatchFoundException (line 13) | public NoMatchFoundException(string message)
    method NoMatchFoundException (line 18) | public NoMatchFoundException(string message, Exception inner)

FILE: src/Humanizer/NumberToNumberExtensions.cs
  class NumberToNumberExtensions (line 8) | public static class NumberToNumberExtensions
    method Tens (line 22) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Tens (line 36) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Tens (line 50) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Tens (line 64) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Tens (line 78) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Hundreds (line 93) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Hundreds (line 107) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Hundreds (line 121) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Hundreds (line 135) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Hundreds (line 149) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Thousands (line 164) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Thousands (line 178) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Thousands (line 192) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Thousands (line 206) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Thousands (line 220) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Millions (line 235) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Millions (line 249) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Millions (line 263) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Millions (line 277) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Millions (line 291) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Billions (line 309) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Billions (line 326) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Billions (line 343) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Billions (line 360) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Billions (line 377) | [MethodImpl(MethodImplOptions.AggressiveInlining)]

FILE: src/Humanizer/NumberToTimeSpanExtensions.cs
  class NumberToTimeSpanExtensions (line 14) | public static class NumberToTimeSpanExtensions
    method Milliseconds (line 27) | public static TimeSpan Milliseconds(this byte ms) =>
    method Milliseconds (line 40) | public static TimeSpan Milliseconds(this sbyte ms) =>
    method Milliseconds (line 53) | public static TimeSpan Milliseconds(this short ms) =>
    method Milliseconds (line 66) | public static TimeSpan Milliseconds(this ushort ms) =>
    method Milliseconds (line 79) | public static TimeSpan Milliseconds(this int ms) =>
    method Milliseconds (line 92) | public static TimeSpan Milliseconds(this uint ms) =>
    method Milliseconds (line 105) | public static TimeSpan Milliseconds(this long ms) =>
    method Milliseconds (line 118) | public static TimeSpan Milliseconds(this ulong ms) =>
    method Milliseconds (line 131) | public static TimeSpan Milliseconds(this double ms) =>
    method Seconds (line 144) | public static TimeSpan Seconds(this byte seconds) =>
    method Seconds (line 157) | public static TimeSpan Seconds(this sbyte seconds) =>
    method Seconds (line 170) | public static TimeSpan Seconds(this short seconds) =>
    method Seconds (line 183) | public static TimeSpan Seconds(this ushort seconds) =>
    method Seconds (line 196) | public static TimeSpan Seconds(this int seconds) =>
    method Seconds (line 209) | public static TimeSpan Seconds(this uint seconds) =>
    method Seconds (line 222) | public static TimeSpan Seconds(this long seconds) =>
    method Seconds (line 235) | public static TimeSpan Seconds(this ulong seconds) =>
    method Seconds (line 249) | public static TimeSpan Seconds(this double seconds) =>
    method Minutes (line 262) | public static TimeSpan Minutes(this byte minutes) =>
    method Minutes (line 275) | public static TimeSpan Minutes(this sbyte minutes) =>
    method Minutes (line 288) | public static TimeSpan Minutes(this short minutes) =>
    method Minutes (line 301) | public static TimeSpan Minutes(this ushort minutes) =>
    method Minutes (line 314) | public static TimeSpan Minutes(this int minutes) =>
    method Minutes (line 327) | public static TimeSpan Minutes(this uint minutes) =>
    method Minutes (line 340) | public static TimeSpan Minutes(this long minutes) =>
    method Minutes (line 353) | public static TimeSpan Minutes(this ulong minutes) =>
    method Minutes (line 367) | public static TimeSpan Minutes(this double minutes) =>
    method Hours (line 380) | public static TimeSpan Hours(this byte hours) =>
    method Hours (line 393) | public static TimeSpan Hours(this sbyte hours) =>
    method Hours (line 406) | public static TimeSpan Hours(this short hours) =>
    method Hours (line 419) | public static TimeSpan Hours(this ushort hours) =>
    method Hours (line 432) | public static TimeSpan Hours(this int hours) =>
    method Hours (line 445) | public static TimeSpan Hours(this uint hours) =>
    method Hours (line 458) | public static TimeSpan Hours(this long hours) =>
    method Hours (line 471) | public static TimeSpan Hours(this ulong hours) =>
    method Hours (line 486) | public static TimeSpan Hours(this double hours) =>
    method Days (line 499) | public static TimeSpan Days(this byte days) =>
    method Days (line 512) | public static TimeSpan Days(this sbyte days) =>
    method Days (line 525) | public static TimeSpan Days(this short days) =>
    method Days (line 538) | public static TimeSpan Days(this ushort days) =>
    method Days (line 551) | public static TimeSpan Days(this int days) =>
    method Days (line 564) | public static TimeSpan Days(this uint days) =>
    method Days (line 577) | public static TimeSpan Days(this long days) =>
    method Days (line 590) | public static TimeSpan Days(this ulong days) =>
    method Days (line 605) | public static TimeSpan Days(this double days) =>
    method Weeks (line 618) | public static TimeSpan Weeks(this byte input) =>
    method Weeks (line 631) | public static TimeSpan Weeks(this sbyte input) =>
    method Weeks (line 644) | public static TimeSpan Weeks(this short input) =>
    method Weeks (line 657) | public static TimeSpan Weeks(this ushort input) =>
    method Weeks (line 670) | public static TimeSpan Weeks(this int input) =>
    method Weeks (line 683) | public static TimeSpan Weeks(this uint input) =>
    method Weeks (line 696) | public static TimeSpan Weeks(this long input) =>
    method Weeks (line 709) | public static TimeSpan Weeks(this ulong input) =>
    method Weeks (line 728) | public static TimeSpan Weeks(this double input) =>

FILE: src/Humanizer/NumberToWordsExtension.cs
  class NumberToWordsExtension (line 6) | public static class NumberToWordsExtension
    method ToOrdinalWords (line 13) | public static string ToOrdinalWords(this int number, CultureInfo? cult...
    method ToOrdinalWords (line 30) | public static string ToOrdinalWords(this int number, WordForm wordForm...
    method ToOrdinalWords (line 41) | public static string ToOrdinalWords(this int number, GrammaticalGender...
    method ToOrdinalWords (line 61) | public static string ToOrdinalWords(this int number, GrammaticalGender...
    method ToTuple (line 69) | public static string ToTuple(this int number, CultureInfo? culture = n...
    method ToWords (line 77) | public static string ToWords(this int number, CultureInfo? culture = n...
    method ToWords (line 94) | public static string ToWords(this int number, WordForm wordForm, Cultu...
    method ToWords (line 103) | public static string ToWords(this int number, bool addAnd, CultureInfo...
    method ToWords (line 121) | public static string ToWords(this int number, bool addAnd, WordForm wo...
    method ToWords (line 142) | public static string ToWords(this int number, GrammaticalGender gender...
    method ToWords (line 161) | public static string ToWords(this int number, WordForm wordForm, Gramm...
    method ToWords (line 170) | public static string ToWords(this long number, CultureInfo? culture = ...
    method ToWords (line 188) | public static string ToWords(this long number, WordForm wordForm, Cult...
    method ToWords (line 210) | public static string ToWords(this long number, GrammaticalGender gende...
    method ToWords (line 229) | public static string ToWords(this long number, WordForm wordForm, Gram...

FILE: src/Humanizer/OnNoMatch.cs
  type OnNoMatch (line 6) | public enum OnNoMatch

FILE: src/Humanizer/OrdinalizeExtensions.cs
  class OrdinalizeExtensions (line 6) | public static class OrdinalizeExtensions
    method Ordinalize (line 12) | public static string Ordinalize(this string numberString) =>
    method Ordinalize (line 28) | public static string Ordinalize(this string numberString, WordForm wor...
    method Ordinalize (line 36) | public static string Ordinalize(this string numberString, CultureInfo ...
    method Ordinalize (line 53) | public static string Ordinalize(this string numberString, CultureInfo ...
    method Ordinalize (line 64) | public static string Ordinalize(this string numberString, GrammaticalG...
    method Ordinalize (line 83) | public static string Ordinalize(this string numberString, GrammaticalG...
    method Ordinalize (line 95) | public static string Ordinalize(this string numberString, GrammaticalG...
    method Ordinalize (line 115) | public static string Ordinalize(this string numberString, GrammaticalG...
    method Ordinalize (line 122) | public static string Ordinalize(this int number) =>
    method Ordinalize (line 138) | public static string Ordinalize(this int number, WordForm wordForm) =>
    method Ordinalize (line 146) | public static string Ordinalize(this int number, CultureInfo culture) =>
    method Ordinalize (line 163) | public static string Ordinalize(this int number, CultureInfo culture, ...
    method Ordinalize (line 174) | public static string Ordinalize(this int number, GrammaticalGender gen...
    method Ordinalize (line 193) | public static string Ordinalize(this int number, GrammaticalGender gen...
    method Ordinalize (line 205) | public static string Ordinalize(this int number, GrammaticalGender gen...
    method Ordinalize (line 225) | public static string Ordinalize(this int number, GrammaticalGender gen...

FILE: src/Humanizer/Plurality.cs
  type Plurality (line 6) | public enum Plurality

FILE: src/Humanizer/PolyfillShims.cs
  class PolyfillShims (line 10) | static class PolyfillShims
    method extension (line 14) | extension(ArgumentNullException)
    method extension (line 23) | extension(ArgumentOutOfRangeException)
    method IsFinite (line 41) | public static bool IsFinite(double x)
    method IsIntegral (line 47) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method IsInfinityFast (line 58) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method IsNaNFast (line 65) | [MethodImpl(MethodImplOptions.AggressiveInlining)]

FILE: src/Humanizer/PolyfillShims2.cs
  class IntrinsicAttribute (line 5) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | Attri...

FILE: src/Humanizer/RomanNumeralExtensions.cs
  class RomanNumeralExtensions (line 10) | public static partial class RomanNumeralExtensions
    method GetRomanNumeralCharValue (line 29) | static int GetRomanNumeralCharValue(char c)
    method ValidRomanNumeralGenerated (line 47) | [GeneratedRegex(ValidRomanNumeralPattern, RegexOptions.ExplicitCapture...
    method ValidRomanNumeral (line 50) | private static Regex ValidRomanNumeral() => ValidRomanNumeralGenerated();
    method ValidRomanNumeral (line 56) | private static Regex ValidRomanNumeral() => ValidRomanNumeralRegex;
    method FromRoman (line 83) | public static int FromRoman(this string input)
    method FromRoman (line 111) | public static int FromRoman(CharSpan input)
    method ToRoman (line 168) | public static string ToRoman(this int input)
    method IsInvalidRomanNumeral (line 195) | static bool IsInvalidRomanNumeral(CharSpan input) =>

FILE: src/Humanizer/StringDehumanizeExtensions.cs
  class StringDehumanizeExtensions (line 6) | public static class StringDehumanizeExtensions
    method Dehumanize (line 32) | public static string Dehumanize(this string input)

FILE: src/Humanizer/StringHumanizeExtensions.cs
  class StringHumanizeExtensions (line 8) | public static partial class StringHumanizeExtensions
    method PascalCaseWordPartsRegexGenerated (line 14) | [GeneratedRegex(PascalCaseWordPartsPattern, RegexOptions.IgnorePattern...
    method PascalCaseWordPartsRegex (line 17) | private static Regex PascalCaseWordPartsRegex() => PascalCaseWordParts...
    method FreestandingSpacingCharRegexGenerated (line 19) | [GeneratedRegex(FreestandingSpacingCharPattern)]
    method FreestandingSpacingCharRegex (line 22) | private static Regex FreestandingSpacingCharRegex() => FreestandingSpa...
    method PascalCaseWordPartsRegex (line 28) | private static Regex PascalCaseWordPartsRegex() => PascalCaseWordParts...
    method FreestandingSpacingCharRegex (line 32) | private static Regex FreestandingSpacingCharRegex() => FreestandingSpa...
    method FromUnderscoreDashSeparatedWords (line 35) | static string FromUnderscoreDashSeparatedWords(string input)
    method FromPascalCase (line 49) | static string FromPascalCase(string input)
    method Humanize (line 101) | public static string Humanize(this string input)
    method Humanize (line 142) | public static string Humanize(this string input, LetterCasing casing) =>
    method Concat (line 148) | internal static string Concat(CharSpan left, CharSpan right) =>
    method Concat (line 151) | internal static string Concat(char left, CharSpan right) =>
    method Concat (line 154) | internal static string Concat(CharSpan left, char right) =>
    method Concat (line 157) | internal static unsafe string Concat(CharSpan left, CharSpan right)
    method Concat (line 168) | internal static unsafe string Concat(char left, CharSpan right) =>
    method Concat (line 171) | internal static unsafe string Concat(CharSpan left, char right) =>

FILE: src/Humanizer/TimeOnlyToClockNotationExtensions.cs
  class TimeOnlyToClockNotationExtensions (line 8) | public static class TimeOnlyToClockNotationExtensions
    method ToClockNotation (line 38) | public static string ToClockNotation(this TimeOnly input, ClockNotatio...

FILE: src/Humanizer/TimeSpanHumanizeExtensions.cs
  class TimeSpanHumanizeExtensions (line 6) | public static class TimeSpanHumanizeExtensions
    method Humanize (line 23) | public static string Humanize(this TimeSpan timeSpan, int precision = ...
    method Humanize (line 36) | public static string Humanize(this TimeSpan timeSpan, int precision, b...
    method ToAge (line 52) | public static string ToAge(this TimeSpan timeSpan, CultureInfo? cultur...
    method CreateTheTimePartsWithUpperAndLowerLimits (line 68) | static List<string?> CreateTheTimePartsWithUpperAndLowerLimits(TimeSpa...
    method GetTimeUnitPart (line 96) | static string? GetTimeUnitPart(TimeUnit timeUnitToGet, TimeSpan timesp...
    method GetTimeUnitNumericalValue (line 107) | static int GetTimeUnitNumericalValue(TimeUnit timeUnitToGet, TimeSpan ...
    method GetSpecialCaseMonthAsInteger (line 124) | static int GetSpecialCaseMonthAsInteger(TimeSpan timespan, bool isTime...
    method GetSpecialCaseYearAsInteger (line 135) | static int GetSpecialCaseYearAsInteger(TimeSpan timespan) =>
    method GetSpecialCaseWeeksAsInteger (line 138) | static int GetSpecialCaseWeeksAsInteger(TimeSpan timespan, bool isTime...
    method GetSpecialCaseDaysAsInteger (line 148) | static int GetSpecialCaseDaysAsInteger(TimeSpan timespan, TimeUnit max...
    method GetNormalCaseTimeAsInteger (line 164) | static int GetNormalCaseTimeAsInteger(int timeNumberOfUnits, double to...
    method BuildFormatTimePart (line 182) | static string? BuildFormatTimePart(IFormatter cultureFormatter, TimeUn...
    method CreateTimePartsWithNoTimeValue (line 188) | static List<string?> CreateTimePartsWithNoTimeValue(string noTimeValue...
    method IsContainingOnlyNullValue (line 191) | static bool IsContainingOnlyNullValue(IEnumerable<string?> timeParts) =>
    method SetPrecisionOfTimeSpan (line 194) | static List<string?> SetPrecisionOfTimeSpan(IEnumerable<string?> timeP...
    method ConcatenateTimeSpanParts (line 210) | static string ConcatenateTimeSpanParts(IEnumerable<string?> timeSpanPa...

FILE: src/Humanizer/TimeUnitToSymbolExtensions.cs
  class TimeUnitToSymbolExtensions (line 6) | public static class TimeUnitToSymbolExtensions
    method ToSymbol (line 13) | public static string ToSymbol(this TimeUnit unit, CultureInfo? culture...

FILE: src/Humanizer/ToQuantityExtensions.cs
  type ShowQuantityAs (line 7) | public enum ShowQuantityAs
  class ToQuantityExtensions (line 30) | public static class ToQuantityExtensions
    method ToQuantity (line 45) | public static string ToQuantity(this string input, int quantity, ShowQ...
    method ToQuantity (line 60) | public static string ToQuantity(this string input, int quantity, strin...
    method ToQuantity (line 76) | public static string ToQuantity(this string input, long quantity, Show...
    method ToQuantity (line 91) | public static string ToQuantity(this string input, long quantity, stri...
    method ToQuantity (line 94) | static string ToQuantity(this string input, long quantity, ShowQuantit...
    method ToQuantity (line 128) | public static string ToQuantity(this string input, double quantity, st...
    method ToQuantity (line 151) | public static string ToQuantity(this string input, double quantity) =>
    method ConcatWithSpace (line 154) | static string ConcatWithSpace(string left, string right)

FILE: src/Humanizer/Transformer/ICulturedStringTransformer.cs
  type ICulturedStringTransformer (line 6) | public interface ICulturedStringTransformer : IStringTransformer
    method Transform (line 12) | string Transform(string input, CultureInfo culture);

FILE: src/Humanizer/Transformer/IStringTransformer.cs
  type IStringTransformer (line 6) | public interface IStringTransformer
    method Transform (line 12) | string Transform(string input);

FILE: src/Humanizer/Transformer/To.cs
  class To (line 6) | public static class To
    method Transform (line 11) | public static string Transform(this string input, params IStringTransf...
    method Transform (line 17) | public static string Transform(this string input, CultureInfo culture,...

FILE: src/Humanizer/Transformer/ToLowerCase.cs
  class ToLowerCase (line 3) | class ToLowerCase : ICulturedStringTransformer
    method Transform (line 5) | public string Transform(string input) =>
    method Transform (line 8) | public string Transform(string input, CultureInfo culture)

FILE: src/Humanizer/Transformer/ToSentenceCase.cs
  class ToSentenceCase (line 3) | class ToSentenceCase : ICulturedStringTransformer
    method Transform (line 5) | public string Transform(string input) =>
    method Transform (line 8) | public string Transform(string input, CultureInfo culture)

FILE: src/Humanizer/Transformer/ToTitleCase.cs
  class ToTitleCase (line 3) | partial class ToTitleCase : ICulturedStringTransformer
    method Transform (line 5) | public string Transform(string input) =>
    method WordRegexGenerated (line 11) | [GeneratedRegex(WordPattern)]
    method WordRegex (line 14) | private static Regex WordRegex() => WordRegexGenerated();
    method WordRegex (line 18) | private static Regex WordRegex() => WordRegexDefinition;
    method Transform (line 21) | public string Transform(string input, CultureInfo culture)
    method Overwrite (line 42) | static void Overwrite(StringBuilder builder, int index, string replace...
    method AllCapitals (line 51) | static bool AllCapitals(string input)
    method IsArticleOrConjunctionOrPreposition (line 64) | private static bool IsArticleOrConjunctionOrPreposition(string word) =>

FILE: src/Humanizer/Transformer/ToUpperCase.cs
  class ToUpperCase (line 3) | class ToUpperCase : ICulturedStringTransformer
    method Transform (line 5) | public string Transform(string input) =>
    method Transform (line 8) | public string Transform(string input, CultureInfo culture)

FILE: src/Humanizer/TruncateExtensions.cs
  class TruncateExtensions (line 6) | public static class TruncateExtensions
    method Truncate (line 28) | [return: NotNullIfNotNull(nameof(input))]
    method Truncate (line 55) | [return: NotNullIfNotNull(nameof(input))]
    method Truncate (line 82) | [return: NotNullIfNotNull(nameof(input))]
    method Truncate (line 116) | [return: NotNullIfNotNull(nameof(input))]

FILE: src/Humanizer/TruncateFrom.cs
  type TruncateFrom (line 6) | public enum TruncateFrom

FILE: src/Humanizer/Truncation/DynamicLengthAndPreserveWordsTruncator.cs
  class DynamicLengthAndPreserveWordsTruncator (line 10) | class DynamicLengthAndPreserveWordsTruncator : ITruncator
    method Truncate (line 12) | [return: NotNullIfNotNull(nameof(value))]
    method TruncateFromLeft (line 48) | static string TruncateFromLeft(string value, int length, string trunca...
    method TruncateFromRight (line 83) | static string TruncateFromRight(string value, int length, string trunc...

FILE: src/Humanizer/Truncation/DynamicNumberOfCharactersAndPreserveWordTruncator.cs
  class DynamicNumberOfCharactersAndPreserveWordsTruncator (line 11) | public class DynamicNumberOfCharactersAndPreserveWordsTruncator : ITrunc...
    method Truncate (line 13) | [return: NotNullIfNotNull(nameof(value))]
    method TruncateRight (line 46) | static string TruncateRight(string value, int totalLength, string deli...
    method TruncateLeft (line 135) | static string TruncateLeft(string value, int totalLength, string delim...

FILE: src/Humanizer/Truncation/FixedLengthTruncator.cs
  class FixedLengthTruncator (line 6) | class FixedLengthTruncator : ITruncator
    method Truncate (line 8) | [return: NotNullIfNotNull(nameof(value))]

FILE: src/Humanizer/Truncation/FixedNumberOfCharactersTruncator.cs
  class FixedNumberOfCharactersTruncator (line 6) | class FixedNumberOfCharactersTruncator : ITruncator
    method Truncate (line 8) | [return: NotNullIfNotNull(nameof(value))]

FILE: src/Humanizer/Truncation/FixedNumberOfWordsTruncator.cs
  class FixedNumberOfWordsTruncator (line 6) | class FixedNumberOfWordsTruncator : ITruncator
    method Truncate (line 8) | [return: NotNullIfNotNull(nameof(value))]
    method TruncateFromRight (line 47) | static string TruncateFromRight(string value, int length, string? trun...
    method TruncateFromLeft (line 75) | static string TruncateFromLeft(string value, int length, string? trunc...

FILE: src/Humanizer/Truncation/ITruncator.cs
  type ITruncator (line 6) | public interface ITruncator
    method Truncate (line 16) | [return: NotNullIfNotNull(nameof(value))]

FILE: src/Humanizer/Truncation/Truncator.cs
  class Truncator (line 6) | public static class Truncator

FILE: src/Humanizer/TupleizeExtensions.cs
  class TupleizeExtensions (line 9) | public static class TupleizeExtensions
    method Tupleize (line 46) | public static string Tupleize(this int input) =>

FILE: src/Humanizer/WordForm.cs
  type WordForm (line 6) | public enum WordForm

FILE: src/Humanizer/WordsToNumberExtension.cs
  class WordsToNumberExtension (line 6) | public static class WordsToNumberExtension
    method ToNumber (line 41) | public static int ToNumber(this string words, CultureInfo culture)
    method TryToNumber (line 74) | public static bool TryToNumber(this string words, out int parsedNumber...
    method TryToNumber (line 114) | public static bool TryToNumber(this string words, out int parsedNumber...

FILE: tests/Humanizer.Analyzers.Tests/AnalyzerAssemblyCompatibilityTests.cs
  class AnalyzerAssemblyCompatibilityTests (line 9) | public class AnalyzerAssemblyCompatibilityTests
    method ShouldReferenceCompatibleSystemMemoryVersion (line 11) | [Fact]
    method ShouldReferenceCompatibleSystemCollectionsImmutableVersion (line 23) | [Fact]
    method GetAssemblyReferences (line 35) | private static AssemblyName[] GetAssemblyReferences() =>

FILE: tests/Humanizer.Analyzers.Tests/NamespaceMigrationAnalyzerTests.cs
  class NamespaceMigrationAnalyzerTests (line 8) | public class NamespaceMigrationAnalyzerTests
    method EmptyCode_NoDiagnostic (line 10) | [Fact]
    method UsingHumanizer_NoDiagnostic (line 17) | [Fact]
    method UsingHumanizerBytes_Diagnostic (line 28) | [Fact]
    method UsingHumanizerLocalisation_Diagnostic (line 42) | [Fact]
    method UsingHumanizerLocalisationFormatters_Diagnostic (line 56) | [Fact]
    method UsingHumanizerConfiguration_Diagnostic (line 70) | [Fact]
    method UsingHumanizerInflections_Diagnostic (line 84) | [Fact]
    method MultipleOldUsings_MultipleDiagnostics (line 98) | [Fact]
    method QualifiedNameUsage_Diagnostic (line 120) | [Fact]

FILE: tests/Humanizer.Analyzers.Tests/NamespaceMigrationCodeFixTests.cs
  class NamespaceMigrationCodeFixTests (line 8) | public class NamespaceMigrationCodeFixTests
    method FixUsingHumanizerBytes (line 10) | [Fact]
    method FixUsingHumanizerLocalisation (line 32) | [Fact]
    method FixUsingHumanizerConfiguration (line 54) | [Fact]
    method FixUsingHumanizerLocalisationFormatters (line 78) | [Fact]
    method FixUsingHumanizerInflections (line 100) | [Fact]
    method FixQualifiedNameUsage (line 122) | [Fact]

FILE: tests/Humanizer.Analyzers.Tests/Verifiers.cs
  class CSharpCodeFixVerifier (line 8) | public static class CSharpCodeFixVerifier<TAnalyzer, TCodeFix>
    method Diagnostic (line 12) | public static DiagnosticResult Diagnostic(string diagnosticId)
    method VerifyAnalyzerAsync (line 15) | public static async Task VerifyAnalyzerAsync(string source, params Dia...
    method VerifyCodeFixAsync (line 28) | public static async Task VerifyCodeFixAsync(string source, string fixe...
    method VerifyCodeFixAsync (line 33) | public static async Task VerifyCodeFixAsync(string source, DiagnosticR...
    method VerifyCodeFixAsync (line 38) | public static async Task VerifyCodeFixAsync(string source, DiagnosticR...

FILE: tests/Humanizer.Tests/ApiApprover/PublicApiApprovalTest.cs
  class PublicApiApprovalTest (line 3) | public class PublicApiApprovalTest
    method Approve_Public_Api (line 5) | [Fact]

FILE: tests/Humanizer.Tests/ArticlePrefixSortTests.cs
  class ArticlePrefixSortTests (line 1) | public class ArticlePrefixSortTests
    method SortStringArrayIgnoringArticlePrefixes (line 3) | [Theory]
    method An_Empty_String_Array_Throws_ArgumentOutOfRangeException (line 12) | [Fact]

FILE: tests/Humanizer.Tests/BitFieldEnumHumanizeTests.cs
  class BitFieldEnumHumanizeTests (line 1) | [UseCulture("en")]
    method CanHumanizeSingleWordDescriptionAttribute (line 4) | [Fact]
    method CanHumanizeMultipleWordDescriptionAttribute (line 8) | [Fact]
    method CanHumanizeMultipleValueBitFieldEnum (line 12) | [Fact]
    method CanHumanizeShortSingleWordDescriptionAttribute (line 19) | [Fact]
    method CanHumanizeShortMultipleWordDescriptionAttribute (line 23) | [Fact]
    method CanHumanizeShortMultipleValueBitFieldEnum (line 27) | [Fact]
    method CanHumanizeBitFieldEnumWithZeroValue (line 34) | [Fact]

FILE: tests/Humanizer.Tests/BitFieldEnumUnderTest.cs
  type BitFieldEnumUnderTest (line 3) | [Flags]
  type ShortBitFieldEnumUnderTest (line 14) | [Flags]
  class BitFlagEnumTestsResources (line 23) | public class BitFlagEnumTestsResources

FILE: tests/Humanizer.Tests/Bytes/ArithmeticTests.cs
  class ArithmeticTests (line 1) | public class ArithmeticTests
    method Add (line 3) | [Fact]
    method AddBits (line 13) | [Fact]
    method AddBytes (line 24) | [Fact]
    method AddKilobytes (line 35) | [Fact]
    method AddMegabytes (line 47) | [Fact]
    method AddGigabytes (line 60) | [Fact]
    method AddTerabytes (line 74) | [Fact]
    method Subtract (line 89) | [Fact]
    method IncrementOperator (line 100) | [Fact]
    method NegativeOperator (line 110) | [Fact]
    method DecrementOperator (line 121) | [Fact]
    method PlusOperator (line 131) | [Fact]
    method MinusOperator (line 142) | [Fact]

FILE: tests/Humanizer.Tests/Bytes/ByteRateTests.cs
  class ByteRateTests (line 1) | [UseCulture("en")]
    method HumanizesRates (line 4) | [Theory]
    method TimeUnitTests (line 23) | [Theory]
    method FormattedTimeUnitTests (line 44) | [Theory]
    method ThrowsOnUnsupportedData (line 57) | [Theory]

FILE: tests/Humanizer.Tests/Bytes/ByteSizeExtensionsTests.cs
  class ByteSizeExtensionsTests (line 1) | [UseCulture("en")]
    method ByteTerabytes (line 4) | [Fact]
    method SbyteTerabytes (line 11) | [Fact]
    method ShortTerabytes (line 18) | [Fact]
    method UshortTerabytes (line 25) | [Fact]
    method IntTerabytes (line 32) | [Fact]
    method UintTerabytes (line 39) | [Fact]
    method DoubleTerabytes (line 46) | [Fact]
    method LongTerabytes (line 53) | [Fact]
    method HumanizesTerabytes (line 60) | [Theory]
    method ByteGigabytes (line 75) | [Fact]
    method SbyteGigabytes (line 82) | [Fact]
    method ShortGigabytes (line 89) | [Fact]
    method UshortGigabytes (line 96) | [Fact]
    method IntGigabytes (line 103) | [Fact]
    method UintGigabytes (line 110) | [Fact]
    method DoubleGigabytes (line 117) | [Fact]
    method LongGigabytes (line 124) | [Fact]
    method HumanizesGigabytes (line 131) | [Theory]
    method ByteMegabytes (line 147) | [Fact]
    method SbyteMegabytes (line 154) | [Fact]
    method ShortMegabytes (line 161) | [Fact]
    method UshortMegabytes (line 168) | [Fact]
    method IntMegabytes (line 175) | [Fact]
    method UintMegabytes (line 182) | [Fact]
    method DoubleMegabytes (line 189) | [Fact]
    method LongMegabytes (line 196) | [Fact]
    method HumanizesMegabytes (line 203) | [Theory]
    method ByteKilobytes (line 219) | [Fact]
    method SbyteKilobytes (line 226) | [Fact]
    method ShortKilobytes (line 233) | [Fact]
    method UshortKilobytes (line 240) | [Fact]
    method IntKilobytes (line 247) | [Fact]
    method UintKilobytes (line 254) | [Fact]
    method DoubleKilobytes (line 261) | [Fact]
    method LongKilobytes (line 268) | [Fact]
    method HumanizesKilobytes (line 275) | [Theory]
    method ByteBytes (line 291) | [Fact]
    method SbyteBytes (line 298) | [Fact]
    method ShortBytes (line 305) | [Fact]
    method UshortBytes (line 312) | [Fact]
    method IntBytes (line 319) | [Fact]
    method UintBytes (line 326) | [Fact]
    method DoubleBytes (line 333) | [Fact]
    method LongBytes (line 340) | [Fact]
    method HumanizesBytes (line 347) | [Theory]
    method ByteBits (line 368) | [Fact]
    method SbyteBits (line 375) | [Fact]
    method ShortBits (line 382) | [Fact]
    method UshortBits (line 389) | [Fact]
    method IntBits (line 396) | [Fact]
    method UintBits (line 403) | [Fact]
    method LongBits (line 410) | [Fact]
    method HumanizesBits (line 417) | [Theory]

FILE: tests/Humanizer.Tests/Bytes/ComparingTests.cs
  class ComparingTests (line 1) | public class ComparingTests
    method CompareStrongTyped (line 3) | [Theory]
    method CompareUntyped (line 16) | [Theory]
    method SortList (line 29) | [Theory]

FILE: tests/Humanizer.Tests/Bytes/CreatingTests.cs
  class CreatingTests (line 23) | public class CreatingTests
    method Constructor (line 25) | [Fact]
    method FromBits (line 38) | [Fact]
    method FromBytes (line 47) | [Fact]
    method FromKilobytes (line 56) | [Fact]
    method FromMegabytes (line 65) | [Fact]
    method FromGigabytes (line 74) | [Fact]
    method FromTerabytes (line 83) | [Fact]

FILE: tests/Humanizer.Tests/Bytes/ParsingTests.cs
  class ParsingTests (line 23) | [UseCulture("en")]
    method Parse (line 26) | [Fact]
    method TryParseReturnsFalseOnNullOrEmpty (line 30) | [Fact]
    method TryParse (line 47) | [Fact]
    method TryParseWithCultureInfo (line 59) | [Theory]
    method TryParseWithNumberFormatInfo (line 82) | [Fact]
    method TryParseWithArabicCulture (line 103) | [Fact]
    method ParseDecimalMegabytes (line 118) | [Fact]
    method TryParseReturnsFalseOnBadValue (line 122) | [Theory]
    method TryParseWorksWithLotsOfSpaces (line 145) | [Fact]
    method ParseThrowsOnNull (line 149) | [Fact]
    method ParseBits (line 153) | [Fact]
    method ParseBytes (line 157) | [Fact]
    method ParseKilobytes (line 161) | [Fact]
    method ParseMegabytes (line 165) | [Fact]
    method ParseGigabytes (line 169) | [Fact]
    method ParseTerabytes (line 173) | [Fact]

FILE: tests/Humanizer.Tests/Bytes/ToFullWordsTests.cs
  class ToFullWordsTests (line 23) | [UseCulture("en")]
    method ReturnsSingularBit (line 26) | [Fact]
    method ReturnsPluralBits (line 30) | [Fact]
    method ReturnsSingularByte (line 34) | [Fact]
    method ReturnsPluralBytes (line 38) | [Fact]
    method ReturnsSingularKiloByte (line 42) | [Fact]
    method ReturnsPluralKilobytes (line 46) | [Fact]
    method ReturnsSingularMegabyte (line 50) | [Fact]
    method ReturnsPluralMegabytes (line 54) | [Fact]
    method ReturnsSingularGigabyte (line 58) | [Fact]
    method ReturnsPluralGigabytes (line 62) | [Fact]
    method ReturnsSingularTerabyte (line 66) | [Fact]
    method ReturnsPluralTerabytes (line 70) | [Fact]
    method ToFullWordsFormatted (line 74) | [Theory]

FILE: tests/Humanizer.Tests/Bytes/ToStringTests.cs
  class ToStringTests (line 23) | [UseCulture("en")]
    method ReturnsLargestMetricSuffix (line 26) | [Fact]
    method ReturnsDefaultNumberFormat (line 30) | [Fact]
    method ReturnsProvidedNumberFormat (line 37) | [Fact]
    method ReturnsBits (line 41) | [Fact]
    method ReturnsBytes (line 45) | [Fact]
    method ReturnsKilobytes (line 49) | [Fact]
    method ReturnsMegabytes (line 53) | [Fact]
    method ReturnsGigabytes (line 57) | [Fact]
    method ReturnsTerabytes (line 61) | [Fact]
    method ReturnsSelectedFormat (line 65) | [Fact]
    method ReturnsLargestMetricPrefixLargerThanZero (line 69) | [Fact]
    method ReturnsLargestMetricPrefixLargerThanZeroForNegativeValues (line 73) | [Fact]
    method ReturnsBytesViaGeneralFormat (line 77) | [Fact]

FILE: tests/Humanizer.Tests/CasingTests.cs
  class CasingTests (line 1) | public class CasingTests
    method ApplyCaseTitle (line 3) | [Theory]
    method ApplyCaseLower (line 12) | [Theory]
    method ApplyCaseSentence (line 20) | [Theory]
    method ApplyCaseAllCaps (line 27) | [Theory]

FILE: tests/Humanizer.Tests/CollectionHumanizeTests.cs
  class SomeClass (line 1) | public class SomeClass
    method ToString (line 5) | public override string ToString() =>
  class CollectionHumanizeTests (line 9) | [UseCulture("en")]
    method HumanizeReturnsOnlyNameWhenCollectionContainsOneItem (line 12) | [Fact]
    method HumanizeUsesSeparatorWhenMoreThanOneItemIsInCollection (line 20) | [Fact]
    method HumanizeDefaultsSeparatorToAnd (line 32) | [Fact]
    method HumanizeUsesOxfordComma (line 44) | [Fact]
    method HumanizeDefaultsToToString (line 64) | [Fact]
    method HumanizeUsesStringDisplayFormatter (line 68) | [Fact]
    method HumanizeUsesObjectDisplayFormatter (line 75) | [Fact]
    method HumanizeUsesStringDisplayFormatterWhenSeparatorIsProvided (line 82) | [Fact]
    method HumanizeUsesObjectDisplayFormatterWhenSeparatorIsProvided (line 89) | [Fact]
    method HumanizeHandlesNullItemsWithoutAnException (line 96) | [Fact]
    method HumanizeHandlesNullStringDisplayFormatterReturnsWithoutAnException (line 100) | [Fact]
    method HumanizeHandlesNullObjectDisplayFormatterReturnsWithoutAnException (line 104) | [Fact]
    method HumanizeRunsStringDisplayFormatterOnNulls (line 108) | [Fact]
    method HumanizeRunsObjectDisplayFormatterOnNulls (line 112) | [Fact]
    method HumanizeRemovesEmptyItemsByDefault (line 116) | [Fact]
    method HumanizeTrimsItemsByDefault (line 120) | [Fact]

FILE: tests/Humanizer.Tests/DateHumanize.cs
  class DateHumanize (line 2) | public class DateHumanize
    method VerifyWithCurrentDate (line 6) | static void VerifyWithCurrentDate(string expectedString, TimeSpan delt...
    method VerifyWithDateInjection (line 15) | static void VerifyWithDateInjection(string expectedString, TimeSpan de...
    method VerifyWithDate (line 23) | static void VerifyWithDate(string expectedString, TimeSpan deltaFromBa...
    method Verify (line 41) | public static void Verify(string expectedString, int unit, TimeUnit ti...

FILE: tests/Humanizer.Tests/DateHumanizeDefaultStrategyTests.cs
  class DateHumanizeDefaultStrategyTests (line 1) | [UseCulture("en-US")]
    method SecondsAgo (line 4) | [Theory]
    method SecondsFromNow (line 12) | [Theory]
    method MinutesAgo (line 20) | [Theory]
    method MinutesFromNow (line 32) | [Theory]
    method HoursAgo (line 42) | [Theory]
    method HoursFromNow (line 50) | [Theory]
    method HoursFromNowNotTomorrow (line 58) | [Theory]
    method DaysAgo (line 70) | [Theory]
    method DaysFromNow (line 78) | [Theory]
    method MonthsAgo (line 86) | [Theory]
    method MonthsFromNow (line 94) | [Theory]
    method YearsAgo (line 102) | [Theory]
    method YearsFromNow (line 108) | [Theory]
    method Now (line 114) | [Fact]
    method Never (line 118) | [Fact]
    method Nullable_ExpectSame (line 125) | [Fact]
    method CanSpecifyCultureExplicitly (line 133) | [Theory]

FILE: tests/Humanizer.Tests/DateOnlyHumanizeTests.cs
  class DateOnlyHumanizeTests (line 3) | [UseCulture("en-US")]
    method DefaultStrategy_SameDate (line 6) | [Fact]
    method DefaultStrategy_MonthApart (line 20) | [Fact]
    method DefaultStrategy_DaysAgo (line 34) | [Fact]
    method DefaultStrategy_YearsAgo (line 48) | [Fact]
    method PrecisionStrategy_NextDay (line 63) | [Fact]
    method Never (line 77) | [Fact]
    method Nullable_ExpectSame (line 84) | [Fact]

FILE: tests/Humanizer.Tests/DateTimeHumanizePrecisionStrategyTests.cs
  class DateTimeHumanizePrecisionStrategyTests (line 1) | [UseCulture("en-US")]
    method MillisecondsAgo (line 6) | [Theory]
    method MillisecondsFromNow (line 16) | [Theory]
    method SecondsAgo (line 26) | [Theory]
    method SecondsFromNow (line 38) | [Theory]
    method MinutesAgo (line 50) | [Theory]
    method MinutesFromNow (line 62) | [Theory]
    method HoursAgo (line 74) | [Theory]
    method HoursFromNow (line 87) | [Theory]
    method DaysAgo (line 99) | [Theory]
    method DaysFromNow (line 111) | [Theory]
    method MonthsAgo (line 123) | [Theory]
    method MonthsFromNow (line 134) | [Theory]
    method YearsAgo (line 145) | [Theory]
    method YearsFromNow (line 151) | [Theory]

FILE: tests/Humanizer.Tests/DateTimeOffsetHumanizeTests.cs
  class DateTimeOffsetHumanizeTests (line 1) | [UseCulture("en-US")]
    method DefaultStrategy_SameOffset (line 4) | [Fact]
    method DefaultStrategy_DifferentOffsets (line 18) | [Fact]
    method PrecisionStrategy_SameOffset (line 32) | [Fact]
    method PrecisionStrategy_DifferentOffsets (line 46) | [Fact]
    method Never (line 60) | [Fact]
    method Nullable_ExpectSame (line 67) | [Fact]

FILE: tests/Humanizer.Tests/EnumHumanizeTests.cs
  class EnumHumanizeTests (line 3) | public class EnumHumanizeTests
    method HonorsDescriptionAttribute (line 5) | [Fact]
    method HonorsDescriptionAttributeSubclasses (line 9) | [Fact]
    method HonorsAnyAttributeWithDescriptionStringProperty (line 13) | [Fact]
    method OnlyStringDescriptionsApply (line 17) | [Fact]
    method CanHumanizeMembersWithoutDescriptionAttribute (line 21) | [Fact]
    method CanApplyTitleCasingOnEnumHumanization (line 25) | [Fact]
    method CanApplyLowerCaseCasingOnEnumHumanization (line 31) | [Fact]
    method AllCapitalMembersAreReturnedAsIs (line 37) | [Fact]
    method HonorsDisplayAttribute (line 41) | [Fact]
    method HandlesDisplayAttributeWithNoDescription (line 45) | [Fact]
    method HonorsLocalizedDisplayAttribute (line 49) | [Fact]
    method HumanizeCustomPropertyAttributeWithLocator (line 53) | [Fact]
    method HumanizeMembersWithoutDescriptionAttributeWithLocator (line 68) | [Fact]
    method DehumanizeThrowsForEnumNoMatch (line 83) | [Fact]
    method DehumanizeCanReturnNullForEnumNoMatch (line 92) | [Fact]
    method DehumanizeDescriptionAttribute (line 98) | [Fact]
    method DehumanizeDescriptionAttributeSubclasses (line 107) | [Fact]
    method DehumanizeAnyAttributeWithDescriptionStringProperty (line 117) | [Fact]
    method DehumanizeMembersWithoutDescriptionAttribute (line 126) | [Fact]
    method DehumanizeIsCaseInsensitive (line 135) | [Theory]
    method DehumanizeAllCapitalMembersAreReturnedAsIs (line 147) | [Fact]
    method DehumanizeDisplayAttribute (line 156) | [Fact]
    method DehumanizeLocalizedDisplayAttribute (line 165) | [Fact]
    type DummyEnum (line 174) | enum DummyEnum

FILE: tests/Humanizer.Tests/EnumUnderTest.cs
  type EnumUnderTest (line 4) | public enum EnumUnderTest
  type EnumForCustomLocator (line 26) | public enum EnumForCustomLocator
  class EnumTestsResources (line 33) | public class EnumTestsResources
  class ImposterDescriptionAttribute (line 48) | [AttributeUsage(AttributeTargets.Field)]
  class CustomDescriptionAttribute (line 55) | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Method)]
  class DescriptionSubclassAttribute (line 62) | [AttributeUsage(AttributeTargets.Field)]
  class CustomPropertyAttribute (line 69) | [AttributeUsage(AttributeTargets.Field)]

FILE: tests/Humanizer.Tests/FluentDate/InDateTests.cs
  class InDateTests (line 3) | public class InDateTests
    method InJanuary (line 5) | [Fact]
    method InJanuaryOf2009 (line 9) | [Fact]
    method InFebruary (line 13) | [Fact]
    method InTheYear (line 17) | [Fact]
    method InFiveDays (line 21) | [Fact]

FILE: tests/Humanizer.Tests/FluentDate/InTests.cs
  class InTests (line 1) | public class InTests
    method InJanuary (line 3) | [Fact]
    method InJanuaryOf2009 (line 7) | [Fact]
    method InFebruary (line 11) | [Fact]
    method InFebruaryOf2009 (line 15) | [Fact]
    method InMarch (line 19) | [Fact]
    method InMarchOf2009 (line 23) | [Fact]
    method InApril (line 27) | [Fact]
    method InAprilOf2009 (line 31) | [Fact]
    method InMay (line 35) | [Fact]
    method InMayOf2009 (line 39) | [Fact]
    method InJune (line 43) | [Fact]
    method InJuneOf2009 (line 47) | [Fact]
    method InJuly (line 51) | [Fact]
    method InJulyOf2009 (line 55) | [Fact]
    method InAugust (line 59) | [Fact]
    method InAugustOf2009 (line 63) | [Fact]
    method InSeptember (line 67) | [Fact]
    method InSeptemberOf2009 (line 71) | [Fact]
    method InOctober (line 75) | [Fact]
    method InOctoberOfIn2009 (line 79) | [Fact]
    method InNovember (line 83) | [Fact]
    method InNovemberOf2009 (line 87) | [Fact]
    method InDecember (line 91) | [Fact]
    method InDecemberOf2009 (line 95) | [Fact]
    method InTheYear (line 99) | [Fact]
    method InFiveDays (line 103) | [Fact]

FILE: tests/Humanizer.Tests/FluentDate/OnDateTests.cs
  class OnDateTests (line 3) | public class OnDateTests
    method OnJanuaryThe23rd (line 5) | [Fact]
    method OnDecemberThe4th (line 9) | [Fact]
    method OnFebruaryThe (line 13) | [Fact]

FILE: tests/Humanizer.Tests/FluentDate/OnTests.cs
  class OnTests (line 1) | public class OnTests
    method OnJanuaryThe23rd (line 3) | [Fact]
    method OnDecemberThe4th (line 7) | [Fact]
    method OnFebruaryThe (line 11) | [Fact]

FILE: tests/Humanizer.Tests/FluentDate/PrepositionTests.cs
  class PrepositionTests (line 1) | public class PrepositionTests
    method AtMidnight (line 3) | [Fact]
    method AtNoon (line 11) | [Fact]
    method InYear (line 19) | [Fact]

FILE: tests/Humanizer.Tests/HeadingTests.cs
  class HeadingTests (line 1) | [UseCulture("en-US")]
    method ToHeadingAbbreviated (line 4) | [InlineData(0, "N")]
    method ToHeading (line 58) | [InlineData(0, "north")]
    method FromShortHeading (line 80) | [InlineData("N", 0)]
    method ToHeadingArrow (line 100) | [InlineData(0, '↑')]
    method FromHeadingArrow (line 154) | [InlineData('↑', 0)]
    method FromHeadingArrow_Also_Works_With_Strings (line 167) | [InlineData("↑", 0)]
    method FromShortHeading_CanSpecifyCultureExplicitly (line 181) | [InlineData("NNW", "en-US", 337.5)]

FILE: tests/Humanizer.Tests/InflectorTests.cs
  class InflectorTests (line 26) | public class InflectorTests
    method Pluralize (line 30) | [Theory]
    method PluralizeWordsWithUnknownPlurality (line 35) | [Theory]
    method Singularize (line 43) | [Theory]
    method SingularizeWordsWithUnknownSingularity (line 48) | [Theory]
    method SingularizeSkipSimpleWords (line 56) | [Theory]
    method SingularizeSingleLetter (line 63) | [Theory]
    method Titleize (line 75) | [Theory]
    method TitleizeShouldPreserveUnrecognizedCharacters (line 86) | [Theory]
    method Dasherize (line 94) | [InlineData("some_title", "some-title")]
    method Hyphenate (line 102) | [InlineData("some_title", "some-title")]
    method Pascalize (line 110) | [Theory]
    method Camelize (line 128) | [Theory]
    method Underscore (line 144) | [Theory]
    method Kebaberize (line 156) | [Theory]
  class PluralTestSource (line 166) | class PluralTestSource : IEnumerable<object[]>
    method GetEnumerator (line 168) | public IEnumerator<object[]> GetEnumerator()
    method GetEnumerator (line 409) | IEnumerator IEnumerable.GetEnumerator() =>

FILE: tests/Humanizer.Tests/Localisation/DefaultFormatterTests.cs
  class DefaultFormatterTests (line 3) | public class DefaultFormatterTests
    method HandlesNotImplementedCollectionFormattersGracefully (line 5) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/ResourcesTests.cs
  class ResourcesTests (line 3) | public class ResourcesTests
    method CanGetCultureSpecificTranslationsWithImplicitCulture (line 5) | [Fact]
    method CanGetCultureSpecificTranslationsWithExplicitCulture (line 13) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/af/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("af")]
    method DaysAgo (line 6) | [Theory]
    method HoursAgo (line 12) | [Theory]
    method MinutesAgo (line 18) | [Theory]
    method MonthsAgo (line 25) | [Theory]
    method SecondsAgo (line 31) | [Theory]
    method YearsAgo (line 37) | [Theory]
    method DaysFromNow (line 43) | [Theory]
    method HoursFromNow (line 49) | [Theory]
    method MinutesFromNow (line 55) | [Theory]
    method MonthsFromNow (line 62) | [Theory]
    method SecondsFromNow (line 68) | [Theory]
    method YearsFromNow (line 74) | [Theory]
    method RightNow (line 80) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/af/NumberToWordsTests.cs
  class AfrikaansNumberToWordsTests (line 3) | [UseCulture("af")]
    method ToWords (line 6) | [InlineData(1, "een")]
    method ToOrdinalWords (line 38) | [Theory]
    method ToWords_CanSpecifyCultureExplicitly (line 85) | [Theory]
    method ToOrdinalWords_CanSpecifyCultureExplicitly (line 92) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/af/TimeSpanHumanizeTests.cs
  class TimeSpanHumanizeTests (line 3) | [UseCulture("af")]
    method Years (line 6) | [Theory]
    method Months (line 15) | [Theory]
    method TwoWeeks (line 24) | [Fact]
    method OneWeek (line 28) | [Fact]
    method SixDays (line 32) | [Fact]
    method TwoDays (line 36) | [Fact]
    method OneDay (line 40) | [Fact]
    method TwoHours (line 44) | [Fact]
    method OneHour (line 48) | [Fact]
    method TwoMinutes (line 52) | [Fact]
    method OneMinute (line 56) | [Fact]
    method TwoSeconds (line 60) | [Fact]
    method OneSecond (line 64) | [Fact]
    method TwoMilliseconds (line 68) | [Fact]
    method OneMillisecond (line 72) | [Fact]
    method NoTime (line 76) | [Fact]
    method NoTimeToWords (line 80) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/ar/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("ar")]
    method DaysAgo (line 6) | [Theory]
    method DaysFromNow (line 14) | [Theory]
    method HoursAgo (line 22) | [Theory]
    method HoursFromNow (line 30) | [Theory]
    method MinutesAgo (line 38) | [Theory]
    method MinutesFromNow (line 47) | [Theory]
    method MonthsAgo (line 55) | [Theory]
    method MonthsFromNow (line 63) | [Theory]
    method SecondsAgo (line 70) | [Theory]
    method SecondsFromNow (line 78) | [Theory]
    method YearsAgo (line 87) | [Theory]
    method YearsFromNow (line 95) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/ar/NumberToWordsTests.cs
  class NumberToWordsTests (line 3) | [UseCulture("ar")]
    method ToWordsArabic (line 6) | [Theory]
    method ToWordsArabicNegative (line 17) | [Theory]
    method ToWordsArabicLong (line 27) | [Theory]
    method ToWordsArabicFeminine (line 54) | [Theory]
    method ToWordsArabicLongFeminine (line 65) | [Theory]
    method ToWordsWithGender (line 71) | [Theory]
    method ToOrdinalWords (line 78) | [Theory]
    method ToOrdinalWordsWithFeminineGender (line 130) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/ar/TimeSpanHumanizeTests.cs
  class TimeSpanHumanizeTests (line 3) | [UseCulture("ar")]
    method Years (line 6) | [Theory]
    method Months (line 15) | [Theory]
    method Weeks (line 24) | [Theory]
    method Days (line 32) | [Theory]
    method Hours (line 39) | [Theory]
    method Minutes (line 47) | [Theory]
    method Seconds (line 55) | [Theory]
    method Milliseconds (line 63) | [Theory]
    method NoTime (line 71) | [Fact]
    method NoTimeToWords (line 75) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/az/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("az")]
    method SecondsAgo (line 6) | [Theory]
    method SecondsFromNow (line 12) | [Theory]
    method MinutesAgo (line 18) | [Theory]
    method MinutesFromNow (line 25) | [Theory]
    method HoursAgo (line 31) | [Theory]
    method HoursFromNow (line 37) | [Theory]
    method DaysAgo (line 43) | [Theory]
    method DaysFromNow (line 49) | [Theory]
    method MonthsAgo (line 55) | [Theory]
    method MonthsFromNow (line 61) | [Theory]
    method YearsAgo (line 67) | [Theory]
    method YearsFromNow (line 73) | [Theory]
    method Now (line 79) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/az/NumberToWordsTests.cs
  class NumberToWordsTests (line 3) | [UseCulture("az")]
    method ToWords (line 6) | [Theory]
    method ToOrdinalWords (line 21) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/az/TimeSpanHumanizeTests.cs
  class TimeSpanHumanizeTests (line 3) | [UseCulture("az")]
    method Years (line 6) | [Theory]
    method Months (line 17) | [Theory]
    method Weeks (line 28) | [Theory]
    method Days (line 39) | [Theory]
    method Hours (line 50) | [Theory]
    method Minutes (line 61) | [Theory]
    method Seconds (line 72) | [Theory]
    method Milliseconds (line 83) | [Theory]
    method NoTime (line 94) | [Fact]
    method NoTimeToWords (line 102) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/bg/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("bg-BG")]
    method SecondsAgo (line 6) | [Theory]
    method SecondsFromNow (line 12) | [Theory]
    method MinutesAgo (line 18) | [Theory]
    method MinutesFromNow (line 25) | [Theory]
    method HoursAgo (line 31) | [Theory]
    method HoursFromNow (line 37) | [Theory]
    method DaysAgo (line 43) | [Theory]
    method DaysFromNow (line 49) | [Theory]
    method MonthsAgo (line 55) | [Theory]
    method MonthsFromNow (line 61) | [Theory]
    method YearsAgo (line 67) | [Theory]
    method YearsFromNow (line 73) | [Theory]
    method Now (line 79) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/bg/NumberToWordsTests.cs
  class NumberToWordsTests (line 3) | [UseCulture("bg")]
    method ToWordsBg (line 6) | [Theory]
    method ToOrdinalWordsMasculine (line 58) | [Theory]
    method ToOrdinalWordsFeminine (line 104) | [Theory]
    method ToOrdinalWordsNeuter (line 150) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/bg/TimeSpanHumanizeTests.cs
  class TimeSpanHumanizeTests (line 3) | [UseCulture("bg-BG")]
    method Years (line 6) | [Theory]
    method YearsToWords (line 15) | [Theory]
    method Months (line 25) | [Theory]
    method MonthsToWords (line 34) | [Theory]
    method Weeks (line 43) | [Theory]
    method WeeksToWords (line 49) | [Theory]
    method Days (line 55) | [Theory]
    method DaysToWords (line 61) | [Theory]
    method Hours (line 67) | [Theory]
    method HoursToWords (line 73) | [Theory]
    method Minutes (line 79) | [Theory]
    method MinutesToWords (line 85) | [Theory]
    method Seconds (line 91) | [Theory]
    method SecondsToWords (line 97) | [Theory]
    method Milliseconds (line 103) | [Theory]
    method MillisecondsToWords (line 109) | [Theory]
    method NoTime (line 115) | [Fact]
    method NoTimeToWords (line 120) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/bn-BD/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("bn-BD")]
    method DaysFromNow (line 6) | [Theory]
    method DaysAgo (line 12) | [Theory]
    method HoursFromNow (line 18) | [Theory]
    method HoursAgo (line 24) | [Theory]
    method MinutesFromNow (line 30) | [Theory]
    method MinutesAgo (line 36) | [Theory]
    method MonthsFromNow (line 42) | [Theory]
    method MonthsAgo (line 48) | [Theory]
    method SecondsFromNow (line 54) | [Theory]
    method SecondsAgo (line 60) | [Theory]
    method YearsFromNow (line 66) | [Theory]
    method YearsAgo (line 72) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/bn-BD/NumberToWordsTests.cs
  class NumberToWordsTests (line 3) | [UseCulture("bn-BD")]
    method ToWords (line 6) | [InlineData(0, "শূন্য")]
    method ToOrdinalWords (line 40) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/bn-BD/TimeSpanHumanizeTests.cs
  class TimeSpanHumanizeTests (line 3) | [UseCulture("bn-BD")]
    method Years (line 6) | [Theory]
    method Months (line 15) | [Theory]
    method Weeks (line 24) | [Theory]
    method Days (line 30) | [Theory]
    method Hours (line 36) | [Theory]
    method Minutes (line 42) | [Theory]
    method Seconds (line 48) | [Theory]
    method Milliseconds (line 54) | [Theory]
    method NoTime (line 60) | [Fact]
    method NoTimeToWords (line 64) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/ca/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("ca")]
    method SecondsAgo (line 6) | [Theory]
    method SecondsFromNow (line 12) | [Theory]
    method MinutesAgo (line 18) | [Theory]
    method MinutesFromNow (line 25) | [Theory]
    method HoursAgo (line 31) | [Theory]
    method HoursFromNow (line 37) | [Theory]
    method DaysAgo (line 43) | [Theory]
    method DaysFromNow (line 49) | [Theory]
    method MonthsAgo (line 55) | [Theory]
    method MonthsFromNow (line 61) | [Theory]
    method YearsAgo (line 67) | [Theory]
    method YearsFromNow (line 73) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/ca/DateToOrdinalWordsTests.cs
  class DateToOrdinalWordsTests (line 3) | [UseCulture("ca")]
    method OrdinalizeString (line 6) | [Fact]
    method OrdinalizeDateOnlyString (line 16) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/ca/NumberToWordsFeminineTest.cs
  class NumberToWordsFeminineTests (line 3) | [UseCulture("ca")]
    method ToWords (line 6) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/ca/NumberToWordsTests.cs
  class NumberToWordsTests (line 3) | [UseCulture("ca")]
    method ToOrdinalWords (line 7) | [Theory]
    method ToOrdinalWordsWithWordForm (line 122) | [Theory]
    method ToOrdinalWordsWithWordFormAndGender (line 144) | [Theory]
    method ToTuple (line 166) | [Theory]
    method ToWords (line 173) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/ca/OrdinalizeTests.cs
  class OrdinalizeTests (line 3) | [UseCulture("ca")]
    method OrdinalizeDefaultGender (line 6) | [Theory]
    method OrdinalizeZeroOrNegativeNumber (line 12) | [Theory]
    method OrdinalizeWithWordForm (line 18) | [Theory]
    method OrdinalizeWithWordFormAndGender (line 33) | [Theory]
    method OrdinalizeString (line 46) | [Theory]
    method OrdinalizeStringFeminine (line 62) | [Theory]
    method OrdinalizeNumber (line 79) | [Theory]
    method OrdinalizeNumberFeminine (line 97) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/ca/TimeSpanHumanizeTests.cs
  class TimeSpanHumanizeTests (line 3) | [UseCulture("ca")]
    method Years (line 6) | [Theory]
    method Months (line 15) | [Theory]
    method TwoWeeks (line 24) | [Fact]
    method OneWeek (line 28) | [Fact]
    method SixDays (line 32) | [Fact]
    method TwoDays (line 36) | [Fact]
    method OneDay (line 40) | [Fact]
    method TwoHours (line 44) | [Fact]
    method OneHour (line 48) | [Fact]
    method TwoMinutes (line 52) | [Fact]
    method OneMinute (line 56) | [Fact]
    method TwoSeconds (line 60) | [Fact]
    method OneSecond (line 64) | [Fact]
    method TwoMilliseconds (line 68) | [Fact]
    method OneMillisecond (line 72) | [Fact]
    method ComplexTimeSpan (line 76) | [Theory]
    method NoTime (line 86) | [Fact]
    method NoTimeToWords (line 91) | [Fact]
    method AllTimeSpansMustBeUniqueForASequenceOfDays (line 96) | [Fact]
    method Year (line 111) | [Theory]
    method Month (line 128) | [Theory]
    method Weeks (line 147) | [Theory]
    method Days (line 159) | [Theory]
    method Hours (line 172) | [Theory]
    method Minutes (line 183) | [Theory]
    method Seconds (line 194) | [Theory]
    method Milliseconds (line 209) | [Theory]
    method TimeSpanWithMaxTimeUnit (line 224) | [Theory]
    method TimeSpanWithMinTimeUnit (line 238) | [Theory]
    method TimeSpanWithPrecision (line 313) | [Theory]
    method DaysWithPrecision (line 364) | [Theory]
    method TimeSpanWithMinAndMaxUnits_DoesNotReportExcessiveTime (line 374) | [Theory]
    method TimeSpanWithPrecisionAndCountingEmptyUnits (line 384) | [Theory]
    method TimeSpanWithPrecisionAndAlternativeCollectionFormatter (line 428) | [Theory]
    method TimeSpanWithNumbersConvertedToWords (line 467) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/ca/TimeToClockNotationTests.cs
  class TimeToClockNotationTests (line 5) | [UseCulture("ca")]
    method ConvertToClockNotationTimeOnlyString (line 8) | [Theory]
    method ConvertToRoundedClockNotationTimeOnlyString (line 37) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/cs/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("cs-CZ")]
    method SecondsFromNow (line 6) | [Theory]
    method MinutesFromNow (line 17) | [Theory]
    method HoursFromNow (line 28) | [Theory]
    method DayFromNow (line 39) | [Theory]
    method MonthsFromNow (line 49) | [Theory]
    method YearsFromNow (line 60) | [Theory]
    method SecondsAgo (line 71) | [Theory]
    method MinutesAgo (line 82) | [Theory]
    method HoursAgo (line 94) | [Theory]
    method DayAgo (line 105) | [Theory]
    method MonthsAgo (line 115) | [Theory]
    method YearsAgo (line 126) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/cs/NumberToWordsTests.cs
  class NumberToWordsTests (line 3) | [UseCulture("cs-CZ")]
    method ToWordsCzech (line 6) | [Theory]
    method ToWordsCzechFeminine (line 61) | [Theory]
    method ToWordsCzechNeuter (line 116) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/cs/TimeSpanHumanizeTests.cs
  class TimeSpanHumanizeTests (line 3) | [UseCulture("cs-CZ")]
    method Years (line 6) | [Theory]
    method Months (line 15) | [Theory]
    method Milliseconds (line 24) | [Theory]
    method Seconds (line 35) | [Theory]
    method Minutes (line 46) | [Theory]
    method Hours (line 57) | [Theory]
    method Days (line 68) | [Theory]
    method Weeks (line 78) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/da/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("da-DK")]
    method DaysAgo (line 6) | [Theory]
    method DaysFromNow (line 12) | [Theory]
    method SecondsFromNow (line 18) | [Theory]
    method HoursAgo (line 24) | [Theory]
    method HoursFromNow (line 30) | [Theory]
    method MinutesAgo (line 36) | [Theory]
    method MinutesFromNow (line 43) | [Theory]
    method MonthsAgo (line 51) | [Theory]
    method MonthsFromNow (line 57) | [Theory]
    method SecondsAgo (line 63) | [Theory]
    method YearsAgo (line 69) | [Theory]
    method YearsFromNow (line 75) | [Theory]
    method Now (line 81) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/da/TimeSpanHumanizeTests.cs
  class TimeSpanHumanizeTests (line 3) | [UseCulture("da-DK")]
    method Years (line 6) | [Theory]
    method Months (line 15) | [Theory]
    method Weeks (line 24) | [Theory]
    method Days (line 30) | [Theory]
    method Hours (line 36) | [Theory]
    method Minutes (line 42) | [Theory]
    method Seconds (line 48) | [Theory]
    method Milliseconds (line 54) | [Theory]
    method NoTime (line 60) | [Fact]
    method NoTimeToWords (line 64) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/de-CH/NumberToWordsTests.cs
  class NumberToWordsTests (line 3) | [UseCulture("de-CH")]
    method ToWords (line 6) | [Theory]
    method ToWordsFeminine (line 53) | [Theory]
    method ToOrdinalWords (line 59) | [Theory]
    method ToOrdinalWordsFeminine (line 103) | [Theory]
    method ToOrdinalWordsNeuter (line 127) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/de-LI/NumberToWordsTests.cs
  class NumberToWordsTests (line 3) | [UseCulture("de-LI")]
    method ToWords (line 6) | [Theory]
    method ToWordsFeminine (line 53) | [Theory]
    method ToOrdinalWords (line 59) | [Theory]
    method ToOrdinalWordsFeminine (line 103) | [Theory]
    method ToOrdinalWordsNeuter (line 127) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/de/Bytes/ByteRateTests.cs
  class ByteRateTests (line 3) | [UseCulture("de-DE")]
    method HumanizesRates (line 6) | [Theory]
    method TimeUnitTests (line 23) | [Theory]
    method FormattedTimeUnitTests (line 44) | [Theory]
    method ThrowsOnUnsupportedData (line 57) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/de/Bytes/ByteSizeExtensionsTests.cs
  class ByteSizeExtensionsTests (line 3) | [UseCulture("de-DE")]
    method HumanizesTerabytes (line 6) | [Theory]
    method HumanizesGigabytes (line 13) | [Theory]
    method HumanizesMegabytes (line 22) | [Theory]
    method HumanizesKilobytes (line 31) | [Theory]
    method HumanizesBytes (line 40) | [Theory]
    method HumanizesBits (line 54) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/de/Bytes/ToFullWordsTests.cs
  class ToFullWordsTests (line 3) | [UseCulture("de-DE")]
    method ReturnsSingularBit (line 6) | [Fact]
    method ReturnsPluralBits (line 10) | [Fact]
    method ReturnsSingularByte (line 14) | [Fact]
    method ReturnsPluralBytes (line 18) | [Fact]
    method ReturnsSingularKiloByte (line 22) | [Fact]
    method ReturnsPluralKilobytes (line 26) | [Fact]
    method ReturnsSingularMegabyte (line 30) | [Fact]
    method ReturnsPluralMegabytes (line 34) | [Fact]
    method ReturnsSingularGigabyte (line 38) | [Fact]
    method ReturnsPluralGigabytes (line 42) | [Fact]
    method ReturnsSingularTerabyte (line 46) | [Fact]
    method ReturnsPluralTerabytes (line 50) | [Fact]
    method ToFullWordsFormatted (line 54) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/de/Bytes/ToStringTests.cs
  class ToStringTests (line 3) | [UseCulture("de-DE")]
    method ReturnsLargestMetricSuffix (line 6) | [Fact]
    method ReturnsDefaultNumberFormat (line 10) | [Fact]
    method ReturnsProvidedNumberFormat (line 14) | [Fact]
    method ReturnsBits (line 18) | [Fact]
    method ReturnsBytes (line 22) | [Fact]
    method ReturnsKilobytes (line 26) | [Fact]
    method ReturnsMegabytes (line 30) | [Fact]
    method ReturnsGigabytes (line 34) | [Fact]
    method ReturnsTerabytes (line 38) | [Fact]
    method ReturnsSelectedFormat (line 42) | [Fact]
    method ReturnsLargestMetricPrefixLargerThanZero (line 46) | [Fact]
    method ReturnsLargestMetricPrefixLargerThanZeroForNegativeValues (line 50) | [Fact]
    method ReturnsBytesViaGeneralFormat (line 54) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/de/CollectionFormatterTests.cs
  class CollectionFormatterTests (line 3) | [UseCulture("de")]
    method OneItem (line 6) | [Fact]
    method TwoItems (line 14) | [Fact]
    method MoreThanTwoItems (line 22) | [Fact]

FILE: tests/Humanizer.Tests/Localisation/de/DateHumanizeTests.cs
  class DateHumanizeTests (line 3) | [UseCulture("de-DE")]
    method DaysAgo (line 6) | [Theory]
    method DaysFromNow (line 12) | [Theory]
    method HoursAgo (line 18) | [Theory]
    method HoursFromNow (line 24) | [Theory]
    method MinutesAgo (line 30) | [Theory]
    method MinutesFromNow (line 37) | [Theory]
    method MonthsAgo (line 43) | [Theory]
    method MonthsFromNow (line 49) | [Theory]
    method SecondsAgo (line 55) | [Theory]
    method SecondsFromNow (line 61) | [Theory]
    method YearsAgo (line 67) | [Theory]
    method YearsFromNow (line 73) | [Theory]

FILE: tests/Humanizer.Tests/Localisation/de/DateToOrdinalWordsTests.cs
  class DateToOrdinalWordsTests (line 3) | [UseCulture("de")]
    method OrdinalizeString (line 6) | [Fact]
    method OrdinalizeDateOnlyString (line 11) | [Fact]

FILE: tests
Condensed preview — 716 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,807K chars).
[
  {
    "path": ".editorconfig",
    "chars": 12560,
    "preview": "root = true\n# EditorConfig: http://EditorConfig.org\n\n# top-most EditorConfig file\n\n[*]\nindent_style = space\n\n\n[*.cs]\nind"
  },
  {
    "path": ".gitattributes",
    "chars": 1647,
    "preview": "* text=auto\r\n\r\n# Custom for Visual Studio\r\n*.cs     diff=csharp\r\n*.sln    merge=union\r\n*.csproj merge=union\r\n*.vbproj me"
  },
  {
    "path": ".github/CODE_OF_CONDUCT.md",
    "chars": 263,
    "preview": "# Code of Conduct\r\n\r\nThis project has adopted the code of conduct defined by the Contributor Covenant\r\nto clarify expect"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 6617,
    "preview": "## <a id=\"how-to-contribute\">How to contribute?</a>\r\nYour contributions to Humanizer are very welcome.\r\nIf you find a bu"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 1115,
    "preview": "Here is a checklist you should tick through before submitting a pull request: \r\n - [ ] Implementation is clean\r\n - [ ] C"
  },
  {
    "path": ".github/codeql/codeql-config.yml",
    "chars": 167,
    "preview": "name: humanizer-codeql\nqueries:\n  - uses: security-extended\n  - uses: security-and-quality\npaths:\n  - src/Humanizer/\npat"
  },
  {
    "path": ".github/copilot-instructions.md",
    "chars": 3463,
    "preview": "# Agent Instructions\r\n\r\n## Scope\r\nThese instructions apply to the entire repository.\r\n\r\n## Project Overview\r\n- Humanizer"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 127,
    "preview": "version: 2\nupdates:\n- package-ecosystem: nuget\n  directory: \"/\"\n  schedule:\n    interval: daily\n  open-pull-requests-lim"
  },
  {
    "path": ".github/workflows/.devskim",
    "chars": 129,
    "preview": "{\n  \"Globs\": [\n    \"**/.git/**\",\n    \"**/bin/**\",\n    \"**/obj/**\",\n    \"**/nuget.config\"        // exact file at repo ro"
  },
  {
    "path": ".github/workflows/benchmarks-baseline-vs-current.yml",
    "chars": 7044,
    "preview": "name: Benchmark Baseline vs Current\n\non:\n  workflow_dispatch:\n    inputs:\n      baselineVersion:\n        description: 'N"
  },
  {
    "path": ".github/workflows/codeql.yml",
    "chars": 1846,
    "preview": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# Y"
  },
  {
    "path": ".github/workflows/copilot-setup-steps.yml",
    "chars": 1352,
    "preview": "name: \"Copilot Setup Steps\"\n\n# Automatically run the setup steps when they are changed to allow for easy validation, and"
  },
  {
    "path": ".github/workflows/devskim.yml",
    "chars": 913,
    "preview": "# This workflow uses actions that are not certified by GitHub.\n# They are provided by a third-party and are governed by\n"
  },
  {
    "path": ".github/workflows/jekyll-gh-pages.yml",
    "chars": 1794,
    "preview": "# Sample workflow for building and deploying a Jekyll site to GitHub Pages\nname: Deploy Jekyll with GitHub Pages depende"
  },
  {
    "path": ".gitignore",
    "chars": 1786,
    "preview": "## --------------------------------------------\n##  xUnit.net specific ignores\n\nTest*.html\nTest*.xml\n*.zip\n*.exe\n*.nuget"
  },
  {
    "path": "AGENTS.md",
    "chars": 3463,
    "preview": "# Agent Instructions\r\n\r\n## Scope\r\nThese instructions apply to the entire repository.\r\n\r\n## Project Overview\r\n- Humanizer"
  },
  {
    "path": "Directory.Build.props",
    "chars": 2299,
    "preview": "<Project>  \n  \n  <PropertyGroup>\n    <LangVersion>preview</LangVersion>\n    <Nullable>enable</Nullable>\n    <AllowUnsafe"
  },
  {
    "path": "Directory.Build.targets",
    "chars": 1354,
    "preview": "<Project>\r\n\r\n\r\n  <PropertyGroup>\r\n    <Product>$(Product) ($(TargetFramework))</Product>\r\n  </PropertyGroup>\r\n\r\n\r\n  <Pro"
  },
  {
    "path": "Directory.Packages.props",
    "chars": 1652,
    "preview": "<Project>\n  <PropertyGroup>\n    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>\n    <CentralPacka"
  },
  {
    "path": "Directory.Solution.targets",
    "chars": 453,
    "preview": "<Project>\r\n    <Target Name=\"AssertRestoreTaskOutputProperties\"\r\n            AfterTargets=\"Restore\">\r\n        <Error\r\n "
  },
  {
    "path": "Humanizer.slnx",
    "chars": 4212,
    "preview": "<Solution>\n  <Configurations>\n    <Platform Name=\"Any CPU\" />\n    <Platform Name=\"ARM\" />\n    <Platform Name=\"x64\" />\n  "
  },
  {
    "path": "NuSpecs/Humanizer.Core.af.nuspec",
    "chars": 1167,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.af</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ar.nuspec",
    "chars": 1252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.ar</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.az.nuspec",
    "chars": 1256,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.az</id>\r"
  },
  {
    "path": "NuSpecs/Humanizer.Core.bg.nuspec",
    "chars": 1255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.bg</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.bn.nuspec",
    "chars": 1265,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.bn</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ca.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.ca</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.cs.nuspec",
    "chars": 1251,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.cs</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.da.nuspec",
    "chars": 1252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.da</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.de.nuspec",
    "chars": 1252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.de</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.el.nuspec",
    "chars": 1251,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.el</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.es.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.es</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.fa.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.fa</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.fi.nuspec",
    "chars": 1263,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.fi</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.fil.nuspec",
    "chars": 1280,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.fil</id"
  },
  {
    "path": "NuSpecs/Humanizer.Core.fr.nuspec",
    "chars": 1252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.fr</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.he.nuspec",
    "chars": 1252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.he</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.hr.nuspec",
    "chars": 1254,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.hr</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.hu.nuspec",
    "chars": 1255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.hu</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.hy.nuspec",
    "chars": 1256,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.hy</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.id.nuspec",
    "chars": 1256,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.id</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.is.nuspec",
    "chars": 1255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.is</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.it.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.it</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ja.nuspec",
    "chars": 1254,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.ja</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ko.nuspec",
    "chars": 1172,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.ko</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ku.nuspec",
    "chars": 1261,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.ku</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.lb.nuspec",
    "chars": 1259,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.lb</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.lt.nuspec",
    "chars": 1255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.lt</id>\r"
  },
  {
    "path": "NuSpecs/Humanizer.Core.lv.nuspec",
    "chars": 1252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.lv</id>\r"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ms.nuspec",
    "chars": 1168,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.ms</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.mt.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.mt</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.nb.nuspec",
    "chars": 1262,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.nb</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.nl.nuspec",
    "chars": 1251,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.nl</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.nuspec",
    "chars": 2898,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core</id>\r\n "
  },
  {
    "path": "NuSpecs/Humanizer.Core.pl.nuspec",
    "chars": 1252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.pl</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.pt-BR.nuspec",
    "chars": 1300,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.pt-BR</"
  },
  {
    "path": "NuSpecs/Humanizer.Core.pt.nuspec",
    "chars": 1256,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.pt</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ro.nuspec",
    "chars": 1254,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.ro</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ru.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.ru</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.sk.nuspec",
    "chars": 1252,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.sk</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.sl.nuspec",
    "chars": 1255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.sl</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.sr-Latn.nuspec",
    "chars": 1313,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.sr-Latn"
  },
  {
    "path": "NuSpecs/Humanizer.Core.sr.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.sr</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.sv.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.sv</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.ta.nuspec.unused",
    "chars": 1217,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package>\n  <metadata minClientVersion=\"2.12\">\n    <id>Humanizer.Core.ta</id>\n   "
  },
  {
    "path": "NuSpecs/Humanizer.Core.th.nuspec",
    "chars": 1170,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.th</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.tr.nuspec",
    "chars": 1253,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.tr</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.uk.nuspec",
    "chars": 1255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.uk</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.uz-Cyrl-UZ.nuspec",
    "chars": 1370,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.uz-Cyrl"
  },
  {
    "path": "NuSpecs/Humanizer.Core.uz-Latn-UZ.nuspec",
    "chars": 1367,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.uz-Latn"
  },
  {
    "path": "NuSpecs/Humanizer.Core.vi.nuspec",
    "chars": 1256,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.vi</id>"
  },
  {
    "path": "NuSpecs/Humanizer.Core.zh-CN.nuspec",
    "chars": 1297,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.zh-CN</"
  },
  {
    "path": "NuSpecs/Humanizer.Core.zh-Hans.nuspec",
    "chars": 1313,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.zh-Hans"
  },
  {
    "path": "NuSpecs/Humanizer.Core.zh-Hant.nuspec",
    "chars": 1313,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"2.12\">\r\n    <id>Humanizer.Core.zh-Hant"
  },
  {
    "path": "NuSpecs/Humanizer.nuspec",
    "chars": 4354,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<package>\r\n  <metadata minClientVersion=\"6.13\">\r\n    <id>Humanizer</id>\r\n    <v"
  },
  {
    "path": "ResXManager.config.xml",
    "chars": 155,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Values xmlns=\"urn:tom-englert.de/Configuration/1/0\">\r\n  <Value Key=\"SortFileCon"
  },
  {
    "path": "azure-pipelines.yml",
    "chars": 4065,
    "preview": "trigger:\n- main\n- rel/*\n\npr:\n- main\n- rel/*\n\nvariables:\n  BuildConfiguration: Release\n  DOTNET_SKIP_FIRST_TIME_EXPERIENC"
  },
  {
    "path": "docs/_config.yml",
    "chars": 460,
    "preview": "# Jekyll configuration for Humanizer GitHub Pages\ntitle: Humanizer\ndescription: Humanizer meets all your .NET needs for "
  },
  {
    "path": "docs/_layouts/default.html",
    "chars": 1036,
    "preview": "<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "docs/assets/css/style.css",
    "chars": 4012,
    "preview": "/* Root CSS variables for light mode (default) */\r\n:root {\r\n    --bg-color: #ffffff;\r\n    --text-color: #333333;\r\n    --"
  },
  {
    "path": "docs/extensibility.md",
    "chars": 5389,
    "preview": "# Extensibility\r\n\r\nHumanizer is designed to be extensible, allowing you to customize and extend its behavior to meet you"
  },
  {
    "path": "docs/index.md",
    "chars": 3333,
    "preview": "# Humanizer Documentation\r\n\r\nHumanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, "
  },
  {
    "path": "docs/installation.md",
    "chars": 2966,
    "preview": "# Installation\r\n\r\n## NuGet Packages\r\n\r\nHumanizer is available as NuGet packages with different language support options:"
  },
  {
    "path": "docs/localization.md",
    "chars": 4314,
    "preview": "# Localization\r\n\r\nHumanizer supports over 40 languages and cultures, with localized implementations for most features.\r\n"
  },
  {
    "path": "docs/migration-v3.md",
    "chars": 11221,
    "preview": "# Migrating from Humanizer 2.14.1 to 3.0.8\r\n\r\nThis guide is for teams upgrading directly from `2.14.1` to `3.0.8`.\r\n\r\nTh"
  },
  {
    "path": "docs/quick-start.md",
    "chars": 3052,
    "preview": "# Quick Start Guide\r\n\r\nGet started with Humanizer in minutes.\r\n\r\n## Installation\r\n\r\nInstall the Humanizer NuGet package:"
  },
  {
    "path": "docs/string-dehumanization.md",
    "chars": 1159,
    "preview": "# String Dehumanization\r\n\r\nConvert human-friendly strings back to PascalCase format.\r\n\r\n## Overview\r\n\r\nDehumanization re"
  },
  {
    "path": "docs/string-humanization.md",
    "chars": 3987,
    "preview": "# String Humanization\r\n\r\nString humanization transforms computerized strings (like class names, method names, or propert"
  },
  {
    "path": "docs/string-truncation.md",
    "chars": 5134,
    "preview": "# String Truncation\r\n\r\nHumanizer provides intelligent string truncation with multiple strategies to handle different use"
  },
  {
    "path": "docs/v3-namespace-migration.md",
    "chars": 6796,
    "preview": "# Humanizer v3 Namespace Migration\r\n\r\nThis document provides guidance on migrating code from Humanizer v2 to v3, focusin"
  },
  {
    "path": "global.json",
    "chars": 140,
    "preview": "{\n  \"sdk\": {\n    \"version\": \"10.0.100\",\n    \"rollForward\": \"latestFeature\"\n  },\n  \"test\": {\n    \"runner\": \"Microsoft.Tes"
  },
  {
    "path": "license.txt",
    "chars": 1600,
    "preview": "The MIT License (MIT)\r\n\r\nCopyright (c) .NET Foundation and Contributors\r\n\r\nPermission is hereby granted, free of charge,"
  },
  {
    "path": "nuget.config",
    "chars": 889,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<configuration>\r\n  <config>\r\n    <add key=\"signatureValidationMode\" value=\"requ"
  },
  {
    "path": "readme.md",
    "chars": 43151,
    "preview": "# <img width=\"30px\" src=\"logo.png\" /> Humanizer\r\n\r\n[![Build Status](https://dev.azure.com/dotnet/Humanizer/_apis/build/"
  },
  {
    "path": "release_notes.md",
    "chars": 30738,
    "preview": "# v2.2\r\n\r\n - [#634](https://github.com/Humanizr/Humanizer/pull/634) - Added support for Greek language in resources cont"
  },
  {
    "path": "src/Benchmarks/.editorconfig",
    "chars": 320,
    "preview": "\n[*.cs]\ndotnet_diagnostic.CA1050.severity = none # CA1050: Declare types in namespaces\n\n\n# CA1861: Avoid constant arrays"
  },
  {
    "path": "src/Benchmarks/Benchmarks.csproj",
    "chars": 985,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n  <PropertyGroup>\r\n    <OutputType>Exe</OutputType>\r\n    <TargetFrameworks>net10.0"
  },
  {
    "path": "src/Benchmarks/EnglishArticleBenchmarks.cs",
    "chars": 393,
    "preview": "[MemoryDiagnoser(false)]\r\npublic class EnglishArticleBenchmarks\r\n{\r\n    [Benchmark]\r\n    public string[] AppendArticlePr"
  },
  {
    "path": "src/Benchmarks/EnglishToWordsBenchmark.cs",
    "chars": 326,
    "preview": "[MemoryDiagnoser]\r\npublic class EnglishToWordsBenchmark\r\n{\r\n    readonly EnglishNumberToWordsConverter converter = new()"
  },
  {
    "path": "src/Benchmarks/EnumBenchmarks.cs",
    "chars": 600,
    "preview": "[MemoryDiagnoser(false)]\r\npublic class EnumBenchmarks\r\n{\r\n    public enum EnumUnderTest\r\n    {\r\n        [Description(\"T"
  },
  {
    "path": "src/Benchmarks/GlobalUsings.cs",
    "chars": 194,
    "preview": "global using System.ComponentModel;\r\nglobal using System.ComponentModel.DataAnnotations;\r\nglobal using BenchmarkDotNet.A"
  },
  {
    "path": "src/Benchmarks/InflectorBenchmarks.cs",
    "chars": 1236,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summary>\r\n/// Benchmarks for Inflec"
  },
  {
    "path": "src/Benchmarks/ItalianNumberBenchmarks.cs",
    "chars": 1349,
    "preview": "using System.Globalization;\r\n\r\n[MemoryDiagnoser(false)]\r\npublic class ItalianNumberBenchmarks\r\n{\r\n    static readonly Cu"
  },
  {
    "path": "src/Benchmarks/MetricNumeralBenchmarks.cs",
    "chars": 1080,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summary>\r\n/// Benchmarks for Metric"
  },
  {
    "path": "src/Benchmarks/NumberToWordsBenchmarks.cs",
    "chars": 1277,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summary>\r\n/// Benchmarks for number"
  },
  {
    "path": "src/Benchmarks/OrdinalBenchmarks.cs",
    "chars": 986,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\nusing System.Globalization;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summar"
  },
  {
    "path": "src/Benchmarks/Program.cs",
    "chars": 725,
    "preview": "using BenchmarkDotNet.Configs;\r\nusing BenchmarkDotNet.Diagnosers;\r\nusing BenchmarkDotNet.Environments;\r\nusing BenchmarkD"
  },
  {
    "path": "src/Benchmarks/README.md",
    "chars": 6691,
    "preview": "# Humanizer Benchmarks\r\n\r\nThis project contains comprehensive benchmarks for the Humanizer library, demonstrating perfor"
  },
  {
    "path": "src/Benchmarks/RomanNumeralBenchmarks.cs",
    "chars": 964,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summary>\r\n/// Benchmarks for RomanN"
  },
  {
    "path": "src/Benchmarks/StringHumanizeBenchmarks.cs",
    "chars": 1071,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summary>\r\n/// Benchmarks for String"
  },
  {
    "path": "src/Benchmarks/TimeOnlyToClockNotationConverterBenchmarks.cs",
    "chars": 1708,
    "preview": "[MemoryDiagnoser(false)]\r\npublic class TimeOnlyToClockNotationConverterBenchmarks\r\n{\r\n    static readonly TimeOnly time "
  },
  {
    "path": "src/Benchmarks/ToQuantityBenchmarks.cs",
    "chars": 974,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summary>\r\n/// Benchmarks for ToQuan"
  },
  {
    "path": "src/Benchmarks/TransformersBenchmarks.cs",
    "chars": 1580,
    "preview": "[MemoryDiagnoser(false)]\r\npublic class TransformersBenchmarks\r\n{\r\n    // hard-coded seed ensures the same random strings"
  },
  {
    "path": "src/Benchmarks/VocabularyBenchmarks.cs",
    "chars": 1463,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summary>\r\n/// Benchmarks for Vocabu"
  },
  {
    "path": "src/Benchmarks/WordsToNumberBenchmarks.cs",
    "chars": 1064,
    "preview": "using BenchmarkDotNet.Attributes;\r\nusing Humanizer;\r\nusing System.Globalization;\r\n\r\nnamespace Benchmarks;\r\n\r\n/// <summar"
  },
  {
    "path": "src/Humanizer/ArticlePrefixSort.cs",
    "chars": 4519,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Contains methods for removing, appending and prepending article prefixes for "
  },
  {
    "path": "src/Humanizer/Bytes/ByteRate.cs",
    "chars": 1955,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Class to hold a ByteSize and a measurement interval, for the purpose of calcu"
  },
  {
    "path": "src/Humanizer/Bytes/ByteSize.cs",
    "chars": 17907,
    "preview": "//The MIT License (MIT)\r\n\r\n//Copyright (c) 2013-2014 Omar Khudeira (http://omar.io)\r\n\r\n//Permission is hereby granted, f"
  },
  {
    "path": "src/Humanizer/Bytes/ByteSizeExtensions.cs",
    "chars": 9807,
    "preview": "// ReSharper disable once CheckNamespace\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// Provides extension methods for Byt"
  },
  {
    "path": "src/Humanizer/Bytes/LICENSE",
    "chars": 1102,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013-2017 Omar Khudeira (http://omar.io)\n\nPermission is hereby granted, free of cha"
  },
  {
    "path": "src/Humanizer/CasingExtensions.cs",
    "chars": 1929,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// ApplyCase method to allow changing the case of a sentence easily\r\n/// </summ"
  },
  {
    "path": "src/Humanizer/ClockNotationRounding.cs",
    "chars": 336,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Options for specifying readable clock notation\r\n/// </summary>\r\npublic enum "
  },
  {
    "path": "src/Humanizer/CollectionHumanizeExtensions.cs",
    "chars": 8931,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Humanizes an IEnumerable into a human readable list\r\n/// </summary>\r\npublic "
  },
  {
    "path": "src/Humanizer/Configuration/CollectionFormatterRegistry.cs",
    "chars": 1169,
    "preview": "namespace Humanizer;\r\n\r\nclass CollectionFormatterRegistry : LocaliserRegistry<ICollectionFormatter>\r\n{\r\n    public Colle"
  },
  {
    "path": "src/Humanizer/Configuration/Configurator.cs",
    "chars": 8235,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Provides a configuration point for Humanizer\r\n/// </summary>\r\npublic static c"
  },
  {
    "path": "src/Humanizer/Configuration/DateOnlyToOrdinalWordsConverterRegistry.cs",
    "chars": 644,
    "preview": "#if NET6_0_OR_GREATER\r\nnamespace Humanizer;\r\n\r\nclass DateOnlyToOrdinalWordsConverterRegistry : LocaliserRegistry<IDateOn"
  },
  {
    "path": "src/Humanizer/Configuration/DateToOrdinalWordsConverterRegistry.cs",
    "chars": 584,
    "preview": "namespace Humanizer;\r\n\r\nclass DateToOrdinalWordsConverterRegistry : LocaliserRegistry<IDateToOrdinalWordConverter>\r\n{\r\n "
  },
  {
    "path": "src/Humanizer/Configuration/FormatterRegistry.cs",
    "chars": 2827,
    "preview": "namespace Humanizer;\r\n\r\nclass FormatterRegistry : LocaliserRegistry<IFormatter>\r\n{\r\n    public FormatterRegistry()\r\n    "
  },
  {
    "path": "src/Humanizer/Configuration/LocaliserRegistry.cs",
    "chars": 4016,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// A registry of localised system components with their associated locales\r\n/// "
  },
  {
    "path": "src/Humanizer/Configuration/NumberToWordsConverterRegistry.cs",
    "chars": 3928,
    "preview": "namespace Humanizer;\r\n\r\nclass NumberToWordsConverterRegistry : LocaliserRegistry<INumberToWordsConverter>\r\n{\r\n    public"
  },
  {
    "path": "src/Humanizer/Configuration/OrdinalizerRegistry.cs",
    "chars": 1154,
    "preview": "namespace Humanizer;\r\n\r\nclass OrdinalizerRegistry : LocaliserRegistry<IOrdinalizer>\r\n{\r\n    public OrdinalizerRegistry()"
  },
  {
    "path": "src/Humanizer/Configuration/TimeOnlyToClockNotationConvertersRegistry.cs",
    "chars": 834,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\nclass TimeOnlyToClockNotationConvertersRegistry : LocaliserRegistry<ITi"
  },
  {
    "path": "src/Humanizer/Configuration/WordsToNumberConverterRegistry.cs",
    "chars": 420,
    "preview": "namespace Humanizer;\r\n\r\ninternal class WordsToNumberConverterRegistry : LocaliserRegistry<IWordsToNumberConverter>\r\n{\r\n "
  },
  {
    "path": "src/Humanizer/DateHumanizeExtensions.cs",
    "chars": 7869,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Humanizes DateTime into human readable sentence\r\n/// </summary>\r\npublic stat"
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/DateTimeHumanizeAlgorithms.cs",
    "chars": 8085,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Algorithms used to convert distance between two dates into words.\r\n/// </sum"
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/DefaultDateOnlyHumanizeStrategy.cs",
    "chars": 523,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// The default 'distance of time' -> words calculator."
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/DefaultDateTimeHumanizeStrategy.cs",
    "chars": 485,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// The default 'distance of time' -> words calculator.\r\n/// </summary>\r\npublic c"
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/DefaultDateTimeOffsetHumanizeStrategy.cs",
    "chars": 533,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// The default 'distance of time' -> words calculator.\r\n/// </summary>\r\npublic c"
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/DefaultTimeOnlyHumanizeStrategy.cs",
    "chars": 523,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// The default 'distance of time' -> words calculator."
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/IDateOnlyHumanizeStrategy.cs",
    "chars": 503,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// Implement this interface to create a new strategy f"
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/IDateTimeHumanizeStrategy.cs",
    "chars": 466,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Implement this interface to create a new strategy for DateTime.Humanize and "
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/IDateTimeOffsetHumanizeStrategy.cs",
    "chars": 496,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Implement this interface to create a new strategy for DateTime.Humanize and "
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/ITimeOnlyHumanizeStrategy.cs",
    "chars": 503,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// Implement this interface to create a new strategy f"
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/PrecisionDateOnlyHumanizeStrategy.cs",
    "chars": 893,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// Precision-based calculator for distance between two "
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/PrecisionDateTimeHumanizeStrategy.cs",
    "chars": 856,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Precision-based calculator for distance between two times\r\n/// </summary>\r\n//"
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/PrecisionDateTimeOffsetHumanizeStrategy.cs",
    "chars": 904,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Precision-based calculator for distance between two times\r\n/// </summary>\r\n//"
  },
  {
    "path": "src/Humanizer/DateTimeHumanizeStrategy/PrecisionTimeOnlyHumanizeStrategy.cs",
    "chars": 893,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// Precision-based calculator for distance between two "
  },
  {
    "path": "src/Humanizer/DateToOrdinalWordsExtensions.cs",
    "chars": 4963,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Humanizes DateTime into human readable sentence\r\n/// </summary>\r\npublic stat"
  },
  {
    "path": "src/Humanizer/EnumCache.cs",
    "chars": 3741,
    "preview": "using System.ComponentModel.DataAnnotations;\r\n\r\nnamespace Humanizer;\r\n\r\nstatic class EnumCache<[DynamicallyAccessedMembe"
  },
  {
    "path": "src/Humanizer/EnumDehumanizeExtensions.cs",
    "chars": 7976,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Contains extension methods for dehumanizing Enum string values.\r\n/// </summar"
  },
  {
    "path": "src/Humanizer/EnumHumanizeExtensions.cs",
    "chars": 4337,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Contains extension methods for humanizing Enums\r\n/// </summary>\r\npublic stat"
  },
  {
    "path": "src/Humanizer/FluentDate/In.Months.cs",
    "chars": 4174,
    "preview": "namespace Humanizer;\r\n\r\npublic partial class In\r\n{\r\n    /// <summary>\r\n    /// Returns 1st of January of the current ye"
  },
  {
    "path": "src/Humanizer/FluentDate/In.Months.tt",
    "chars": 771,
    "preview": "<#@ template debug=\"true\" hostSpecific=\"true\" #>\n<#@ output extension=\".cs\" #>\n<#@ Assembly Name=\"System.Core\" #>\n<#@ A"
  },
  {
    "path": "src/Humanizer/FluentDate/In.SomeTimeFrom.cs",
    "chars": 25384,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// </summary>\r\npublic partial class In\r\n{\r\n    /// <summary>\r\n    /// </summary"
  },
  {
    "path": "src/Humanizer/FluentDate/In.SomeTimeFrom.tt",
    "chars": 3431,
    "preview": "<#@ template debug=\"true\" hostSpecific=\"true\" culture=\"en-US\"#>\n<#@ output extension=\".cs\" #>\n<#@ Assembly Name=\"System"
  },
  {
    "path": "src/Humanizer/FluentDate/In.cs",
    "chars": 227,
    "preview": "namespace Humanizer;\r\n\r\npublic partial class In\r\n{\r\n    /// <summary>\r\n    /// Returns the first of January of the prov"
  },
  {
    "path": "src/Humanizer/FluentDate/InDate.Months.cs",
    "chars": 4211,
    "preview": "\r\n#if NET6_0_OR_GREATER\r\nnamespace Humanizer;\r\n\r\npublic partial class InDate\r\n{\r\n    /// <summary>\r\n    /// Returns 1st"
  },
  {
    "path": "src/Humanizer/FluentDate/InDate.Months.tt",
    "chars": 804,
    "preview": "<#@ template debug=\"true\" hostSpecific=\"true\" #>\n<#@ output extension=\".cs\" #>\n<#@ Assembly Name=\"System.Core\" #>\n<#@ A"
  },
  {
    "path": "src/Humanizer/FluentDate/InDate.SomeTimeFrom.cs",
    "chars": 23997,
    "preview": "#if NET6_0_OR_GREATER\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// </summary>\r\npublic partial class InDate\r\n{\r\n    /// <"
  },
  {
    "path": "src/Humanizer/FluentDate/InDate.SomeTimeFrom.tt",
    "chars": 3194,
    "preview": "<#@ template debug=\"true\" hostSpecific=\"true\" culture=\"en-US\"#>\n<#@ output extension=\".cs\" #>\n<#@ Assembly Name=\"System"
  },
  {
    "path": "src/Humanizer/FluentDate/InDate.cs",
    "chars": 264,
    "preview": "#if NET6_0_OR_GREATER\r\nnamespace Humanizer;\r\n\r\npublic partial class InDate\r\n{\r\n    /// <summary>\r\n    /// Returns the f"
  },
  {
    "path": "src/Humanizer/FluentDate/On.Days.cs",
    "chars": 74209,
    "preview": "namespace Humanizer;\r\n\r\npublic class On\r\n{\r\n    /// <summary>\r\n    /// Provides fluent date accessors for January\r\n    "
  },
  {
    "path": "src/Humanizer/FluentDate/On.Days.tt",
    "chars": 1241,
    "preview": "<#@ template debug=\"true\" hostSpecific=\"true\" #>\n<#@ output extension=\".cs\" #>\n<#@ Assembly Name=\"System.Core\" #>\n<#@ A"
  },
  {
    "path": "src/Humanizer/FluentDate/OnDate.Days.cs",
    "chars": 74222,
    "preview": "#if NET6_0_OR_GREATER\r\nnamespace Humanizer;\r\n\r\npublic class OnDate\r\n{\r\n    /// <summary>\r\n    /// Provides fluent date "
  },
  {
    "path": "src/Humanizer/FluentDate/OnDate.Days.tt",
    "chars": 1273,
    "preview": "<#@ template debug=\"true\" hostSpecific=\"true\" #>\n<#@ output extension=\".cs\" #>\n<#@ Assembly Name=\"System.Core\" #>\n<#@ A"
  },
  {
    "path": "src/Humanizer/FluentDate/PrepositionsExtensions.cs",
    "chars": 1323,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// <see cref=\"DateTime\"/> extensions related to spatial or temporal relations\r\n"
  },
  {
    "path": "src/Humanizer/GlobalUsings.cs",
    "chars": 352,
    "preview": "global using System;\r\nglobal using System.Buffers;\r\nglobal using System.Collections.Concurrent;\r\nglobal using System.Col"
  },
  {
    "path": "src/Humanizer/GrammaticalCase.cs",
    "chars": 799,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Options for specifying the desired grammatical case for the output words\r\n///"
  },
  {
    "path": "src/Humanizer/GrammaticalGender.cs",
    "chars": 470,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Options for specifying the desired grammatical gender for the output words\r\n/"
  },
  {
    "path": "src/Humanizer/HeadingExtensions.cs",
    "chars": 4484,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Style for the cardinal direction humanization\r\n/// </summary>\r\npublic enum He"
  },
  {
    "path": "src/Humanizer/Humanizer.csproj",
    "chars": 6822,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n  <PropertyGroup>\r\n    <TargetFrameworks>net10.0;net8.0;net48;netstandard2.0</Target"
  },
  {
    "path": "src/Humanizer/Inflections/LICENSE",
    "chars": 1081,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013 Scott Kirkland\n\nPermission is hereby granted, free of charge, to any person ob"
  },
  {
    "path": "src/Humanizer/Inflections/Vocabularies.cs",
    "chars": 7366,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Container for registered Vocabularies.  At present, only a single vocabulary "
  },
  {
    "path": "src/Humanizer/Inflections/Vocabulary.cs",
    "chars": 7582,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// A container for exceptions to simple pluralization/singularization rules.\r\n//"
  },
  {
    "path": "src/Humanizer/InflectorExtensions.cs",
    "chars": 13685,
    "preview": "//The Inflector class was cloned from Inflector (https://github.com/srkirkland/Inflector)\r\n\r\n//The MIT License (MIT)\r\n\r\n"
  },
  {
    "path": "src/Humanizer/LetterCasing.cs",
    "chars": 514,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Options for specifying the desired letter casing for the output string\r\n/// <"
  },
  {
    "path": "src/Humanizer/Localisation/CollectionFormatters/DefaultCollectionFormatter.cs",
    "chars": 2829,
    "preview": "namespace Humanizer;\r\n\r\nclass DefaultCollectionFormatter(string defaultSeparator) : ICollectionFormatter\r\n{\r\n    protec"
  },
  {
    "path": "src/Humanizer/Localisation/CollectionFormatters/ICollectionFormatter.cs",
    "chars": 1713,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// An interface you should implement to localize Humanize for collections\r\n/// "
  },
  {
    "path": "src/Humanizer/Localisation/CollectionFormatters/OxfordStyleCollectionFormatter.cs",
    "chars": 234,
    "preview": "namespace Humanizer;\r\n\r\nclass OxfordStyleCollectionFormatter() :\r\n    DefaultCollectionFormatter(\"and\")\r\n{\r\n    protect"
  },
  {
    "path": "src/Humanizer/Localisation/DataUnit.cs",
    "chars": 131,
    "preview": "namespace Humanizer;\r\n\r\npublic enum DataUnit\r\n{\r\n    Bit,\r\n    Byte,\r\n    Kilobyte,\r\n    Megabyte,\r\n    Gigabyte,\r\n    "
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/CaDateOnlyToOrdinalWordsConverter.cs",
    "chars": 367,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\nclass CaDateOnlyToOrdinalWordsConverter : DefaultDateOnlyToOrdinalWordC"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/CaDateToOrdinalWordsConverter.cs",
    "chars": 199,
    "preview": "namespace Humanizer;\r\n\r\nclass CaDateToOrdinalWordsConverter : DefaultDateToOrdinalWordConverter\r\n{\r\n    public override "
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/DefaultDateOnlyToOrdinalWordConverter.cs",
    "chars": 372,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\nclass DefaultDateOnlyToOrdinalWordConverter : IDateOnlyToOrdinalWordCo"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/DefaultDateToOrdinalWordConverter.cs",
    "chars": 327,
    "preview": "namespace Humanizer;\r\n\r\nclass DefaultDateToOrdinalWordConverter : IDateToOrdinalWordConverter\r\n{\r\n    public virtual st"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/EsDateOnlyToOrdinalWordsConverter.cs",
    "chars": 368,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\nclass EsDateOnlyToOrdinalWordsConverter : DefaultDateOnlyToOrdinalWord"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/EsDateToOrdinalWordsConverter.cs",
    "chars": 205,
    "preview": "namespace Humanizer;\r\n\r\nclass EsDateToOrdinalWordsConverter : DefaultDateToOrdinalWordConverter\r\n{\r\n    public override"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/FrDateOnlyToOrdinalWordsConverter.cs",
    "chars": 340,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\nclass FrDateOnlyToOrdinalWordsConverter : DefaultDateOnlyToOrdinalWord"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/FrDateToOrdinalWordsConverter.cs",
    "chars": 297,
    "preview": "namespace Humanizer;\r\n\r\nclass FrDateToOrdinalWordsConverter : DefaultDateToOrdinalWordConverter\r\n{\r\n    public override"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/IDateOnlyToOrdinalWordConverter.cs",
    "chars": 517,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\n/// <summary>\r\n/// The interface used to localise the ToOrdinalWords m"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/IDateToOrdinalWordConverter.cs",
    "chars": 478,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// The interface used to localise the ToOrdinalWords method.\r\n/// </summary>\r\np"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/LtDateOnlyToOrdinalWordsConverter.cs",
    "chars": 337,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\nclass LtDateOnlyToOrdinalWordsConverter : IDateOnlyToOrdinalWordConver"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/LtDateToOrdinalWordsConverter.cs",
    "chars": 294,
    "preview": "namespace Humanizer;\r\n\r\nclass LtDateToOrdinalWordsConverter : IDateToOrdinalWordConverter\r\n{\r\n    public string Convert"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/UsDateOnlyToOrdinalWordsConverter.cs",
    "chars": 282,
    "preview": "#if NET6_0_OR_GREATER\r\n\r\nnamespace Humanizer;\r\n\r\nclass UsDateOnlyToOrdinalWordsConverter : DefaultDateOnlyToOrdinalWord"
  },
  {
    "path": "src/Humanizer/Localisation/DateToOrdinalWords/UsDateToOrdinalWordsConverter.cs",
    "chars": 239,
    "preview": "namespace Humanizer;\r\n\r\nclass UsDateToOrdinalWordsConverter : DefaultDateToOrdinalWordConverter\r\n{\r\n    public override"
  },
  {
    "path": "src/Humanizer/Localisation/Formatters/ArabicFormatter.cs",
    "chars": 696,
    "preview": "namespace Humanizer;\r\n\r\nclass ArabicFormatter(CultureInfo culture) :\r\n    DefaultFormatter(culture)\r\n{\r\n    const strin"
  },
  {
    "path": "src/Humanizer/Localisation/Formatters/BulgarianFormatter.cs",
    "chars": 505,
    "preview": "namespace Humanizer;\r\n\r\nclass BulgarianFormatter(CultureInfo culture)\r\n    : DefaultFormatter(culture)\r\n{\r\n    protected"
  },
  {
    "path": "src/Humanizer/Localisation/Formatters/CatalanFormatter.cs",
    "chars": 647,
    "preview": "namespace Humanizer;\r\n\r\nclass CatalanFormatter(CultureInfo culture) :\r\n    DefaultFormatter(culture)\r\n{\r\n    protected o"
  },
  {
    "path": "src/Humanizer/Localisation/Formatters/CroatianFormatter.cs",
    "chars": 465,
    "preview": "namespace Humanizer;\r\n\r\nclass CroatianFormatter(CultureInfo culture) :\r\n    DefaultFormatter(culture)\r\n{\r\n    const stri"
  },
  {
    "path": "src/Humanizer/Localisation/Formatters/CzechSlovakPolishFormatter.cs",
    "chars": 394,
    "preview": "namespace Humanizer;\r\n\r\nclass CzechSlovakPolishFormatter(CultureInfo culture) :\r\n    DefaultFormatter(culture)\r\n{\r\n    "
  },
  {
    "path": "src/Humanizer/Localisation/Formatters/DefaultFormatter.cs",
    "chars": 5812,
    "preview": "namespace Humanizer;\r\n\r\n/// <summary>\r\n/// Default implementation of IFormatter interface.\r\n/// </summary>\r\npublic class"
  }
]

// ... and 516 more files (download for full content)

About this extraction

This page contains the full source code of the Humanizr/Humanizer GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 716 files (3.3 MB), approximately 916.2k tokens, and a symbol index with 4068 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!