KanKan: kanji-component-aware online Japanese dictionary

THIS IS SO AWESOME I LOVE IT!!!

7 Likes

I made a couple small changes:

  • I made various optimizations to try and make the search faster (reduced the size of the dictionaries, more aggressively reject obvious mismatches early).
  • I manually tweaked the radicals to accept “similar” components interchangeably, so for instance 土 and 十 or 歹 and 夕 will match the same thing. So previously <口十>く wouldn’t find 吐く, now it does.

I hesitated to also consider 火 and 人 as identical but I’m not sure. I think in general 火 is fairly easy to tell apart.

8 Likes

I changed the URL to https://svkt.eu/kankan/ for technical reasons.

8 Likes

Where has this been all my life?! :bowing_woman:t2:

4 Likes

Hello.

Can you add extra definitions (not in kanjidict)?

Two I know of are:

  • 酛 (which is a kokuji, and has three jdict entries, but is not recognized by handwriting keyboards, and the decomposition into く酉元>
  • 髎 (used in 肘髎、禾髎、巨髎 (they are names of acupuncture/指圧 points. A decomposition likeく骨羽人ミ〉I suppose) (Unicode also has 翏 and 㐱 that could be used as decomposition input)
1 Like

This one already works: <酉元> (note that in your comment you used the kana く instead of <).

This one is correctly decomposed in the radical file:

髎 : ノ 个 冂 冖 冫 彡 月 羽 骨

The reason you can’t find it is because there are no entries in jmdict with this kanji, so there’s nothing to be found.

I think I will add kanji with no associated single-kanji vocab manually in the dictionary for this purpose.

1 Like

I added “loose” kanji from kanjidic to the dictionary (at least those that have an associated meaning, I deemed the rest probably too rare).

Now <骨羽> does find 髎:

I only list the onyomi in katakana and I tag them with [漢字] to distinguish them from real vocab.

5 Likes

an incredible resource, thank you very much! I will use it often :slight_smile:

2 Likes

this looks really useful, thank you!

1 Like

I added a radical picker similar to jisho’s (although I decided to order radicals with the same number of strokes by how common they are which gives a different order, I don’t know if it’s a good idea).

I also tweaked the <> handling: now everything is rewritten to 「」immediately and also for easier typing on mobile (or even desktop) you can just type a comma and it will get rewritten to either 「 or 」 depending on whether there’s an open bracket before on the line.

So now 、列、えば turns into 「列」えば. No more pesky ‘!’.

13 Likes

I’m unable to use it on a mobile phone device (with Samsung browser), if I type real kanji it shows it, but when I try search by components (which is the nicety of your site) it doesn’t trigger the search function.
Could it be possible to add a button to be able to manually trigger it?

Thanks

5 Likes

Weird, it works with Firefox mobile. I’ll try with other mobile browsers. Does sending a newline help maybe?

EDIT: I managed to install the Samsung browser from the play store, I can reproduce the issue. Very odd.

EDIT2: seems to work fine on mobile Chrome too. Even odder.

2 Likes

Can you add to the first post the list of features? I’ve been following the thread but haven’t used it yet, by the time I get to it I think I will have forgotten everything :see_no_evil:
Edit: oops I can see that you’ve added it directly to the website, neat!

3 Likes

I need to rewrite that blob to be a little more to the point…

3 Likes

Ok I found the issue:

Brilliant.

EDIT: pushed a fix:

if (!Set.prototype.intersection) {
    Set.prototype.intersection = function(otherSet) {
        const out = new Set();
        for (const elem of otherSet) {
            if (this.has(elem)) {
                out.add(elem);
            }
        }
        return out;
    };
}

if (!Set.prototype.difference) {
    Set.prototype.difference = function(otherSet) {
        const out = new Set();
        for (const elem of this) {
            if (!otherSet.has(elem)) {
                out.add(elem);
            }
        }
        return out;
    };
}

It’s a little slower than the native implementation but at least it should work everywhere.

4 Likes

Hey there! First of all, thanks for this great utility!

I tried it out the first days after you published this post and it worked just fine, but starting a few days ago the website (https://svkt.eu/) doesn’t load at all, with the server responding with a 403 Forbidden (sent by Nginx).

I thought it was a geographical issue (I live in Morocco), tried a U.S VPN but it doesn’t work there either. I use Firefox on Linux, but I’m not sure if that has anything to do with it.

I just noticed the URL change to https://svkt.eu/kankan/, all good now!

5 Likes

Yeah sorry about that, I should have an index page instead of just nothing at the root. Too much work and too many book clubs…

5 Likes

I started using it and it’s super useful, thanks a lot :grin:

5 Likes

Don’t have much to add. But I’ve still been using this as my main lookup tool while playing games whenever I come across something I don’t know. It’s a wonderful tool.

4 Likes

I actually don’t use it that much myself because I’m used to looking stuff up in takoboto and it’s better for looking up conjugated verbs etc…

I either need to ask them to integrate the feature or improve this tool to the point where I can make it my main dictionary.

Having some kind of draw mode would be good too, I’m sure there must be open source implementations but I wonder if they’re as good as the one takoboto uses (which I find really good).

I could also use a web worker to speed up the lookups. One reason I don’t use jisho as my native dictionary is that I can’t stand the loading times for every single lookup.

3 Likes