VSCode在Ubuntu的locale.json必须位于~/.config/Code/User/locale.json,需手动创建并写入{"locale":"zh-cn"}(小写连字符),同时安装中文语言包且确保无BOM;Remote-SSH需在远程端对应目录单独配置。

Ubuntu下locale.json路径和创建方式
VSCode在Ubuntu上的locale.json必须放在~/.config/Code/User/locale.json,这个路径是硬编码的,写错位置(比如~/.vscode或~/Code/User)完全无效。文件默认不存在,需要手动创建。
推荐用终端执行以下命令(自动创建目录+写入标准JSON):
mkdir -p ~/.config/Code/User
echo '{"locale":"zh-cn"}' > ~/.config/Code/User/locale.json
注意:echo后必须用单引号包裹整个JSON,避免shell解析双引号;值必须是zh-cn(小写、连字符),不能是zh_CN、zh-CN或zh-hans。
改完不生效?检查三个关键点
常见现象:重启VSCode后菜单栏、设置页仍是英文。大概率是以下其一没做对:
- VSCode没彻底退出:Ubuntu托盘里可能残留
Code Helper进程,打开系统监视器杀掉所有code和Electron相关进程,或运行pkill -f "Code Helper\|Electron" - 中文语言包没装:仅改
locale.json不够,必须先安装官方扩展Chinese (Simplified) Language Pack for Visual Studio Code(发布者为Microsoft) - 文件编码含BOM:用
vim或nano编辑时可能带BOM头,导致VSCode静默忽略。最稳做法是用VSCode自己打开~/.config/Code/User/locale.json新建并保存
Remote-SSH或WSL环境要单独配
你在本地Ubuntu改了locale.json,但通过Remote-SSH连接到另一台Linux服务器后界面仍是英文——这不是同步问题,而是远程VS Code Server读取的是它自己机器上的配置。
需登录远程服务器后操作:
- 确认VS Code Server已启动:
code --list-extensions - 进入远程端用户数据目录:
~/.vscode-server/data/Machine/(后面路径含哈希后缀,找最新修改时间的子目录) - 在该子目录下的
User/中创建locale.json,内容仍为{"locale":"zh-cn"} - 远程窗口中按
Ctrl+Shift+P执行Developer: Reload Window,不是重开本地窗口
为什么files.defaultLanguage不能改界面语言
很多用户误以为在settings.json里加"files.defaultLanguage": "zh-cn"能切界面,这完全无效。VSCode从1.70起已移除locale字段在settings.json中的支持,它只认独立的locale.json文件。
files.defaultLanguage本身作用就不是界面语言,而是新建空白文件时的临时语言模式(比如def触发Python),且只在“未输入任何字符+未保存+未获得焦点”的瞬时状态生效,人类根本抓不住这个时机。别碰它。
真正容易被忽略的是:VSCode语言优先级为「启动参数 > 工作区.vscode/locale.json > 用户级locale.json」。如果你的快捷方式或alias里写了--locale=en,或者当前项目根目录下有.vscode/locale.json,那用户级的配置就会被覆盖。











