vscode界面汉化必须通过严格路径和格式的locale.json文件实现:windows为%appdata%\code\user\locale.json,macos为~/library/application support/code/user/locale.json,linux为~/.config/code/user/locale.json;内容仅允许{"locale":"zh-cn"}(小写、短横、无空格、无bom、合法json),且需彻底退出所有进程后重启才生效;remote-ssh/wsl环境须在对应远程路径单独配置并安装中文语言包。

locale.json 文件路径和命名必须严格匹配
VSCode 只读取特定路径下的 locale.json,且文件名、大小写、位置缺一不可。它不认 locale.txt、Locale.json、.locale.json,也不读项目根目录 .vscode/locale.json 或系统级路径。
正确路径只有这三处(任选其一):
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
~/Library/Application Support/Code/User/locale.json - Linux:
~/.config/Code/User/locale.json
如果路径中多了一层 Machine/(如 Remote-SSH 或 WSL 场景),那是另一个独立实例的配置,和本地无关。
内容格式错误是静默失败的主因
VSCode 对 locale.json 的 JSON 格式极其敏感:一个中文引号、尾随空格、多余逗号、BOM 头,都会导致整个文件被忽略,界面维持英文且不报错。
合法内容只允许这一种写法(无空格、无注释、无 BOM、双引号全英文):
{"locale":"zh-cn"}
常见非法写法包括:
-
{"locale": "zh-cn" }(键值前后有空格) -
{"locale":"zh_CN"}(下划线非标准) -
{"locale":"en-US"}(VSCode 不识别 en-US,只认en或zh-cn) -
{'locale':'zh-cn'}(单引号非法) -
{"locale":"zh-cn",}(尾随逗号)
改完不生效?先杀干净所有 Code 进程
VSCode 启动后会缓存语言设置,仅“重新加载窗口”或双击图标重开,都无法刷新 locale.json。必须彻底退出,否则新配置永不加载。
操作步骤:
- Windows:打开任务管理器 → 结束所有
Code.exe进程(包括后台服务) - macOS:活动监视器 → 搜索并强制退出
Code Helper和Electron - Linux:终端执行
pkill -f "Code Helper\|Electron"
确认无残留进程后再启动 VSCode,界面才会真正按新 locale.json 渲染。
Remote-SSH / WSL 下 locale.json 是隔离的
你在本地改好了 locale.json,连上远程机器后仍是英文——这不是配置错了,而是 Remote-SSH 或 WSL 启动的是另一套 VS Code Server 实例,它读取的是远程机器上的配置。
远程端要单独处理:
- Remote-SSH 连接后,按
Ctrl+Shift+P运行Developer: Open User Data Folder,进User/目录新建或编辑locale.json - WSL 中,先运行
code --list-extensions确保 server 已启动,再进~/.vscode-server/data/Machine/[哈希串]/User/locale.json - 远程端的语言包也得单独安装,本地插件不会同步过去
最易被忽略的一点:locale.json 本身不提供翻译,它只是开关;没有对应语言包(如 ms-ceintl.vscode-language-pack-zh-hans),设成 zh-cn 也会静默 fallback 到英文。











