Tabito

Here's a sentence that means โ€œIn Kyoto, I took a lot of photosโ€ (Genki II, 15-IV):

ไบฌใใ‚‡ใ†้ƒฝใจใงใŸใใ•ใ‚“ๅ†™ใ—ใ‚ƒ็œŸใ—ใ‚“ใ‚’ๆ’ฎใจใ‚Šใพใ—ใŸ

If you had a flashcard app that presented you with this English translation and asked you to produce the Japanese, thereโ€™s a few variations youโ€™d want to be able to handle:

Tabito is a small TypeScript app that lets you specify the variations of the sentence you want to allow and then to match user input to this. Try it below! Type various parts of the sentence above with the variations described and see how close you get.

Matches will go here

For reference, if you type in misordered clauses, it looks like this:

with the green box indicating that this โ€œpieceโ€ actually should come first. Once you type in the entire sentence correctly, the background will celebrate:

And hereโ€™s a full editing session: