Furigana Generator
Add furigana (hiragana readings) above the kanji in any Japanese text — every kanji, or only those beyond a school grade.
Furigana Generator
The first time, your browser downloads an 18 MB Japanese dictionary and keeps it. Your text never leaves this device.
Your text, with its readings above the kanji, will appear here. Words with two common readings are underlined so you can check them.
Readings from kuromoji.js (Apache 2.0) and its IPADIC dictionary, © Nara Institute of Science and Technology (licence notice). This page also uses the JMdict and KANJIDIC dictionary files, the property of the Electronic Dictionary Research and Development Group, used in conformance with the Group's licence. KANJIDIC2 version 2026-286. Everything runs in your browser — nothing you type is sent anywhere.
How to use the furigana generator
A sentence, a paragraph or a whole page, up to 10,000 characters. Kana, Latin letters and numbers are left as they are; only words written with kanji get readings.
Every kanji, as in a children's book — or only words with a kanji beyond a school grade, so a learner who knows the first three years' kanji sees readings only where they need them. "First time each word appears" annotates a repeated word once.
The first time, your browser downloads the dictionary (about 18 MB). After that, changes to the text or the options update the result as you type.
A word with two common readings, such as 今日 (きょう or こんにち), is underlined and listed below the result with its other readings. The page chose one; only the sentence can say which is right.
As HTML ruby for a web page, in Anki's 漢字[かんじ] format for flashcards, or with the reading in brackets after each word.
Where furigana go, how this page chooses them, and where it is still wrong
Furigana are the small kana printed beside a kanji to show how it is read: above the character in horizontal text, to its right in vertical text. A Japanese children's book prints them over every kanji. A novel for adults prints them only over characters a reader may not know, or over a name whose reading cannot be guessed. This page can do either, and anything in between.
Why a reading is not a property of the character
Most kanji have more than one reading, and which one applies depends on the word around it. 日 is にち in 毎日, ひ in 日帰り, か in 三日 — and in 今日 the two characters together are read きょう, a reading neither has on its own. The 2010 常用漢字表 lists words like that in an appendix, its 付表: 今日 (きょう), 大人 (おとな), 一日 (ついたち), 二十日 (はつか). So furigana cannot be added a character at a time. The text has to be split into words first, and each word read as a whole.
How this page reads a sentence
Japanese is written without spaces, so the first job is finding where one word ends and the next begins. The page does that with kuromoji.js, an open-source tokenizer, and IPADIC, a dictionary of Japanese words built at the Nara Institute of Science and Technology. Together they split the sentence and give each word a reading. The page then does three things the dictionary does not: it places each reading over the kanji only, leaving the kana endings bare (引き出し becomes 引[ひ]き出[だ]し, not one reading over the whole word); it reads dates and counts the way Japanese does (10月 is じゅうがつ, 1日 after a month is ついたち, 1人 is ひとり, 3日間 is みっかかん); and it marks the words whose reading the sentence has to decide.
The words it cannot decide
人気 is にんき when it means popularity and ひとけ when it means signs of people. 上手 is じょうず when someone is skilful and かみて when it means stage left. A tokenizer picks the commoner reading and moves on; this page shows that choice, underlines it, and lists the other reading so you can check. Every pair it flags is recorded for that written form in JMdict, the open Japanese–English dictionary. 1日 on its own is flagged too: it is ついたち as a date and いちにち as a length of time, and only a month in front of it settles the question.
What it still gets wrong
Personal and place names are the weakest point: a name can be read several ways and only its owner knows which. The dictionary dates from 2007, so newer words, brand names and slang may get no reading — the page lists them rather than guessing. And the tokenizer still makes ordinary mistakes: 二行目 comes out as にこうめ instead of にぎょうめ. Treat the result as a first draft for a learner, not a proof-read text.
For readers who already know Chinese characters
Many learners in Singapore and Malaysia arrive at Japanese already reading Chinese characters. They recognise most kanji at sight and know roughly what a word means; what they lack is the Japanese reading. Furigana on just the words they cannot sound out — rather than on everything — is the kind of help that matches that gap.
Why the small print is called ruby, why 二十日 is はつか, and the four kanji a 2007 dictionary never saw
The name "ruby" comes from British printing, where it was the name of 5.5-point type — about half the 10-point size of ordinary text.
The W3C published its Ruby Annotation Recommendation in May 2001; browsers now draw HTML ruby natively.
In horizontal Japanese text furigana sit above the kanji; in vertical text they sit to the right.
A book with readings over every kanji is 総ルビ; one with readings only over hard characters is パラルビ.
The 常用漢字表's appendix (付表) lists words whose readings cannot be built from their characters, such as 今日 (きょう), 大人 (おとな) and 今朝 (けさ).
二十日 is はつか and 一日 is ついたち — both are in the 付表.
1日 is ついたち as a date and いちにち as a span of time; the characters are the same.
何 is read なん before a だ, で, と or の sound and before a counter (何回), and なに elsewhere (何を).
The IPADIC dictionary this page uses dates from 2007, before the 2010 Jōyō list adopted 𠮟, 剝, 頰 and 塡; the page reads them through the forms they replaced.
Anki writes furigana as 日本語[にほんご], with a space before a word to mark where its reading starts.
Frequently asked questions
-
That is the Japanese dictionary the tokenizer needs to split a sentence into words and read them. It is downloaded only when you press the button, and your browser keeps it, so the next visit starts at once. Opening the page costs nothing.
-
No. The dictionary is downloaded to your browser and the readings are worked out there. Nothing you type leaves your device.
-
Good for everyday text, but not perfect. The readings come from a statistical model and a dictionary, not from a person reading the sentence. Names, new words and words with two readings are where it goes wrong most; the page underlines the last kind.
-
They have more than one common reading — 今日 can be きょう or こんにち, 人気 can be にんき or ひとけ. The page shows the reading it chose and lists the alternatives under the result. Every pair is recorded in JMdict.
-
Japanese elementary schools teach 1,026 kanji over six years. "Beyond grade 3" adds readings only to words containing a kanji not taught by the end of the third year. "Only kanji off the Jōyō list" adds them only where a newspaper would. The grades come from KANJIDIC2.
-
The dictionary has no entry for them — usually a recent word, a brand or a rare name. The page lists them under the result rather than guessing.
-
Paste it into a field and display that field with Anki's furigana filter, {{furigana:Field}}. Anki puts the bracketed reading above the characters before it, back to the previous space.
-
The HTML format works in web pages and in editors that accept HTML. Word processors have their own furigana feature — in Microsoft Word it is called Phonetic Guide — and the bracket format is the easiest to copy readings from by hand.
-
Not on this page — choose hiragana or katakana. To turn kana into romaji, use the romaji converter.
-
Japanese names have many possible readings and the right one is whatever the person uses. The dictionary gives the most common reading, which is often not the one on a passport. Check names with their owner.
Method & sources
How it computes
Words and readings from kuromoji.js 0.1.2 with IPADIC (mecab-ipadic-2.7.0-20070801). Readings are placed over the kanji only by matching each word's kana against its reading; dates, people counts and spans after a number follow the 常用漢字表 付表 (一日 ついたち, 二十日 はつか, 一人 ひとり); two-reading words are flagged from a list checked against JMdict.
What this tool implements
- Every reading starts from the tokenizer and its dictionary; the page never invents one. Where IPADIC reads a counter after a number as a free-standing noun (10月 つき, 1日 にち, 1人 にん, 3日間 にちかん), the page applies the reading the 2010 常用漢字表 gives in its appendix (付表) — 一日 ついたち, 二日 ふつか, 二十日 はつか, 一人 ひとり, 二人 ふたり — or 日's kun reading か (三日 みっか). Every whole-word reading it applies is a JMdict headword reading (checked 2026-10-01); spans such as 三日間 are 三日 + 間.
- Words with more than one common reading are not silently resolved: 22 written forms (今日, 人気, 上手, 日本, 市場 and others), each with every listed reading recorded for that form in JMdict, are underlined on the page and listed with their alternatives. 1日 alone is flagged as いちにち or ついたち unless a month precedes it.
- A word the dictionary cannot read is listed as having no reading, never guessed. The four 2010 Jōyō forms the 2007 dictionary predates (𠮟, 剝, 頰, 塡) are read through the forms they replaced and printed as the reader typed them.
- The ~18 MB dictionary is downloaded only when the reader presses the button and is never on the page's critical path. Text never leaves the browser.
- The mistakes the page names in its own prose (二行目 read にこうめ) are asserted by the test suite, so a dictionary change that fixes one turns the suite red until the sentence is updated.
Sources
- 常用漢字表 (平成22年内閣告示第2号, 2010), including the 付表 of words with special readings: https://www.bunka.go.jp/kokugo_nihongo/sisaku/joho/joho/kijun/nai…
- JMdict (Electronic Dictionary Research and Development Group, CC BY-SA 4.0), release of 2026-10-01, against which every applied and flagged reading was checked: https://www.edrdg.org/wiki/index.php/JMdict-EDICT_Dictionary_Project — licence: https://www.edrdg.org/edrdg/licence.html
- kuromoji.js 0.1.2 (Apache-2.0) and mecab-ipadic-2.7.0-20070801 (Nara Institute of Science and Technology): https://github.com/takuyaa/kuromoji.js
- W3C, Ruby Annotation, W3C Recommendation 31 May 2001: https://www.w3.org/TR/ruby/
- Anki Manual, Field Replacements — ruby characters: https://docs.ankiweb.net/templates/fields.html
What can make this go out of date
- KANJIDIC2 school grades for the optional filter, from the copy App\Support\Tools\KanjidicData serves (refreshed weekly by kanjidic:refresh).
Pick up where you left off
Stored only in this browser — never sent to our servers.