# Czech Vocative

Lightweight TypeScript library for converting Czech names to their **vocative form (vokativ / 5th grammatical case)**.

Built on top of `vokativ` with:

- removed deprecated logic
- smaller bundle size
- full TypeScript support

---

## Features

- Convert Czech names to vocative (e.g. `Jana → Jano`)
- Supports masculine and feminine names
- Support for names and surnames
- Gender detection (`isWoman`)
- Zero dependencies
- Works in Node.js and browser

---

## Installation

```bash
npm install czech-vocative
```

---

## Usage

```ts
import { isWoman, vocative } from "czech-vocative";

const name = "Jana";

const woman = isWoman(name);
const vocativeForm = vocative(name);

console.log(vocativeForm); // Jano
console.log(woman); // true
```

---

## API

### vocative(name: string, isWoman?: boolean, isSurname?: boolean): string

Returns the vocative form of a Czech name.

| Param     | Type               | Description      |
| --------- | ------------------ | ---------------- |
| name      | string             | Input name       |
| isWoman   | boolean (optional) | Force gender     |
| isSurname | boolean (optional) | Treat as surname |

---

### isWoman(name: string): boolean

Detects if a name is likely feminine.

---

## Examples

```ts
vocative("Petr"); // Petře
vocative("Jan"); // Jane
vocative("Eva"); // Evo
vocative("Novák", false, true); // Nováku
```

---

## Notes

- Czech vocative rules are complex and not always 100% deterministic
- Some names may have multiple valid forms
- For best accuracy, provide `isWoman` when known

---

## Why not just use `vokativ`?

- Smaller bundle size
- TypeScript-first
- Cleaner API
- No deprecated code

---

# Czech / Česky

Lehká TypeScript knihovna pro převod českých jmen do **vokativu (5. pád)**.

---

## Funkce

- Převod jmen do 5. pádu (např. `Jana → Jano`)
- Podpora mužských i ženských jmen
- Podpora jmen i příjmení
- Detekce pohlaví (`isWoman`)
- Zero dependencies
- Funguje v Node.js i prohlížeči

---

## Instalace

```bash
npm install czech-vocative
```

---

## Použití

```ts
import { isWoman, vocative } from "czech-vocative";

const name = "Jana";

const woman = isWoman(name);
const vocativeForm = vocative(name);

console.log(vocativeForm); // Jano
console.log(woman); // true
```

---

## API

### vocative(name: string, isWoman?: boolean, isSurname?: boolean): string

Vrátí jméno ve vokativu (5. pád).

| Parametr  | Typ                 | Popis                  |
| --------- | ------------------- | ---------------------- |
| name      | string              | Vstupní jméno          |
| isWoman   | boolean (volitelné) | Vynucení ženského rodu |
| isSurname | boolean (volitelné) | Jedná se o příjmení    |

---

### isWoman(name: string): boolean

Určí, zda se jedná o ženské jméno.

---

## Příklady

```ts
vocative("Petr"); // Petře
vocative("Jan"); // Jane
vocative("Eva"); // Evo
vocative("Novák", false, true); // Nováku
```

---

## Poznámky

- Pravidla pro vokativ nejsou vždy jednoznačná
- Některá jména mohou mít více správných variant
- Pro přesnější výsledek doporučujeme zadat `isWoman`

---

## Klíčová slova

vokativ, 5. pád, skloňování jmen, česká jména, příjmení

---

## Credits

Based on the original library:  
https://www.npmjs.com/package/vokativ
