Vokativ 1.1.0

dotnet add package Vokativ --version 1.1.0
                    
NuGet\Install-Package Vokativ -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Vokativ" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Vokativ" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Vokativ" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Vokativ --version 1.1.0
                    
#r "nuget: Vokativ, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Vokativ@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Vokativ&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Vokativ&version=1.1.0
                    
Install as a Cake Tool

📣 Vokativ - Skloňování českých jmen do vokativu

.NET knihovna pro skloňování českých jmen do vokativu (5. pád). Je to přepsaná verze https://github.com/Mimino666/vokativ do .NETu.

🔧 Funkce

  • Automatická detekce pohlaví (pokud není zadáno)
  • Rozlišování mezi křestním jménem a příjmením (volitelné)
  • Využívá JSON soubory se suffixy pro skloňování
  • Dostupná jako NuGet balíček
  • Podporuje .NET 9.0

📁 Struktura repozitáře

Vokativ.sln                    - Solution file obsahující oba projekty
├── Vokativ/                   - NuGet balíček (class library)
│   ├── Vokativ.csproj
│   ├── Vokativ.cs
│   └── data/                  - JSON soubory se suffixy
└── VokativExample/            - Demo Web API aplikace
    ├── VokativExample.csproj
    └── Program.cs

📦 Instalace

NuGet Package

dotnet add package Vokativ

Nebo v Package Manager Console:

Install-Package Vokativ

🛠️ Použití

Základní použití (doporučeno)

Nejjednodušší způsob - volejte statické metody přímo:

using VokativLib;

// Automatická detekce pohlaví
var result1 = Vokativ.Get("Petr");      // "Petře"
var result2 = Vokativ.Get("Jana");      // "Jano"
var result3 = Vokativ.Get("Novotný");   // "Novotný"
var result4 = Vokativ.Get("Novotná");   // "Novotná"

// Detekce pohlaví
var sex = Vokativ.DetectSex("Petr");   // "m" (muž)
var sex2 = Vokativ.DetectSex("Jana");  // "w" (žena)

Explicitní zadání parametrů

using VokativLib;

// Explicitní zadání pohlaví a typu jména
var name1 = Vokativ.Get("Petr", woman: false, lastName: false);    // "Petře"
var name2 = Vokativ.Get("Jana", woman: true, lastName: false);     // "Jano"
var name3 = Vokativ.Get("Novotný", woman: false, lastName: true);  // "Novotný"
var name4 = Vokativ.Get("Novotná", woman: true, lastName: true);   // "Novotná"

Vlastní umístění dat (pokročilé)

Pokud chcete použít vlastní JSON soubory se suffixy, vytvořte instanci:

var vokativ = new Vokativ("cesta/k/datum");
var result = vokativ.GetVokativ("Petr");   // "Petře"

📚 API Reference

Třída Vokativ

Třída pro skloňování českých jmen do vokativu.

Statické metody (doporučeno pro běžné použití)
Vokativ.Get()
public static string Get(string name, bool? woman = null, bool? lastName = null)

Převádí jméno do vokativu (5. pádu) - statická verze pro snadné použití.

Parametry:

  • name: Jméno k převedení do vokativu
  • woman: true pro ženské jméno, false pro mužské. Pokud není zadáno (null), pohlaví se detekuje automaticky.
  • lastName: true pro příjmení, false pro křestní jméno. Pokud není zadáno (null), typ jména se detekuje automaticky.

Návratová hodnota: Jméno skloněné ve vokativu

Příklad:

var vokativ = Vokativ.Get("Petr");  // "Petře"
Vokativ.DetectSex()
public static string DetectSex(string name)

Detekuje pohlaví podle jména.

Parametry:

  • name: Jméno ke zjištění pohlaví

Návratová hodnota:

  • "m" pro mužské jméno
  • "w" pro ženské jméno

Příklad:

var sex = Vokativ.DetectSex("Jana");  // "w"
Instance metody (pokročilé použití)

Pro většinu případů použití stačí statické metody výše. Instance metody níže jsou užitečné, pokud potřebujete vlastní umístění dat.

Konstruktor
public Vokativ(string? dataDirname = null)
  • dataDirname: Cesta ke složce s JSON soubory se suffixy. Výchozí hodnota je "data".
GetVokativ()
public string GetVokativ(string name, bool? woman = null, bool? lastName = null)

Instance verze metody pro převod do vokativu. Parametry stejné jako u statické metody Get().

GetSex()
public string GetSex(string name)

Instance verze metody pro detekci pohlaví. Parametry stejné jako u statické metody DetectSex().

🎯 Demo Web API

V repozitáři je také ukázková ASP.NET aplikace (VokativExample/), která demonstruje použití knihovny pomocí REST API.

Spuštění demo aplikace

cd VokativExample
dotnet run

Použití API

POST /vokativ Tělo požadavku (JSON):

{
  "name": "Petr",
  "isWoman": false,
  "isLastName": false
}

Odpověď:

Petře

Swagger UI

Po spuštění aplikace navštivte:

https://localhost:<port>/swagger

📄 Licence

MIT

🤝 Přispívání

Příspěvky jsou vítány! Neváhejte otevřít issue nebo pull request.

📌 Původní projekt

Tento projekt je .NET implementací původní Python knihovny vokativ.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 440 10/21/2025
1.0.0 300 10/21/2025 1.0.0 is deprecated because it is no longer maintained and has critical bugs.