Kanji lookup tool I've been experimenting with.


(Sorry if this is the wrong board for this -- it seems like other people are posting personal tools here, though).

This is kind of like an extension of's radical lookup tool, more optimized for compounds, or words with kanji and okurigana.

The basic idea is that, instead of looking up one kanji a a time, you can search on entire compounds by providing one or more radicals from each kanji in the compound along with its okurigana. The advantage here is it reduces the amount of search input you need to provide, and also lets you give search strings that are more robust to kanji that you can't make out.

Using the word 不思議 as an example of how this works, the JMDict radical decompositions given for each kanji are:

: |ノ一丶
: 心田
: 一王言并羊亅戈手

Or, arranged as a sequence of radicals, with the radicals from each kanji separate by brackets:


(Sorry -- couldn't get screenshots to embed!)

Searching on this exact string will unambiguously get you 不思議, but that's overkill. You only really need one or two radicals per kanji (depending on the compound length) to get a good match.

In this example, searching for just |心言 returns 不思議 as the second result.

(For further comparison, searching for all kanji containing|, then those containing 心, then finally those containing 言 returns... a lot of kanji to sort through.)

Beyond that, radical names are defined in a text file (radicalNames.txt) in the program folder (you can open it by pressing F8 in the application and rename them to whatever you like. I've tried to base the default names off of RTK). If you type in a radical name and hit space, it converts to the radical proper. You can also type in romaji in lowercase or uppercase and hit shift+enter to convert it to hiragana and katakana respectively.

Anyway, there's a more in-depth manual in the github release. The entire tool is meant to be keyboard driven, so there are a lot of short cuts if you want to use them.

I acknowledge that this is pretty closely geared towards my own tastes so I'm not sure how useful it'll be for other people, but I've had a lot of success with this and I figured I might as well share it.

Any feedback's appreciated. Especially on the manual. I acknowledge that the documentation is quite lacking.
Edited: 2017-05-10, 11:04 pm
This sounds like an attractive concept. How about the implementation? Mac/linux-friendly or Win only?
It's in C#, and Windows-only for now. If there's interest though I can definitely look into making it Mono compliant, which should mean it'd work on Linux and Mac as well.
Edited: 2017-04-12, 4:59 pm
This sounds like a really good idea. Thanks for sharing. I will test it when I get a chance but that probably won't be for a few days.
I uploaded a (very klugy) version to GitHub (3.8) that works with Mono under Ubuntu at least and might work with OSX too. Admittedly a stopgap -- if there's interest, I'll try to come up with something cleaner -- but it should work if you want to try it out.
Updated the download link because I broke connectivity with the old git and had to start a new one. Whoops.

Anyway, some updates:

  • Began cleaning up the code. Ideally this should help if I ever want to do something more robust for Linux/Mac.
  • Uses standard JMDict files now instead of re-encoded UTF-8 ones.
  • Altered behavior for how global hotkey/taskbar minimization work on Windows.
  • Definition box resizes depending on whether you're searching for words or kanji.
  • If you enter a word and there's an exact match, it gets moved up to the start of the list. (Before this, searching on さっき for instance would return そ及 as the first result, as it has さっきゅう listed as a pronunciation).
Also uploaded the manual. It's... not great and a little out of date, but it's better than nothing?