Sublime Text菜单中文显示方块或英文,是因未正确配置中文字体及渲染参数:需在Settings–User中强制添加带回退链的font_face、启用directwrite(Windows)或匹配系统locale(macOS/Linux),并彻底退出重启。

菜单显示方块、□ 或英文,不是汉化包没装好,而是 Sublime Text 没拿到正确的中文字体上下文——它在用英文字体渲染中文菜单,或系统没启用 UTF-8 渲染管线。
为什么改了 font_face 还是乱码
很多人加了 "font_face": "Microsoft YaHei" 却仍看到方块,问题出在两个地方:
- Windows 下未确认
Microsoft YaHei真实存在(控制面板 → 字体里搜不到就无效) - macOS 下没配字体回退链,比如只写
"PingFang SC",但某些菜单项用的是STHeiti,缺字就 fallback 成方块 - Sublime Text 3.3+ 默认禁用 Unicode 菜单渲染,不显式声明,它会绕过中文字体直接走 ASCII 渲染路径
Preferences → Settings–User 必加的三行
这不是“可选优化”,是强制激活中文 UI 渲染的最小配置。复制进 Preferences → Settings–User 并保存:
{
"font_face": "Microsoft YaHei, SimSun, sans-serif",
"font_options": ["directwrite"],
"dpi_scale": 1.0
}
说明:
-
font_face必须带回退链:Windows 优先用Microsoft YaHei,备选SimSun;macOS 改成"PingFang SC, STHeiti, sans-serif" -
font_options中的directwrite是 Windows 下启用现代文本渲染的关键,缺了它,微软雅黑会模糊或断字 -
dpi_scale设为1.0可防止高分屏下菜单字体被错误缩放导致截断或重叠
别碰 Default.sublime-package 里的 menu_en.json
手动解压、编辑、再打包这个文件是典型误区:
- ST3.3+ 已将菜单资源编译进二进制 bundle,修改
menu_en.json不影响实际渲染 - 强行替换会导致插件加载失败,甚至触发 Sublime 的安全校验中断启动
- 汉化包(如 ChineseLocalization)本身只提供翻译映射,真正显示靠字体 + 渲染引擎,不是靠改 JSON
Linux/macOS 用户额外注意 locale 和 Core Text
菜单乱码在 macOS 上常伴随 locale 错配:
- 终端运行
locale | grep -E "(LANG|LC_ALL)",输出必须含UTF-8,不能是en_US.ISO8859-1 - 若为后者,临时修复:
export LC_ALL=en_US.UTF-8,再从终端启动 Sublime:subl - Linux 用户需确认已安装
fonts-wqy-microhei或fonts-noto-cjk,且在font_face里显式列出,例如:"WenQuanYi Micro Hei, Noto Sans CJK SC"
最易被忽略的一点:改完配置后必须完全退出 Sublime(macOS 要右键 Dock 图标 → Quit,不能只关窗口),否则字体缓存不刷新,改了也白改。


















