WSL 中 VSCode 界面为英文是正常现象,因 vscode-server 运行于 WSL 独立环境,需在 WSL 内配置 locale.json 并安装中文语言包,二者缺一不可。

WSL 中 VSCode 界面仍是英文?本地设置不生效是正常现象
VSCode 在 WSL 中显示英文,不是你本地没设对,而是 WSL 启动的是独立的 vscode-server 进程,它完全不读取 Windows 侧的 locale.json 或扩展。界面语言由远程端自己的配置决定,和本机无关。
必须在 WSL 内手动创建 locale.json 文件
VSCode Server 只认特定路径下的 locale.json,且该文件必须严格满足格式要求:
- 路径为:
~/.vscode-server/data/Machine/(/locale.json 是随机生成的目录名,如a1b2c3d4...;可通过ls ~/.vscode-server/data/Machine/查看) - 内容只能是一行合法 JSON:
{"locale":"zh-cn"}(无空格、无换行、无注释) - 文件编码必须是 UTF-8 无 BOM —— 建议用
code命令在 WSL 终端中打开并保存,避免用 Windows 记事本写入 - 如果该路径下已有同名文件,先备份再覆盖;若目录不存在,需先连接一次 WSL 才会生成
Machine子目录
语言包也要在 WSL 里单独安装
本地装了 MS-CEINTL.vscode-language-pack-zh-hans,不代表 WSL 里也有。VSCode Server 启动时只加载远程端已安装的语言包:
- 在 WSL 终端中运行:
code --list-extensions | grep zh-hans,确认输出包含ms-ceintl.vscode-language-pack-zh-hans - 若无输出,执行:
code --install-extension ms-ceintl.vscode-language-pack-zh-hans - 安装后无需重启 WSL,但必须断开当前 Remote-WSL 连接,再重新打开文件夹(或执行
Developer: Reload Window)才能触发语言资源加载
常见失效原因:状态栏仍显示 en
右下角状态栏显示 en,说明 WSL 端的 locale.json 没被识别,重点排查:
-
locale.json是否放在了~/.vscode-server/data/Machine/下,而不是/ ~/.vscode/或~/ - 文件名是否拼错(比如写成
locale.txt或locale.json.bak) - 是否误用了大写或下划线(
"zh-CN"、"zh_CN"都无效,只能是"zh-cn") - WSL 实例是否真的重启过 —— 单纯
code .重连不一定刷新语言上下文,建议关闭所有 VSCode 窗口 + 在 WSL 中运行pkill -f "vscode-server"后再重连
最易被忽略的一点:WSL 的 locale.json 和 Windows 的 locale.json 是两个完全独立的配置,改一个不会同步另一个;哪怕你在 Windows 侧已完美中文,只要 WSL 侧缺任一环节(语言包、locale.json、重启),界面就一定是英文。











