Project Language Courses Cheat Sheet

Sidebar

AI ยท Project Language Courses Cheat Sheet

How language lessons, Basic Conversation courses, grammar courses, script courses, songs and kanji are generated. From rules/language_rules.md (L1-L6), language_courses.md (L7-L9), language_syllabus.md, language_topic.md and kanji_rules.md (K1-K4).

Languages and accents (L1)

JapaneseRed #d64550. Beginner; kana known, kanji introduced gently with furigana or romaji.
HungarianGreen #5aa469. Beginner-plus for lessons; complete beginner for Basic courses.
FrenchBlue #4f8ef7. Complete beginner for Basic courses.
GermanGold #e0a82e. Complete beginner; the template for every Basic course.
KoreanFlag red #f87171. Complete beginner; casual and drama speech matters.
SpanishWarm orange #f2762e. Spain (Castilian) by default, with Latin America notes.
new language (L5)Claude first asks: add it? level and goal? accent colour? script or dialect needs?

Single lessons (L2-L4)

<language>:<topic>One lesson. No outline step.
topical lesson6 dialog cards, then exactly 20 vocabulary rows, then tip boxes.
grammar lessonFor tense and conjugation topics: conjugation cards, two demo verbs, 6 dialogs, 20 vocabulary rows.
vdd:<language>:<verb>A verb deep dive: all pronouns, 3-4 mini-dialogues, 10-15 related verbs.
PDFpy scripts/python/build_language_lesson_pdf.py <file.html>; the accent and flag come from the language.
filename<language>_lesson_<topic>.html, lowercase with underscores.

Where files go (L3)

japan/japanese-language/japanese-lessons/Japanese lessons. Courses: japan/japanese-basic-<n>/.
hungary/hungarian-lessons/Courses: hungary/hungarian-basic-<n>/.
france/french-lessons/Courses: france/french-basic-<n>/.
germany/german-lessons/Courses: germany/german-basic-<n>/.
korea/ and spain/Courses only so far: korean-basic-<n>/ and spanish-basic-<n>/.
new languageSame pattern, plus an entry in the site's navigation list under Languages.

Basic Conversation (L8)

<language>_basic<n>-<m>Chapter m of course n. Chapter lists are language-neutral, in rules/language_topic.md.
Courses 1-36 dialogs with a pronunciation line under each, key-phrases table, 3-verb conjugation table, 20-row vocabulary with a "Say it" column, 1-3 tip boxes, "Try It Yourself" with answers in <details>.
Course 4 onwardLonger dialogs with no pronunciation line, plus a short reading text with true/false questions.
long chaptersSplit into Part 1/2/3 inside one file so numbering stays fixed.
last chapterA "Course Complete" recap table and a pointer to the next course.
file<language>_basic_conversation_<course>_<chapter>.html.

Levels and grammar track

levelsBasic (A1-A2), Intermediate (B1), Advanced (B2); a soft target of about 8 courses each.
numberingRestarts at 1 for each level: german_intermediate1.
moving upYour decision. Claude recommends stay or move up when outlining.
<language>_grammar<n>Reference style: rule box, example tables, "Watch out" tip boxes, short exchanges, quick-reference table, 8-10 practice items.
grammar namesFolder <language>-grammar-<n>/, files <language>_grammar_<n>_<m>.html.
checklistsA language's Basic is done when every syllabus item is ticked in some course.

Script courses (L9)

hiragana1, katakana1Chapters hiragana1-1; folder japan/hiragana-1/.
<language>_alphabet<n>For Latin-script languages whose spelling needs teaching.
sizeUp to 3 new characters (or sounds) per chapter, inside one sound row where possible.
romajiShown for every kana in the early courses, then faded.
formatCharacters with memory hooks, look-alike warnings, a cumulative word list, drills in <details>, a Coming-Up box. No scripts.
kanji courseskanji1, kanji2...: one kanji per chapter, about 20 chapters per course, following the school grade list.

Songs (L7)

song:<title>:<artist>:<language>Only for copyright-free lyrics (public domain, folk, or original). You are responsible for supplying only those.
linesGroups of 2-3: target line, transliteration for non-Latin scripts, English.
vocabularyAfter the last line, grouped by part of speech.
songvocab:...Vocabulary only: no line translation, no romanised lines, no quoted fragments.
multi-part songsGenerated in parts, then combined into one page and one PDF.
file<language>_lesson_song_<title>.html or ..._songvocab_<title>.html.

Kanji pages (K1-K4)

/new-kanji <char> [number]Builds the page, the tile and the badge in one step.
animation (K1)AnimCJK with self-hosted data. No CDN script.
two copies (K2)Write identical files to the archive folder under reference-materials/kanji/ and to the live website/resources/japanese/kanji/.
tiles page (K3)Add or update the entry in kanjiList in kanji_tiles_cms_content.html. The back link on each page points to /japan/kanji-tiles/.
World of Kanji (K4)A non-zero number adds a ๐Ÿ“– World of Kanji #n badge. 0 means omit it. If no number is given, Claude asks.
PDFsNot generated for kanji pages.
Snapshot
Snapshot of the rule files as at 2026-11-08, summarised by reading them. Nothing was run to test it. If this sheet and a rule file ever disagree, the rule file wins, and the sheet needs regenerating. The Japanese-lesson example files Claude copies from are in rules/examples/language-lessons/.