[Browser Extension] Furiganai - hide furigana on the Web for the kanji you already know (based on your WaniKani progress)

:warning: This is a third-party app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.

too long didn’t read:
Adds furigana to pages that lack it, then hides readings for kanji you know based on your WaniKani progress (reveals on hover for a quick check)

Chome (any Chromium-based browser should work too, though I haven’t tested those) → https://chromewebstore.google.com/detail/furiganai/albkeejbklbhpfjdcfpokkdjimnmogch

Firefox → Furiganai - Furigana for your WaniKani level – Get this Extension for 🦊 Firefox (en-US)

Firefox for Android (beta, tap on kanji to reveal furigana) → Furiganai - Furigana for your WaniKani level – Get this Extension for 🦊 Firefox Android (en-US)

:warning: Using another furigana extension? Please disable it while Furiganai is on. Two extensions adding readings to the same page can interfere with each other and lead to doubled or wrong furigana :warning:


Hi everyone! I built a browser extension to fix a problem I kept running into.

Japanese sites fall into one of two groups: either they have no furigana at all, or they put it on everything (like NHK News Web Easy). Furigana’s great, but once you know the kanji, it just gets in the way. It sits right above the kanji, my eyes grab it, and I never actually test my recall. So I made Furiganai (pun on 振り仮名 + ない = “no furigana” :upside_down_face:).

The idea: you paste in your WaniKani read-only token, and it hides the furigana for every kanji you already know while keeping the readings you don’t. As you burn through levels, more furigana disappears on its own (data is synced each time your browser starts). It basically turns the whole web into reading practice tuned to your exact level. And since the hidden reading is still right there (just hidden), hovering a kanji makes its furigana appear - so each hidden reading becomes a quick recall test with an instant answer key.

Screenshots:

NHK News Web Easy default view:

NHK News Web Easy with Furiganai (furigana hidden based on my own current progress):

Wikipedia default view:

Wikipedia with Furiganai (same - furigana hidden based on my own current progress):

Hover to reveal:

hover

Key features:

  • Adds furigana where there is none. Generates furigana on plain Japanese text automatically on every page (based on kuromoji library). Existing furigana is never overridden
  • Hides what you already know. Readings disappear for the kanji you’ve learned in WK, and stay for the ones you havent (grading is per word so a compound like 集英社 keeps its reading until you know all of its kanji)
  • Hover to check yourself. Furigana reappears the moment you hover (or tap on Android) over kanji, so you can immediately test your recall
  • You set the level: hide from Apprentice to Burned (default is Guru)
  • Or remove it all :slightly_smiling_face: No WK token is required for this option. Furigana will still reappear on hover
  • Auto-sync. Furiganai syncs with WK when your browser starts
  • Only needs a read-only WK token, and everything stays in your browser
  • Completely disabled on WK (including the forums), so it won’t help you with your learning :wink:

Worth noting:

  • Autogenerated furigana may not be perfect, names and rare words can be off
  • It may take a few seconds to load furigana
  • Every site is built differently so please be aware that it won’t be perfect everywhere. But it looks to work pretty well most of the time and I’m happy with the result. It’s already been a big help in my own reading, which is why I decided to share it :slightly_smiling_face:
  • Available on desktop Chrome and Firefox, plus Firefox for Android (beta).
    Chrome mobile doesn’t support extensions, and iOS would require a separate Safari app wrapper. It’s a bit too much for a small side project (also I’m not that familiar with Apple’s dev tools), so iOS isn’t planned.

(small note: there’s a Ko-fi link in the extension if you’d like to buy me a coffee and support future updates - but the extension is completely free, no pressure at all!)

I hope some of you find this extension useful in your kanji learning adventure! Would love feedback, especially on any bugs or sites where the generated furigana lines up wrong.

Thanks for reading!

Very nice. I’ll definitely give this a try when the Firefox link is available.

Good news, it just got accepted and is available here: Furiganai – Get this Extension for 🦊 Firefox (en-US)
I’d really appreciate it if you could check it out when you have a chance and let me know what you think! Thanks!

Looks good so far.

Looks great because I really didn’t like all the furigana for Kanji I do know (or should know). It’s like a film with subtitles. Even if you don’t need them, you can’t help but read them anyway.

It also still plays nice with the ‘all furigana’ button of NHK news easy. I can’t really judge the quality because I’m still reading far too little. This is one small hurdle less to get me there though :slight_smile:

This is really cool!

I noticed that on WKStats where all the kanji are displayed a couple don’t load the furigana.

Not a big issue imo. I’m mentioning it, because it might be a convenient diagnostic tool if you ever need one.

Nice catch, thanks for the info!
I think I found the problem. Kuromoji (the library used to add furigana) is a dictionary of vocabulary, not individual characters. So for some kanji that can’t exist as a standalone word (only inside compounds like 曜 - weekday as used in for example 日曜日), it has no reading available. Since wk stats is a collection of individual kanji the issue is more visible.
I’ll update the approach to check kuromoji vocabulary reading first, and if that comes up empty, it will look the kanji up in a kanji dictionary and show its most common onyomi reading first (or the most common kunyomi if there’s no onyomi). As for the styling being off, unfortunately nothing I can do about since it’s how wk stats css is defined :sweat_smile:
I hope to be able to release an updated version this or next week

Updated Furiganai (1.1.0) is out :tada:

Quick update for anyone using:

  • lone kanji that aren’t a word on their own (like on pages that list individual kanji like wkstats.com) now get furigana too (shows its most common onyomi reading, or the kunyomi one if it has no onyomi)
  • support for Firefox for Android (tap on kanji to reveal furigana) practice reading everywhere you go on your Android phone/tablet! (beta, may not always work as expected on every device)
  • new “No kanji” option - keep readings visible on everything, whatever your WaniKani level
  • minor bugfixes

Feedback, new ideas and bug reports are very welcome! Thanks!

Hey there! I love Furiganai, but I noticed on jisho.org it’s duplicating the furigana in the search results. Perhaps they display it different from other sites. Screenshot below. But it makes me feel like maybe Furiganai should have a spot in the settings to add sites that you want to be exempt from its features? Just for a sanity check I’ve also included a screenshot of all the extensions I have running, in case there could be some weird conflict, but I don’t think so.

You may wanna just blacklist jisho from being affected by this altogether, as even when it’s not duplicating the experience isn’t great. For example this kanji section that already displays all the readings lol

jotoba.de also becomes almost entirely unusable

Thanks for using furiganai and for spotting these issues, nice catches! I’ll look into them over the weekend and hopefully have a new version released sometime next week.
Also, the idea of excluding certain pages is great! I’ll definitely add it to make it easier to disable it only on websites where there might be issues, instead of having to enable/disable the plugin globally :slightly_smiling_face:

Anyway, I hope you still find it useful despite the issues - will try to fix them asap :sweat_smile:

Definitely still find it useful! I wouldn’t complain at all except I do definitely like a “set it and forget it” kinda deal with my browser extensions haha. So having the ability to fix problematic pages as they come up and otherwise not touch it is ideal.

Thank you so much for looking into this for me! Keep up the great work! Love the extension〜

Furiganai 1.2.0 is out :tada:
If it doesn’t update automatically, try restarting your browser

What’s new
“Disable on this site” - a customizable list of websites where you don’t want Furiganai to run, so you don’t have to enable/disable the extension globally. (And some small UI improvements)

Why was this added
So, websites that show furigana normally use the standard HTML way of doing it, with the <ruby>, <rt> and <rp> tags (for those interested in technicalities). Furiganai relies on it: it hides those readings once you know the kanji, and adds its own in the same form when a page has none.

Turns out, some sites don’t use that standard way :slightly_smiling_face: They add furigana with their own custom ways, so to Furiganai the furigana is effectively invisible and adds a second one on top (example: jisho).

Other websites have fixed layouts for text with no room to spare, so an added line of furigana lands squished on top of the text or pushes the layout making it annoying or impossible to read (example: jotoba or even wkstats).

And of course there might be various other reasons for Furiganai to not work as expected.

There’s no reliable way to detect such cases in advance so at least we can now disable it only on websites where Furiganai is more of a bother than help, without turning it off/on globally all the time.

Big thanks to @robonebi for pointing these out!

And thanks to everyone using Furiganai - hope it’s been useful!

Lovely idea. I may have missed something above (I have a talent for overlooking obvious things), but is this a closed-source extension?

For the time being, yes. It’s a side project of mine that I might share as part of my portfolio in the future, and I’ve decided to keep the code private for now. I hope you understand! :slightly_smiling_face: