周三下午,一个前端把网页的 font-family 改了一行。没有加标签,没有调接口,没有跑任何解析脚本——页面上的日文汉字,头顶齐刷刷冒出了读音。这不是浏览器更新了什么新特性,是一个字体自己在干活。
![]()
软件开发者安东尼·胡发布的 Furifont,做的事情说起来很朴素:把汉字和读音的组合预先注册进字体里,切换字体就等于打开注音。日文汉字读音多,学习者和孩子读文章时常卡在“这个字念什么”上,传统做法是给网页加专用标签标注读音,工作量不小。Furifont 把这道工序挪进了字体文件本身。
![]()
核心机制:合字
![]()
它用的是字体里叫“合字”的机制——把多个字符显示成一个字形。Furifont 提前把“汉字加上方读音”的整体字形存进字体,遇到“今日”这样的字符串,自动替换成带“きょう”注音的字形。原文一个字没动,复制出来还是普通的“今日”。
底子来自 Adobe 的开源字体“源ノ角ゴシック”和“源ノ明朝”,配合数千词的词典数据做汉字与读音的配对。这套思路的边界也很清楚:字体判断不了整句语义,所以“大人気”这类有多种读法的词,可能干脆不显示注音。
送假名带来的读音变化,比如“来る”和“来ない”,靠一段 JavaScript 辅助确认送假名,再给出对应读音。也就是说,纯字体能覆盖大部分场景,剩下的小部分要脚本兜底。
拿到手就能用的几种方式
- 电脑端:下载字体文件安装,本地生效
- 网站端:使用面向网页分发的文件
- 临时试用:官方提供书签脚本(bookmarklet)和用户脚本,给正在浏览的网页套上 Furifont,无需安装字体
书签脚本的用法是滚到官网“05 ウェブサイトで”一栏,选好注音文字和字体种类,把右侧的书签脚本拖进书签栏。在目标网站点一下,字体自动换成 Furifont。部分站点在未安装字体的情况下可能不生效。
官网还放了个输入框,随便贴一段日文就能看效果。注音可以选罗马字,黑体与明朝体可切换,字号、字重也能调。
代码在 GitHub 上公开,字体授权采用 SIL Open Font License 1.1。开发者本人提醒了一句:受字体机制所限,结合上下文判断读音有天花板,注音存在出错的可能。
对做前端的人来说,这件事的启发不在日语本身。一个原本要靠标记语言和脚本协作解决的问题,被下沉到了字体这一层——渲染管线里最不起眼的一环。省掉的不只是标签,还有围绕标签的一整套维护成本。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.