Linux下code命令未汉化主因是locale未生效,必须确保~/.config/Code/User/locale.json内容为{"locale":"zh-cn"}或启动时加code --locale=zh-cn参数,环境变量LANG无效,工作区settings.json中locale字段被忽略。

Linux下code命令没汉化,不是插件问题而是locale没生效
VS Code 在 Linux 上通过 code 命令启动时,默认不读取桌面环境语言,也不会自动 fallback 到系统 locale。即使你装了中文包、改了 settings.json,用终端执行 code . 打开的窗口仍可能是英文——因为启动进程没继承你的用户级语言配置。
根本原因:VS Code 启动时只认 locale.json 文件或显式传入的 --locale=zh-cn 参数,而 shell 环境变量(如 LANG=zh_CN.UTF-8)对它无效。
- 别指望
export LANG=zh_CN.UTF-8 && code .能让界面变中文 -
code --locale=zh-cn .是唯一能绕过配置文件、强制本次启动用中文的方式 - 如果想一劳永逸,必须确保
~/.vscode/locale.json存在且内容为{"locale":"zh-cn"} - 某些发行版(如 Ubuntu 24.04 的 Snap 版 VS Code)会把配置路径锁定在
~/snap/code/common/.vscode/,得去那里找locale.json
code --install-extension 安装语言包后仍不生效?检查安装路径和权限
用命令行安装语言包比 GUI 更容易出错:下载中断、解压失败、写入权限不足都会导致 package.nls.zh-cn.json 缺失,但扩展管理器仍显示“已安装”。
验证是否真装好:
- 运行
code --list-extensions --show-versions | grep zh-hans,确认输出含ms-ceintl.vscode-language-pack-zh-hans@* - 手动检查语言包目录:
ls ~/.vscode/extensions/ms-ceintl.vscode-language-pack-zh-hans-*/package.nls.zh-cn.json,文件必须存在且非空 - 若目录不存在或 JSON 文件为空,说明安装损坏,需先
code --uninstall-extension ms-ceintl.vscode-language-pack-zh-hans,再重试 - 如果是 root 权限安装(比如用
sudo code --install-extension ...),普通用户无法读取该扩展,必须去掉sudo重装
终端里 code 启动后右下角显示 en?优先点它手动切
右下角状态栏的语言标识是最终权威来源——它显示什么,当前窗口就用什么语言。如果显示 en,哪怕 locale.json 已设为 zh-cn,也说明这次启动没加载成功。
这时最快速兜底操作就是点击那个 en,从弹出菜单选 zh-cn,然后**完全关闭所有 VS Code 窗口(包括后台进程)再重开**。
- 别用
Developer: Reload Window,它不重读locale.json - 用
ps aux | grep code确认无残留进程,必要时pkill -f code - 如果点击
en后菜单里没有zh-cn,说明语言包根本没装成功或版本不匹配(比如 VS Code 1.90 装了适配 1.85 的离线包)
工作区 .vscode/settings.json 里写 "locale": "zh-cn" 没用
这个字段在工作区设置中**完全被忽略**。VS Code 只在用户级 locale.json 或启动参数里读取 locale,工作区 settings.json 里加这行等于白写。
常见误操作:
- 以为改了项目里的
.vscode/settings.json就能控制该工程的语言——不行 - 复制别人配置时把
"locale": "zh-cn"粘进settings.json,结果发现重启无效 - 用脚本批量生成项目模板,顺手塞了这行,反而干扰排查
真正要改的只有两个位置:~/.vscode/locale.json(推荐),或每次启动加 --locale=zh-cn(适合 CI/脚本场景)。其他任何地方写都无效。


















