Repository navigation
Plan Language Paths
Source of truth: this wiki page.
Written 2026-10-05.
Later plans change how courses are written, and are current where they differ from this one:
- decks are a core and a layer per native language (built; see
docs/DECK-FORMAT.md, "Core and layer files"); - a course is a phrasebook, then words, then rules, then sentences, and a
lesson's new items come in that order (
words-rules-sentences.md); - "Writing the planned decks" in
b1-plans.md.
So the parts that write or reorder courses (#298, #300, #301, #350) wait for #392 and #413.
this is the language path planned. all of the languages mentioned will need to be added. the existing languages will need to be adjusted to fit the scheme, and the rest will be generated as per the scheme.
The scheme is in language-paths-scheme.md, word for word. It earlier came
up as "we will also have a different pacing for different languages."
From the current FSI list, the State Department's, as search results quote it. I did not open the page itself:
- German is in Category II at 36 weeks, 900 hours, with Malay, Swahili, Indonesian and Haitian Creole. So its multiplier is ×1.5, not ×1.25, and the scheme's tiers II and III merge. 750 hours is the figure on older lists.
- Nepali, Tamil, Telugu and Somali are on the FSI list, at 44 weeks, 1,100 hours. Their tier is confirmed, not inferred.
The other figures check out:
- 0.5 h × 365 = 182.5 h a year;
- 600 ÷ 182.5 = 3.3 years, … 2,200 ÷ 182.5 = 12.1;
- the multipliers are hours ÷ 600.
Decided with the owner: a full course takes a learner to CEFR B1, about ILR 1+, independent in daily life. A1 and A2 are milestones along the path.
- Words: B1 needs roughly 2,500–3,000 words a language (Milton and Alexiou, 2009, from learners of French and Greek; confidence medium). Today's Indian courses teach 450–680 vocabulary cards, and Spanish 41. So each course grows about fivefold, with grammar and listening to match.
- ILR and CEFR: there is no official equivalence. ILR 1+ ≈ B1 and ILR 3 ≈ C1 are the usual approximations.
- Pacing: the scheme's FSI hours lead to ILR 3, far past B1. Its tiers and phase lengths still set the pacing, but a course ends at B1. Where B1 falls among the phases is to decide.
-
Eight languages: Hindi, Bengali, Assamese, Marathi, Gujarati, Telugu, Kannada (52–60 files each) and Spanish (41 cards and one grammar deck). Japanese has a hiragana deck, kept but hidden.
-
Paths (ADR-0013) are units of decks, in order. Today every Indian language follows one template:
- first words, sounds, grammar differences;
- five themes, each with its grammar;
- then the script, numbers and the rest.
The script units are skipped by a learner who learns without the alphabet (ADR-0023).
-
Pacing is the same for every language: a lesson teaches nine new words a day (three easy, three medium, three hard, ADR-0024), and reviews are whatever is due. There is no daily time budget.
-
Scripts:
- the validator already knows Latin, Cyrillic, Greek, Arabic, Hebrew,
Devanagari, Bengali, Gujarati, Gurmukhi, Odia, Telugu, Tamil, Kannada,
Malayalam, Sinhala, kana, kanji, hanzi, Hangul and Thai, and a language can be
right to left (
rtl); - but the only scripts shipped are Devanagari, Bengali, Gujarati, Telugu, Kannada and Latin.
- the validator already knows Latin, Cyrillic, Greek, Arabic, Hebrew,
Devanagari, Bengali, Gujarati, Gurmukhi, Odia, Telugu, Tamil, Kannada,
Malayalam, Sinhala, kana, kanji, hanzi, Hangul and Thai, and a language can be
right to left (
-
Readings and IPA come from
tools/transcribe.py, which knows the seven Indian languages and Spanish only.
-
A language's tier. Its language block gains its FSI hours. The multiplier is hours ÷ 600.
-
Phases. Each unit of a path names its phase: Foundations, Core, Functional, Expansion or Sharpening. A phase lasts its base length times the multiplier:
Language (×) Foundations Core Functional Expansion Spanish (×1.0) 14 days 28 days 42 days 91 days German, Malay, Swahili (×1.5) 21 42 63 137 Hindi and tier IV (×1.83) 26 51 77 167 Japanese and tier V (×3.67) 51 103 154 334 -
Pacing. New words a day = the phase's new cards ÷ its days, within the ten minutes the day gives to new material. That replaces the fixed nine a day.
-
The 30-minute day: ten minutes of review, ten of new material, and ten of listening and speaking from day one. Each block is sized by time, using how long each kind of question takes this learner, from the review log's answer times.
-
Variants, where the scheme says to choose: Spanish, Portuguese, Norwegian, Arabic, Irish, Vietnamese, Malay, Quechua, Punjabi, Serbian. The learner chooses (owner's answer). Each variant is a set of decks of its own, so each of these languages carries more content.
-
The common start for all: sounds → greetings → survival phrases → numbers → pronouns. Then the family's own order.
- The script still comes late (owner's answer), as in today's courses, and not straight after the sounds as the scheme puts it.
- Until then, words are read in their romanisation, and a learner who learns without the alphabet still skips the script (ADR-0023).
- For Japanese, Korean, Thai and the others with a new script, this means starting in romaji, Revised Romanization or the like.
This is judged from the decks' names, not from a full read of their content.
-
Indo-Aryan (Hindi, Marathi, Gujarati, Bengali, Assamese):
- The path is reordered to the scheme's grammar order. The script keeps its place, late. Numbers move up into the common start.
- Missing everywhere: subjunctive, relative–correlative clauses, and the oblique case as a step of its own.
- Ergative: Marathi, Gujarati and Assamese need it; Hindi has
grammar-ne. - Bengali and Assamese need classifiers. Bengali needs compound verbs. Its gender deck becomes natural gender only, and it skips agreement and the ergative.
- Dravidian (Telugu, Kannada): these were built on the Indo-Aryan template, with articles, compound and conjunct verbs, and postpositions. They need suffix logic, cases in place of postpositions, verbal participles, relative participles and conditionals, in the Dravidian order. Honorifics exist as registers and addressing.
- Spanish needs a whole Romance course: ser/estar early, articles and gender, the present regular and irregular, prepositions, object pronouns, reflexives, preterite and imperfect, future and conditional, subjunctive, compound tenses. It also needs its variant chosen.
The scheme names 47 (Serbian/Croatian as one). Eight exist, so 39 are new.
| Family | New languages | New scripts for the app |
|---|---|---|
| Indo-Aryan | Urdu, Punjabi, Odia, Nepali | Perso-Arabic (Nastaliq, RTL), Gurmukhi and Shahmukhi, Odia |
| Dravidian | Tamil, Malayalam | Tamil, Malayalam |
| Classical | Sanskrit | — |
| Romance | Portuguese, Italian, French, Catalan | — |
| Germanic | German, Swedish, Norwegian, Yiddish | Hebrew (RTL) |
| Slavic | Russian, Polish, Serbian/Croatian | Cyrillic |
| Greek | Greek | Greek |
| Agglutinative | Turkish, Finnish, Hungarian, Basque | — |
| Celtic | Irish | — |
| Semitic | Arabic, Hebrew | Arabic and Hebrew (RTL) |
| East Asian | Mandarin, Cantonese, Japanese, Korean | Hanzi (simplified and traditional), kana and kanji, Hangul |
| Southeast Asian | Vietnamese, Thai, Filipino, Malay | Thai |
| African | Swahili, Hausa, Somali | — |
| Andean | Quechua | — |
| Constructed | Esperanto | — |
Each new language needs what an existing one has:
- a path, with its B1 plan: the units up to B1, their milestones and planned sizes, which the app reads to show completeness (the language picker, built in #443 and #626);
- vocabulary and grammar decks;
- facts, 30 or more (AGENTS.md);
- sounds, number rules, a script guide, and its romanisation.
- Fonts for Nastaliq, Hebrew, Arabic, Thai, hanzi, kanji and Hangul, where Android lacks them.
- Right to left checked end to end for Urdu, Arabic, Hebrew and Yiddish.
- Scripts without spaces (Thai, Chinese, Japanese) break the split into words that word-order tiles, lessons and the listening tier use. Their cards need their words given.
- A romanisation standard per script. ISO 15919 covers the Indian scripts. The others need their own: pinyin, Jyutping, Hepburn, Revised Romanization, and standards for Thai, Cyrillic, Greek, Hebrew and Arabic.
-
Grading folds per script:
- Arabic short vowels, Hebrew niqqud and Greek accents can be ignored;
- whether tones in Vietnamese and pinyin are ignored is to decide.
-
Readings and IPA:
transcribe.pyknows only eight languages. For the rest, the IPA can come from Wiktionary (tools/import_wiktionary.py, #518), which covers European languages better than Indian ones. - Voices and recognition vary by phone. Several of these languages, such as Quechua, Hausa, Somali and Esperanto, may have no Android voice, so listening and speaking would be off for them.
- Deck downloads first (done, ADR-0037): new languages then reach learners without an app release, and the APK does not grow with them.
-
tools/import_wiktionary.py(#518) before the new languages, for their IPA. - The 30-minute day can use FSRS (done: ADR-0033) for the review block, and the
listening tier (
listening-in-context.md) for the listening block, but needs neither to start.
No speaker of any of these languages checks the content here. It would be written by agents, validated, and marked for review, as the existing courses are. Languages with less written material, such as Quechua, Hausa, Somali and Odia, carry more risk of errors.
Decided with the owner: the learner chooses a variant; new languages are built one full course at a time; the script comes late everywhere.
- The order of the new languages: by family, by tier, or by number of speakers.
- Variants: which ones each language offers, such as Mexican and Spain Spanish, and which comes first.
- Several languages: whether the 30 minutes is split between them, or is 30 minutes each.
- Serbian and Croatian: one course with two scripts, or two courses.
- Romanisation standards for the scripts beyond ISO 15919.
- Sanskrit texts: which editions of the Hitopadeśa and the Gītā, in the public domain.
| Part | Hours |
|---|---|
| The app: tiers, phases, pacing, the 30-minute day, variants | 11–16 |
| New scripts: fonts, RTL, word splitting, folds, romanisation | 25–40 |
| Fitting the seven Indian languages to the scheme | 28–42 |
| Taking the seven Indian languages to B1, about 2,000 more words each, at 40–60 h each | 280–420 |
| Spanish as a full course to B1 | 50–75 |
| 39 new languages, full courses to B1 one at a time, at 50–75 h each | 1,950–2,925 |
| A second variant, where a language offers one, per variant | 25–40 |
These scale today's rate: about 10–15 hours for a course of about 500 vocabulary cards. The listening tier and the extra word-order tiles grow with the cards.
- Before the first new language, with the existing courses at B1: about 394–593 hours, or roughly 66–99 working days of 6 hours.
- Then each new language: about 50–75 hours, or 8–13 days.
- All of it: about 2,350–3,500 hours, plus the variants.
Confidence: low. The content hours are the biggest unknown, and the scripts need checking on a phone.
See also: Roadmap · Plans-Index · Home
1. Learner guides
- Learner Guide
- Getting Started
- Today and Daily Lessons
- Drills and Skills
- Courses and Paths
- Proficiency Levels
- Scripts and Readings
- Readings ISO 15919
- Speaking and Listening
- Progress and Stats
- Profiles and Settings
- Backup and Restore
- Reporting a Problem
2. Deck building guides
- Deck Building Guide
- Deck Format
- Romanising Indic Languages
- Deck Licences and Quoted Books
- Deck Tools
3. Review guides
4. Translation guide
5. Building on iOS
6. Roadmap
7. Sources and attributions
8. Contribution and agentic coding