I made a super simple Kana tester

Hi folks,

I made a really simple Kana “trainer” app this afternoon, because I couldn’t find one I liked online. It just shows you a kana, you type the romaji, and it tells you if you got it right! It shows you the right answer after 3 wrong attempts.

You can choose to test hiragana, katakana, or both, and whether or not to include compound kana.

I figure most people here probably know the kana already but for newcomers to Japanese it might be handy!

https://kanadojo.netlify.app/

6 Likes

Looks pretty good. Just one thing, though: it doesn’t include any alternate romanisations, for example “si” for し, or “zi” for じ. Or, for that matter, “di” for ぢ, which is especially egregious as “di” is the only way to actually type that (took me three attempts to figure out you were expecting “ji”).

3 Likes

Looks good!

A couple of points of feedback:

  • When the test ends, it would be good to get a summary of the kana you got wrong, so that you can practice them.

  • The wait between kana is a bit long.

    • It would be nice if hitting Enter during the transition made it go to the next kana immediately.
    • However, if you do add such a feature, you’ll probably also want to add a cooldown timer to make sure that the user doesn’t get marked wrong if they submit an empty string within the first few hundred milliseconds of the next letter appearing.

… and, most importantly, it will make it difficult for you to learn how to speak Satsuma dialect like a native (which I assume is everybody’s end goal).

3 Likes

I’ll lay the blame at the feet of ChatGPT for that one (it generated the data for me). But easily corrected, thanks!

1 Like

The wait is easily tweaked, I’ll look at making it shorter.

1 Like

Ok, those tweaks made!

  • alternative romaji added where appropriate (hopefully)
  • transition time between kana halved
  • kana the user gets wrong are displayed on the finish screen
3 Likes

Works great, I like the color scheme!

I used realkana myself for the first week of learning the alphabet… and pen and paper xD

Nice. Did my best to break it, and found that “zya” is still not accepted for じゃ (et al), though everything else I tried worked. Even ol’ “hu” for ふ.

Any plans to include some of the freaky katakana-only combinations like ティ or ツァ or ヴァ or トゥ or シェ and so forth? (Actually, I’m not even sure how you type トゥ without explicitly going “toxu”.)

1 Like

I made a guess, so it’s TWU. Guessing could include w and h as well. (in Google IME.)

Anyway, peeking at WanaKana.js source code is an option.

1 Like

Ya know, now that you mention that, I feel like I’ve had this exact conversation before. I made some joke about owls hooting.

“Twu” works fine on Windows IME too. I’d tried “thu”, on the pattern of “thi” = てぃ, but that just produced てゅ.

Edit: Found it. It was you telling me the solution that time as well. :stuck_out_tongue:

3 Likes

Hmm I just tested ‘zya’ for じゃ and it worked. To enable multiple answers for the same kana, I switched the data structure from a key/value pair of strings

'じゃ': 'ja'

to a string:array one:

'じゃ': ['ja', 'zya'],

So it’s definitely there!

This is the entire data structure at present for compound katakana:

export const compoundKatakana = {
  'キャ': ['kya'], 'キュ': ['kyu'], 'キョ': ['kyo'],
  'シャ': ['sha', 'sya'], 'シュ': ['shu', 'syu'], 'ショ': ['sho', 'syo'],
  'チャ': ['cha', 'tya'], 'チュ': ['chu', 'tyu'], 'チョ': ['cho', 'tyo'],
  'ニャ': ['nya'], 'ニュ': ['nyu'], 'ニョ': ['nyo'],
  'ヒャ': ['hya'], 'ヒュ': ['hyu'], 'ヒョ': ['hyo'],
  'ミャ': ['mya'], 'ミュ': ['myu'], 'ミョ': ['myo'],
  'リャ': ['rya'], 'リュ': ['ryu'], 'リョ': ['ryo'],
  'ギャ': ['gya'], 'ギュ': ['gyu'], 'ギョ': ['gyo'],
  'ジャ': ['ja', 'zya'], 'ジュ': ['ju', 'zyu'], 'ジョ': ['jo', 'zyo'],
  'ヂャ': ['ja', 'dya'], 'ヂュ': ['ju', 'dyu'], 'ヂョ': ['jo', 'dyo'],
  'ビャ': ['bya'], 'ビュ': ['byu'], 'ビョ': ['byo'],
  'ピャ': ['pya'], 'ピュ': ['pyu'], 'ピョ': ['pyo']
};

Adding new ones is just a matter of adding to this data.

2 Likes

Hmm. Maybe I misremembered what worked and what didn’t…