vscode更新后locale.json变回"en"是设计行为,因自动更新会重置该文件;应改用settings.json配置"locale":"zh-cn",其优先级更高、不易被覆盖且支持同步。

为什么每次更新后 locale.json 都变回 "en"
VSCode 1.80+ 版本在自动更新时,会重置用户数据目录下的 locale.json 文件——这不是 bug,是设计行为。它不读取你之前写的值,而是直接写入默认的 {"locale":"en"} 或清空内容。尤其在后台静默更新 + 自动重启场景下,你刚设好的 {"locale":"zh-cn"} 会被秒删。
用 settings.json 替代 locale.json 才真正持久
locale.json 天然易被覆盖,而 settings.json 是 VSCode 同步和更新中更稳定的载体。自 1.80 起,settings.json 中的 "locale" 字段已正式支持且优先级高于 locale.json(只要两者共存,前者胜出)。
- 打开命令面板:
Ctrl+Shift+P→ 输入并选择Preferences: Open Settings (JSON) - 在
{}内添加一行:"locale": "zh-cn"(注意:必须小写、短横线、双引号、无空格) - 保存后执行
Developer: Reload Window,无需重启 - 验证是否生效:再打开命令面板搜
Configure Display Language,显示值应为zh-cn
Settings Sync 下怎么避免语言设置被覆盖
如果你开了 VSCode 内置的 Settings Sync(登录 Microsoft 账户),settings.json 会自动同步,但风险在于:多台设备语言设置不一致时,A 机设 zh-cn、B 机设 en,一同步就互相覆盖。
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
- 确保所有设备都统一在
settings.json中写"locale": "zh-cn",不要混用 - 别在某台机器上手动删或改
locale.json,否则下次同步会把它拉回来 - 如果已出现冲突,先关掉 Settings Sync(设置里搜
sync→ 点Turn Off and Reset Local State),再统一配置后重新开启
远程开发(SSH/WSL)下 locale.json 被重置的真相
本地改了没用,是因为 Remote-SSH 或 WSL 启动的是独立的 VS Code Server 实例,它完全不读你本地的 locale.json,而是读远程机器上的 ~/.vscode-server/data/Machine/xxx/locale.json。每次远程连接重建或 server 升级,这个文件可能被重置。
- 连上远程后,在终端运行:
ls -l ~/.vscode-server/data/Machine/*/locale.json - 若不存在,或内容不是
{"locale":"zh-cn"},就手动创建(路径中xxx是哈希名,选最新时间戳那个目录) - 用
echo '{"locale":"zh-cn"}' > locale.json写入,确保无空格、无换行 - 执行
Developer: Reload Window(在远程窗口中,不是本地)
最麻烦的点不是改错,而是忘了远程端也有自己的一套 locale.json —— 它和本地完全隔离,且更新逻辑也一样会重置。










