必须修改 settings.json 中的 "locale": "zh-cn" 才算全局生效,因 vscode 界面语言仅认该文件或 locale.json 的明确值;插件仅提供翻译资源,不自动切换;终端、调试控制台、webview 等不受 locale 控制。

必须改 settings.json 里的 "locale": "zh-cn",其他方式都不算“全局设置生效”。
为什么“全局设置”不等于“点一下就变”
VSCode 的“全局设置”指用户级配置(不是工作区或远程环境),而界面语言只认 settings.json 或 locale.json 中明确写的 "locale" 值。命令面板里选 zh-cn 后点 Restart,本质也是往 settings.json 写这行——但很多人没意识到它写在哪、是否被覆盖、是否格式错误。
- 插件安装只是提供翻译资源,不自动触发切换
- 右下角弹窗提示“Restart to apply changes”,但若后台进程没退出,新窗口会复用旧 locale 环境
- 某些插件(如 Settings Sync)可能把
"locale"字段从同步白名单中剔除,导致本地改了也无效
手动编辑 settings.json 的正确姿势
打开命令面板(Ctrl+Shift+P / Cmd+Shift+P),运行 Preferences: Open Settings (JSON),在花括号内添加或修改这一行:
"locale": "zh-cn"
注意以下细节:
- 必须是双引号包裹的字符串,不能是单引号
- 值只能是
"zh-cn",不是"zh_CN"、"zh-hans"、"Chinese"或"zh" - 如果文件已有其他配置项,这行末尾要加逗号(除非它是最后一项)
- 保存后必须彻底退出 VSCode(Windows 杀掉所有
Code.exe,Mac 执行killall -u $USER 'Code Helper'),再重新启动
当 settings.json 不起作用时,直接改 locale.json
极少数情况(如企业策略锁死 settings、Remote-SSH 连接、或 VSCode 启动异常),settings.json 中的 locale 会被忽略。此时可手动创建/编辑 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"}
这个文件优先级高于 settings.json 中的 locale 字段,且不依赖任何插件加载顺序。
终端、调试控制台、插件 WebView 仍是英文?不是设置错了
locale 只控制 VSCode 外壳:菜单栏、侧边栏、命令面板、设置界面、弹窗提示等。以下三类内容不受影响:
- 集成终端(
Integrated Terminal)输出,取决于你 shell 的$LANG和系统区域设置 - 调试控制台(Debug Console)日志,由调试器本身决定语言(如 Python 的
ptvsd、Node.js 的node进程) - 插件自建 WebView 页面(如 GitHub Copilot、LeetCode 插件题面页),需插件自身实现多语言支持
这些地方显示英文,和你的 locale 设置是否成功无关,别因此反复重装语言包或怀疑路径写错。











