Language Capabilities Matrix #
While FleshNote's user interface is localized in multiple languages, deep NLP features (The Janitor, Show Don't Tell, passive voice detection, 5-senses stemming, and geographical name generation) require specialized grammatical rules per language:
| Language | UI Localized | spaCy Model | The Janitor (9 Analyzers) | Show Don't Tell (SDT) | 5-Senses Stemming | Name & Place Morphology |
|---|---|---|---|---|---|---|
English (en) |
β Full | en_core_web_sm |
β Complete | β 4 Detectors | β Supported | β `en.py` + CSV |
Hungarian (hu) |
β Full | huspacy (hu_core_news_lg) |
β Complete (hun_janitor.py) |
β Em-dash dialogue + Agglutinative SDT | β `HU_SENSES_STEMS` | β `hu.py` + 68KB CSV |
Polish (pl) |
β Full | pl_core_news_sm |
β Complete (pol_janitor.py) |
β Slavic inflections + SDT | β `PL_SENSES_STEMS` | β `pl.py` + 21KB CSV |
Arabic (ar) |
β Full (RTL) | spacy.blank("ar") |
β Partial (Basic checks) | β Missing | β Missing | β Missing |
German (de) |
β In Progress | de_core_news_sm (Planned) |
β Missing (Needs `de_janitor.py`) | β Missing | β Missing | β Missing |
French (fr) |
β In Progress | fr_core_news_sm (Planned) |
β Missing (Needs `fr_janitor.py`) | β Missing | β Missing | β Missing |
Spanish (es) |
β In Progress | es_core_news_sm (Planned) |
β Missing (Needs `es_janitor.py`) | β Missing | β Missing | β Missing |
Swedish (sv) |
β In Progress | sv_core_news_sm (Planned) |
β Missing (Needs `sv_janitor.py`) | β Missing | β Missing | β Missing |
Hungarian Linguistic Engineering (`hun_janitor.py`) #
Hungarian is an agglutinative Uralic language with complex suffix chaining and non-standard dialogue formatting:
- Dialogue Em-Dash Boundary: Hungarian literature uses em-dashes (
βorβ) for spoken lines instead of English quotation marks ("...")._is_dialogue_hurecognizes both patterns. - Weak Adverb Suffixes: Flags adverbial suffixes
-an/-en/-ul/-ΓΌlmodifying verb heads, filtering grammatical conjunctions like "mikΓΆzben". - Passive Verbal Adverbs: Detects hatΓ‘rozΓ³i igenΓ©v (
-va/-ve) onADV/VERBtokens while exempting fixed prepositions like "kivΓ©ve" (except). - Stem-Based 5 Senses: Counts sensory root words (
lΓ‘t-,hall-,szag-,tapint-,Γz-) across all declensions.
Polish Linguistic Engineering (`pol_janitor.py`) #
Polish is a synthetic Slavic language featuring high inflection across 7 grammatical cases:
- Passive Auxiliaries: Flags constructions using
byΔ(to be) orzostaΔ(to become) followed by a past passive participle. - Manner Adverb Rules: Matches manner adverbs ending in
-o/-iemodifying speech or action verbs (e.g. "powiedziaΕ cicho"). - Stem Prefix 5 Senses: Evaluates inflected Polish roots (
widz-,sΕysz-,wΔ ch-,dotyk-,smak-).
Contributor Blueprint: Adding a New Language #
Per the Contributor Priorities Guide, linguistic contributions are among our highest priority needs. To implement full NLP support for a missing language (e.g., German, French, Italian):
- Add the spaCy model mapping in
backend/spacy_config.py(e.g."de": "de_core_news_sm"). - Create
backend/routes/{lang}_janitor.pyimplementing linking, speech, filter, and cognitive realize verb lexicons. - Implement the language's passive voice construction logic and weak adverb suffix patterns.
- Provide the 5-senses stem lexicon tuple (Sight, Sound, Smell, Touch, Taste).
- Create
backend/tools/name_gen/location_langs/{lang}.pydefining geographical prefixes, roots, and suffixes. - Provide a real name database CSV in
backend/tools/name_gen/data/real/{language}.csv.