Furigana on any Japanese website — on your iPhone
Written by Darren Nah, who builds Toku Reader. Checked September 2026.
A Japanese page is not hard because the grammar is hard. It is hard because there is a kanji in the second line you cannot pronounce, and a word you cannot pronounce is a word you cannot look up, ask about, or remember.
On a laptop, this is solved
There are good browser add-ons for Chrome and Firefox that put ふりがな over the kanji on any page you visit. They are free, several are open source, and if you read Japanese at a desk you should use one. I am not going to pretend otherwise.
On a phone, it mostly isn’t
Those add-ons are built for a desktop browser. Mobile Safari’s extensions are a much narrower thing, and the phone is where most people actually read — on a train, in a queue, in bed. So the question “how do I put furigana on a Japanese website” has a good answer on a laptop and, until now, a bad one on the device it is usually asked from.
What Toku Reader does
- Open the web reader and type or paste the address — or share a page to Toku Reader straight from Safari.
- The page opens inside the app with its layout intact, and ふりがな appears over the kanji.
- Tap any word for its meaning, its pitch accent and the plain form it came from.
- Save the ones worth keeping. They go into review with their sentence.
The readings go over the characters, not over the word as a lump — and they are worked out from the sentence, not looked up one character at a time, because Japanese kanji change reading depending on what is around them. Getting that right is the whole engine: it is checked against 439 golden tests, real sentences with a known correct answer, every time it changes.
Chinese too
The same reader puts pinyin over a Chinese page, with the tone changes applied — 不 and 一 shift depending on what follows them, and two third tones in a row are not said as written. Traditional characters are treated as their own script, not converted. That side has roughly 800 tests in the code plus 1,178 saved sentences re-checked on every change.
What it needs, and what it doesn’t
Fetching a web page needs the internet, obviously. Reading it afterwards does not: the dictionaries are inside the app, so the lookups keep working with no signal. There is no account, and nothing about what you read is sent anywhere.