As a Chinese student I found that one of the first barriers is reading. Indeed, when trying to acquire new vocabulary one might be faced with the opacity of the Chinese character as opposed to alphabetical language: you can't pronounce a character on the first encounter while you can for unknown words in languages that use a Latin script (e.g English, French, etc.).


Many web browser extensions or desktop applications try to fill the gap by providing ruby character (pīnyīn below/above characters), but that's limited to the application.

When looking for a system-wide solution I thought that a ruby-font could do the trick for beginners.


So are there any such ruby-like fonts? I would prefer free/FOSS ones.

FOSS in order to be modifiable/redistributable.


Of course there are characters with multiple pronunciations, but my target audience is beginners.

  • 5
    It would be impossible to provide such a font that worked for all cases, as some characters have different pronunciations based on the context. I'd go with applications or browser extensions, where you can highlight a word and get a lookup. Commented Sep 7, 2013 at 23:26
  • 2
    Even at beginner level, you can't avoid learning characters with multiple pinyin. For someone to create a glyph for every Ruby annotation on top of each character, a private class of code points in Unicode would be required. This task would be too immense (considering the number of Chinese characters) and too specialized (considering a special set of code points) to be offered free of charge to anyone.
    – 杨以轩
    Commented Sep 8, 2013 at 3:22
  • 2
    There are such fonts (though I don't know how they deal with a character with multiple pronunciations). For example, for simplified Chinese, 华康楷体W5GB5长汉音上L, and for traditional Chinese, 华康标楷W5长汉音上U繁. Yet, I don't quite understand what you mean by free -- you may know that, many resources you can download "for free" in China are often not really "free".
    – Stan
    Commented Sep 8, 2013 at 5:29
  • 3
    @QuestionOverflow With a quick test using the Unihan database I got 8119 code point out of 34132 whose kHanyuPinyin field has two or more pronunciations so ~25%. These pronunciations are order by commonality so even if not a perfect solution it does help (at the beginning) Commented Sep 8, 2013 at 8:10
  • 1
    @NS.X. Free and Open Source generally means anyone is free to use, modify and distribute with no restriction, and sometimes provided that distributed copies are under the same or compatible license. Simply being free or able to copy it is not enough to satisfy the definition. Commented Sep 13, 2013 at 10:26

6 Answers 6


as Stumpy Joe Pete said, you'll be hard pressed to find a font that works in all cases, and that you may want to look into a browser extension that highlights, magnifies, and explains the character you've hovered over.

I recommend Pera Pera Kun: http://www.perapera.org/

They have extensions for FireFox and Chrome.

Here's a snapshot:

enter image description here

I have never seen or heard of a font that will provide that functionality intrinsically. Kids Chinese books, however, often have the pronunciation under the characters to help the kids learn.

Hope this helps.

  • I think OP's question is 2) not 1).
    – NS.X.
    Commented Sep 9, 2013 at 21:06
  • Actually you don't need to edit your page source, Firefox allows you to define fonts per-scripts (Western, Chinese/Simp/Trad/HK): Options > Content > [Advanced > Font for: 'Western' ]. Chrome as a similar features through Advanced Font Settings extension (chrome.google.com/webstore/detail/advanced-font-settings/…). I'm already using Perakun, but pronunciation is locked behind user action of hovering, you have to hover words by words to get their definition/pronunciation. A font will provide this intrinsically Commented Sep 10, 2013 at 6:20
  • Moreover Microsoft YaHei New is not a free/FOSS font, so I can't based my work on it Commented Sep 10, 2013 at 6:23
  • @EdouardLopez okay, didn't know you could define fonts per scripts. Anyway, I've updated my answer. I have never seen or heard of a font that will provide that functionality intrinsically. Kids Chinese books, however, often have the pronunciation under the characters to help the kids learn. Try that.
    – user3871
    Commented Sep 10, 2013 at 13:54
  • This is built in to OS X and works system-wide in Cocoa applications. Hover a word and press cmd+ctrl+d. It's using the system's dictionary. Install Chinese dictionary from xiaocidian.com. There's a similar application for Windows named Lingoes. For Linux I guess there's alternatives too. Probably window manager specific? There surely must be one for KDE. Commented Sep 20, 2013 at 7:01

I've looked for a similar font (with pinyin on top, or bottom) and have not found anything. There are a lot of naysayers on this thread, and I'm not sure why. Such a font would be extremely useful, even given the limitations. Creation of such a font would be automatic using publicly available databases, and even if the original fonts were copyrighted, one could instead release a program to make a derivate font for personal use using the ones already on your computer. For the minority of characters with multiple pronunciations - they could all be shown in order of frequency.

Alternatively I'd really like to see a browser extension that could put the ruby-text pinyin above chinese characters on-screen (no popups).

Google translate will give the pinyin for a selection of chinese text (and read it out to you), although the pinyin does not appear near the characters themselves.

The advantage of browser extensions such as perapera or zhongwen (faster on chrome) are that they can identify multiple-character words, giving the correct pronunciation and definition. However hovering over word-by-word with popups can also be distracting.

  • 1
    I'm working on such font generation, but I've some optimization to do. I prefer the font approach to the extension/add-on as its a wider one. Extensions are limited to one browser or one app. With a font your whole system will display such info Commented Sep 17, 2013 at 17:39

Yes a font does exist with pinyin on top of every character and it can be obtained from the Chinese page at www.pinyinok.com/pyhzk.htm but I do NOT recommend it for learning, because taking only the most common reading of every character leads to too many fundamental mistakes (e.g. 音乐 "music" comes out as "yīn lè" instead of "yīnyuè"). I came across one beginner whose techie friend had installed this font on her Windows PC for her to use with a reference CD-ROM and she honestly thought the resulting pinyin was official and definitive when it wasn't.

It's much better to use a good pinyin annotator if the application supports it (e.g. a web browser can use plugins, bookmarklets or annotating proxies), or at least copy and paste your text into an application that can annotate it.

(I'm not sure what to do about text that can't be copied though. Jingshan Ciba on old versions of Windows might help but I've not tried it. Learning to recognise a few basic characters can help, as can having an emergency backup in the form of a smartphone with Pleco on it, on which you can stroke or otherwise capture unknown characters.)

Yes it is possible to design a font that accounts for some (but not all) context, rendering 音乐 as 1 word yīnyuè for example, but the bad news is it would have to use a font technology that supports automatic ligatures. Modern Windows has OpenType, but OpenType automatic ligatures are supported only in applications that use WPF (Windows Presentation Foundation) on NET 3+. That leaves out an awful lot of Chinese CD-ROMs that still use the earlier GDI interface. These applications will not get the ligatures if such a font were to be designed. I don't know if anyone has done it; I was thinking of doing one myself but was put off when I realised it won't help GDI applications.

  • Thanks for your feedbacks, I have resumed my work on a project to create ruby annotated font and create one font for Chinese Commented May 29, 2017 at 8:42
  • 1
    Édouard I'm sorry but you need to put a big warning on your project. Is it helpful to learn English if I spell out the "most popular" pronunciation of each individual letter without regard to context? Luh(L) Ih(I) Kuh(K) Eh(E) Tuh(T) Huh(H) Ih(I) Suh(S). OK that's an exaggeration (the context of a Chinese character is important a bit less often than the context of an English letter) but I guess your font will average at least one mistake per sentence. Perhaps I should have been clearer when I said I don't recommend pinyinok's font for learning: I don't recommend ANY font working like that. Commented May 30, 2017 at 9:45
  • Thanks for the feedback, I'm aware of the issue but do you have data on this issue ? Commented May 31, 2017 at 10:08
  • 2
    OK here are some common characters that really need you to know the context to get the pronunciation right: 为 (wèi vs wéi), 差 (chà vs chāi), 重 (zhòng vs chóng), 的 (de vs dì), 处 (chǔ vs chù), 当 (dāng vs dàng), 得 (de vs dé vs děi), 地 (de vs dì), 钉 (dīng/dìng), 场 (cháng/chǎng), 倒 (dǎo/dào), 分 (fēn/fèn), 发 (fā/fà), 缝 (féng/fèng), 过 (guò/guo), 干 (gān/gàn), 乾 (qián/gān), 更 (gēng/gèng), 行 (xíng/háng), 还 (hái/huán), 好 (hǎo/hào), 觉 (jué/jiào), 解 (jiě/jiè), 教 (jiāo/jiào), 结 (jié/jiē), 卷 (juǎn/juàn), 圈 (quān/juàn), 系 (jì/xì), 量 (liàng/liáng), 露 (lù/lòu), 勒 (lēi/lè) + others I can't fit in this comment. Commented Jun 1, 2017 at 22:15
  • 1
    If you really must have a font like this, can you add the top 2 or 3 pronunciations (not just the top 1) for each character? I don't mind about a character whose no.1 pronunciation is right 99% of the time, but I'd be worried about one whose no.1 pronunciation is right only 51% of the time and the other 49% it's something else. The above characters are all examples where the 2nd pronunciation is right a significant fraction of the time. And there are others. Maybe your kHanyuPinyin-scanning script can cross-check with CC-CEDICT or similar re how many words use the no.2 and no.3 pronunciations? Commented Jun 1, 2017 at 22:55

For Android, there is Pinyiner (https://play.google.com/store/apps/details?id=com.astratech.chinesereader_free) . It works offline, you can even read books, mark new words and create flashcards.


I created a project to gerenate such font for chinese and other scripts:

  • hanzi-pinyin-font (first release): Chinese font displaying Hanzi (汉字) characters with by transliteration/pronunciation (Pīnyīn).

  • tifinagh-font (work in progress): Tifinagh font with pronunciation (abjad/alphabet used to write the Berber languages)

  • ruby-font-creator: Generate rich Unicode open fonts with custom annotations, transliterations, pronunciations.

  • For people who are learning to read, I highly recommend generating the ruby text with the fonts 蒙納繁和教科書體 (Traditional) and 方正螢雪简体 (Simplified) instead. These are heavily inspired by Japanese textbook fonts and avoids the sometimes unnatural shapes that appear in gothic and serif fonts. Can't comment on whether they're "free" though; if they're not, try to use a Kaishu font for the project.
    – dROOOze
    Commented Mar 8, 2018 at 21:23
  • Thanks @droooze for the feedback. However, I require free/open source font for the project. Noto has a Serif variant we planned to use. If you are interested in the font-face topic Fundamentals of Chinese Typography Commented Mar 10, 2018 at 11:26

I asked a friend in 2001, how best to learn Chinese and he pointed me to the Bopomofo phonetic alphabet, and the schools and textbooks that use it. That alphabet gave me very quickly an unambiguous tool for phonetic reading and writing so i didn't feel so entirely illiterate, it helped me learn pronunciation, helped me 'forget' my western phonetic patterns, gives me a way of typing or writing a word according to how i hear it, and i have been able to find dictionaries and childrens books i can buy where each chinese character has the bopomofo sound spelled out below or beside the character.

It was a great piece of advice for me, and has accomplished more for me than pinyin, the letters of which, when i use them, are constantly reverting in my mind's ear to their western phonetic expressions. The downside of BoPoMoFo is that it is less available in written form and also it is harder in the US to find a teacher who uses this method.

  • Even in Taiwan, pinyin is now "official," though bopomofo is still used.
    – 伟思礼
    Commented Nov 15, 2017 at 16:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.