Adding a language
A language comes in two parts, in two repositories, in this order:
- Its word list, in lexmem. Which dictionary and frequency list it is built from, how its text
is normalised, the hand-written grammar notes and topics, and the checks a build must pass before
it is released all live in lexmem’s
languages/<code>/. A lexmem release that loads the catalog is what makes the language something you can enrol in. - Its runtime, in langweave. One file,
languages/<code>/runtime.ts, says how the language’s words are written for a learner — for Japanese, kana, then kanji with its reading, then kanji — plus a display name on the landing page. Nothing else in langweave names a language.
The steps and the contract a runtime implements are in
languages/README.md
on GitHub, which points on to lexmem’s for the catalog. They are written for whoever does the work
and kept next to the code, so they are not repeated here.