sklonuj Svelte Themes

Sklonuj

Czech noun declension trainer synced with KzK syllabus. Built with Svelte.

Skloňuj

A web-based drill app for mastering Czech noun declensions — all seven cases, singular and plural, with immediate feedback and adaptive difficulty.

"Skloňuj" is the Czech imperative for "decline (a noun)." In other words, "decline it!".

Features

  • Three drill modes — form production (type the correct form), case identification (name the case), and sentence fill-in-the-blank with contextual Czech sentences
  • 121 curated practice words across masculine animate, masculine inanimate, feminine, and neuter genders, organized by CEFR difficulty level (A1, A2, B1)
  • 18,000+ noun lookup dictionary — search any Czech noun and see its full declension table with English translation, powered by MorphoDiTa morphological data
  • 12 paradigm patterns with a browsable paradigm list in the lookup view showing model declensions (hrad, muž, růže, město, etc.)
  • Adaptive weighting — the drill engine prioritizes cases and paradigms you struggle with, weighting question selection by inverse accuracy
  • CEFR-aligned word difficulty — A1/A2/B1 levels control which practice words appear based on their difficulty tag; all seven cases are always available for drilling
  • Progress tracking — per-case and per-paradigm accuracy scores stored in localStorage, with optional Supabase sync for logged-in users
  • Reference sidebar — slide-out panel with three tabs: word declension lookup, case guide with questions and mnemonics, and a preposition cheat sheet organized by case
  • Diacritics-aware grading — answers missing only diacritics (e.g., "zenu" for "ženu") are accepted as correct with a near-miss indicator
  • Czech text-to-speech — optional audio pronunciation of correct forms using the Web Speech API
  • Dark mode support

Data Sources

Declension data is generated by MorphoDiTa, a morphological analyzer built on the MorfFlex CZ 2.1 dictionary, developed at the Institute of Formal and Applied Linguistics (UFAL), Faculty of Mathematics and Physics, Charles University, Prague.

English translations are sourced from Wiktionary via kaikki.org.

For full citations and licensing details, see DATA_SOURCES.md.

Tech Stack

Getting Started

pnpm install
pnpm dev

To run type checks and linting:

pnpm check
pnpm lint

To format the codebase:

pnpm format

Adding Words

New words are added through a CLI pipeline that fetches declension data from MorphoDiTa and translations from Wiktionary:

python3 scripts/add-word.py <lemma> [<lemma> ...]

For each lemma, the script resolves the MorphoDiTa lemma ID, generates all inflected forms, fetches an English translation, auto-detects the paradigm, and prompts for confirmation before appending to scripts/starter_lemmas.txt and scripts/starter_nouns_meta.csv.

After adding words, rebuild the word bank:

python3 scripts/build_word_bank_morphodita.py

This outputs the final src/lib/data/word_bank.json consumed by the app. To rebuild the full lookup dictionary (all 18,000+ nouns), run:

python3 scripts/build-dictionary.py

License

This project is licensed under CC BY-NC-SA 4.0. See DATA_SOURCES.md for upstream data licenses.

Top categories

Loading Svelte Themes