locale.json 的 locale 属性仅控制 VS Code 主界面语言(菜单栏、活动栏 hover 文字、设置导航、命令面板提示等),不控制终端、调试控制台、Git 输出、插件 UI 或运行时错误;其值必须严格为小写短横格式的 "zh-cn",路径、编码(UTF-8 无 BOM)、JSON 格式均需完全合规,远程环境需单独配置。

locale.json 的 locale 属性到底控制什么
它只控制 VS Code 主界面的显示语言(菜单栏、活动栏 hover 文字、设置页导航、命令面板提示文字等),不控制终端、调试控制台、Git 输出、插件 UI 或运行时错误信息。这些组件走各自独立的本地化逻辑,比如终端依赖系统 LANG 环境变量,Node.js 错误堆栈取决于 node 进程启动时的编码环境。
locale 值必须严格写成 "zh-cn" 而不是其他变体
VS Code 1.70+ 版本只认小写、带短横、无下划线的 zh-cn。以下写法全部无效:
-
zh_CN(下划线,Unix locale 风格,VS Code 不识别) -
zh-CN(大写 C/N,JSON 字符串虽合法但 VS Code 拒绝匹配) -
zh-hans(ICU 标准,部分老插件用,新版不支持) -
Chinese或简体中文(非标准标识符,命令面板里根本不会出现)
唯一被官方语言包和 VS Code Server 同时认可的值就是 zh-cn。
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
locale 属性不生效的三个硬性前提
哪怕只错一个,VS Code 就会静默忽略该文件,回退到英文界面:
- 文件路径必须是用户数据目录下的
User/locale.json,不能放在工作区.vscode/下,也不能是locale.txt或Locale.json(大小写敏感) - 文件编码必须是 UTF-8 无 BOM —— 用记事本或 Sublime Text 手动保存极易带 BOM,推荐直接用 VS Code 新建并保存
- 内容必须是严格合法的单行 JSON:
{"locale":"zh-cn"},不能多逗号、空格、换行或注释
远程环境(Remote-SSH / WSL)的 locale 是独立副本
你在本地设好 locale.json,连上远程机器后界面仍是英文,这不是配置失败,而是 VS Code Server 在远程启动了一个全新实例,它读取的是远程机器上的 locale.json。
- Remote-SSH:按
Ctrl+Shift+P运行Developer: Open User Data Folder,进User/目录编辑 - WSL:先执行
code --list-extensions确保 Server 已启动,再进~/.vscode-server/data/Machine/xxx/User/locale.json(xxx 是哈希后缀) - 远程端的语言包也得单独安装,本地装的插件不会同步过去
最常被忽略的是:改完远程 locale.json 后,必须在远程窗口里执行 Developer: Reload Window,而不是 reload 本地窗口——两者进程完全隔离。

















