Configure Display Language命令失效的真正原因是locale.json路径错误或被覆盖:必须位于用户级正确路径,内容严格为{"locale":"zh-cn"},且settings.json中locale字段已弃用。

Configure Display Language 命令失效的真正原因
插件更新后界面语言突然回退到英文,或命令面板里 Configure Display Language 选了 zh-cn 却没反应——大概率不是插件坏了,而是 locale.json 被写到了错误路径,或者被工作区配置覆盖。
VS Code 1.70+ 彻底弃用 settings.json 中的 "locale" 字段,你手动加了它,VS Code 会静默忽略。真正起作用的只有用户级 locale.json 文件,且必须满足三个硬性条件:
- 路径正确:Windows 是
%APPDATA%\Code\User\locale.json,macOS 是~/Library/Application Support/Code/User/locale.json,Linux 是~/.config/Code/User/locale.json - 内容严格为一行:
{"locale":"zh-cn"}(不能有空格、注释、BOM、多余引号) - 文件权限可读:尤其在 WSL 或 Remote-SSH 下,远程用户的 home 目录权限若为
700且属主不匹配,VS Code Server 会拒绝加载
多语言插件共存时的冲突表现
装了多个语言包(比如同时有简体中文和日文包),再执行 Configure Display Language,有时会发现菜单项变少、命令面板输入框乱码,甚至报错 Cannot read property 'translate' of undefined。
这不是兼容问题,而是非官方插件注入了破坏性代码。真实有效的语言包只有一个:
- 必须是
Chinese (Simplified) Language Pack for Visual Studio Code - 发布者必须是
Microsoft - 扩展 ID 必须是
ms-ceintl.vscode-language-pack-zh-hans
其他名称含 Chinese Language Pack、VSCode Chinese、Pro、Ultimate 的全部卸载。它们不随 VS Code 版本更新,容易在插件激活阶段覆盖翻译上下文对象,导致 translate 方法未定义。
远程开发(WSL / Remote-SSH)下 locale 不同步
本地设好中文,连上 WSL 或 Remote-SSH 后界面仍是英文?不是插件没装,而是 VS Code Server 在远程机器上运行,它不读本地的 locale.json,只读远程路径下的同名文件。
实操步骤:
- 先确认远程 VS Code Server 已启动:
code --list-extensions能正常返回列表 - 进入远程配置目录:
~/.vscode-server/data/Machine/下找哈希命名的子目录(如a1b2c3...) - 在该目录下创建或编辑
locale.json,内容仅一行:{"locale":"zh-cn"} - 回到 VS Code 远程窗口,执行
Developer: Reload Window(不是本地窗口)
注意:Remote-SSH 默认不会同步本地 locale.json,也不能靠 scp 手动覆盖到 ~/.vscode-server/bin/... 下——那个路径是只读的,改了也无效。
字体 fallback 链缺失导致部分 UI 显示方块
菜单和设置页是中文了,但右键菜单、终端标签、状态栏里的 Ln 12, Col 5 仍是英文或显示为方块——这不是配置错误,是 Electron 渲染层限制。
但你可以控制能显示中文的区域:
- 在
settings.json中显式指定中文字体 fallback 链:"editor.fontFamily": "'Microsoft YaHei', 'PingFang SC', 'Noto Sans CJK SC', 'sans-serif'" - Windows 用户避免只写
'SimSun':它缺少等宽变体,侧边栏文字易错位;Microsoft YaHei更稳 - macOS 用户禁用
'Helvetica Neue':该字体无中文字符集,会跳过渲染,直接 fallback 到系统默认,可能触发方块 - Linux 用户检查是否安装了
fonts-wqy-zenhei或noto-fonts-cjk;DejaVu Sans无法覆盖 GBK 全字库
这类问题最常被忽略:你以为是语言设置失败,其实只是字体链断在了第二环,而 VS Code 日志里根本不会报错。


















