Since gem 0.11.0 every staged language installs and checks — kotoshu setup <code> works for all 95 with script-aware fallbacks; the full-feature languages below add national keyboards and engine-verified specimens on top.
言葉Languages
What we support, honestly
A precise matrix beats a vague promise. Here is exactly what works today, what is staged, and what is coming.
完全Full feature — 36 languages
Català
Catalan
specimen & notes →
Čeština
Czech
specimen & notes →
Dansk
Danish
specimen & notes →
Deutsch
German
specimen & notes →
Ελληνικά
Greek
specimen & notes →
English
English
specimen & notes →
Español
Spanish
specimen & notes →
Français
French
specimen & notes →
Magyar
Hungarian
specimen & notes →
Italiano
Italian
specimen & notes →
Norsk bokmål
Norwegian Bokmål
specimen & notes →
Nederlands
Dutch
specimen & notes →
Polski
Polish
specimen & notes →
Português
Portuguese
specimen & notes →
Română
Romanian
specimen & notes →
Русский
Russian
specimen & notes →
Svenska
Swedish
specimen & notes →
Türkçe
Turkish
specimen & notes →
Українська
Ukrainian
specimen & notes →
Tiếng Việt
Vietnamese
specimen & notes →
العربية
Arabic
specimen & notes →
Български
Bulgarian
specimen & notes →
Eesti
Estonian
specimen & notes →
فارسی
Persian
specimen & notes →
עברית
Hebrew
specimen & notes →
Hrvatski
Croatian
specimen & notes →
Bahasa Indonesia
Indonesian
specimen & notes →
Lietuvių
Lithuanian
specimen & notes →
Latviešu
Latvian
specimen & notes →
Slovenčina
Slovak
specimen & notes →
Slovenščina
Slovenian
specimen & notes →
Српски
Serbian
specimen & notes →
Srpski
Serbian (Latin)
specimen & notes →
한국어
Korean
specimen & notes →
नेपाली
Nepali
specimen & notes →
Norsk nynorsk
Norwegian Nynorsk
specimen & notes →
Full feature means
- Hunspell dictionary with affix morphology and compounding
- FastText ONNX embedding model for semantic reranking
- Keyboard-layout proximity suggestions across 19 layouts (QWERTY, QWERTZ, AZERTY, JCUKEN, Turkish-Q, Greek-Phonetic, and the Nordic and programmer Latin grids)
- Kelly frequency ranking where a list is published (English, Greek, Italian, Russian, Swedish)
- Automatic detection from document content
頻度Frequency-ranked — Kelly tiers, 5 languages
These languages have Kelly Project frequency tiers feeding the ranking engine today. Greek, Italian, and Swedish pair them with a full dictionary as full-feature languages; Arabic and Chinese rank on frequency until their language module is wired. Norwegian's list is published under the legacy no key — the registry alias of the nb module — so setting up nb skips frequency and ranks on dictionary and model.
意味Semantic models — 55 languages
FastText ONNX reranking models, three tiers each, resolved from the
models registry at setup time — any language in this list runs
kotoshu setup LANG --model.
Every tier ships behind the same keyboard-aware eval gates. Measured tier
sizes and per-language check and sweep latencies are on
the performance page.
The 35 full-feature languages above compose dictionary, model, keyboard, and detection; the remaining 20 pair a staged dictionary with the model until their language module is wired.
準備Staged
98
Hunspell dictionaries with license metadata, sitting in the dictionaries repo ready to be wired — each becomes a language module (tokenizer, normalizer, keyboard layout) away from full support.
認識Auto-detected
176
FastText LID identifies a document's language automatically —
kotoshu check doc.md detects
before it checks, so mixed-language work just works.
将来Roadmap
CJK morphological support
Japanese via the suika tokenizer, Chinese via confusion rules — a different paradigm than Hunspell lookup (gem plans 06 / 54).
RTL shaping-aware affixes
Arabic, Hebrew, Persian, Urdu with shaping-aware normalization (gem plans 07 / 55).
≥ 30 wired language modules
Per-language tokenizer, normalizer, and keyboard modules composed from the 98 staged dictionaries (gem plan 04).
Adding a language? The path is documented in the language-modules plan — most new languages are a dictionary away.