VSCode无法靠系统语言自动切中文,必须手动指定zh-cn才生效;VSCODE_NLS_CONFIG环境变量在1.70+版本已失效,系统区域设置无效,唯一可靠方式是执行Configure Display Language命令或严格按路径/格式编辑locale.json并彻底重启。

VSCode 无法靠系统语言自动切中文,必须手动指定 zh-cn 才生效;所谓“系统同步”只是误传,VSCODE_NLS_CONFIG 环境变量在新版中已基本失效。
为什么改系统区域设置没用
Windows 控制面板里把“非 Unicode 程序的语言”设成中文,或 macOS/Linux 下把 $LANG 改成 zh_CN.UTF-8,对 VSCode 当前版本(≥1.70)完全不触发界面切换。VSCode 自 2023 年起就弃用了系统 locale fallback 机制,只认自己配置的 locale 值。
常见错误现象:
- 系统语言是中文,但 VSCode 启动后顶部菜单仍是英文
- 终端里
echo $LANG输出zh_CN.UTF-8,VSCode 却无反应 - 设置了
VSCODE_NLS_CONFIG='{"locale":"zh-cn"}'启动,但窗口一开还是英文——该环境变量在 1.80+ 版本中已被忽略
Configure Display Language 命令才是唯一可靠入口
这个命令不是“选中文”,而是直接写入用户级 locale.json,且只接受严格格式的值。输错、选错、漏重启,三者任一都会失败。
操作要点:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)呼出命令面板 - 输入
Configure Display Language,注意拼写和大小写,别输成Change Language或Configure Language - 回车后从下拉列表中选
zh-cn—— 不是 “简体中文”,不是zh_CN,也不是Chinese - 弹窗出现后必须点
Change and Restart;点OK或关掉弹窗,配置不会写入
locale.json 手动编辑是最稳兜底方案
当命令面板卡死、插件安装异常、或企业策略禁用扩展市场时,直接写文件反而最快。路径和内容格式稍有偏差就会静默失败。
关键细节:
- 文件路径必须准确:
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json
Linux:~/.config/Code/User/locale.json - 内容只能是合法 JSON,严格为:
{"locale":"zh-cn"}
不要加逗号、不要换行、不要 BOM、不要多余空格、不要写成"locale": "zh" - 如果文件不存在,直接新建;如果存在但内容不对,删掉重写,别试图合并
- 改完必须彻底退出 VSCode(任务管理器杀光所有
Code.exe或Code Helper进程),再双击图标启动
Remote-SSH / WSL 下中文不生效?那是另一套配置
本地 VSCode 切成中文,不代表远程端也变。Remote-SSH 或 WSL 中的 VSCode Server 是独立进程,它读的是远程机器上的配置,和本地 locale.json 无关。
解决方式:
- 在远程机器上打开
~/.vscode-server/data/Machine/locale.json(路径可能含哈希后缀,如Machine/abc123/locale.json) - 确保内容为
{"locale":"zh-cn"},不是settings.json,也不是user-data-dir下其他位置 - 断开当前 Remote 连接,重新连接;或在远程终端执行
code --remote-ssh-verbose触发重载
真正容易被忽略的是:远程端没有装中文语言包也能显示中文界面——因为语言资源由本地 VSCode 打包下发,远程只需正确配置 locale.json 即可。不需要在远程机器上重复安装扩展。


















