可以,但只对 typescript 自带诊断生效;需在 vs code 设置中配置 typescript.locale 为 zh-cn 并重启 ts server,第三方插件提示不受影响。

TS 错误提示能设成中文吗?可以,但只对 TypeScript 自带诊断生效
VS Code 里 TypeScript 的报错信息(比如 Cannot find name 'xxx')默认是英文,它不随界面汉化自动变中文——因为这是 TypeScript Server 自己返回的文本,和 VS Code 界面语言无关。要让它显示中文,得让 TS Server 本身用中文 locale 启动。
实操上,只需在 VS Code 设置里加一行配置:
- 打开设置(
Ctrl+,),搜索typescript locale - 找到
TypeScript > Locale这一项,点击下拉菜单,选zh-cn - 保存后,**重启 TypeScript Server**:按
Ctrl+Shift+P→ 输入Developer: Restart TS Server→ 回车
改完立刻生效,下次 hover 类型错误、或在 Problems 面板里看到的提示,就变成「找不到名称“xxx”」这类中文了。注意:这个设置只影响 TS 自身的诊断,不改变 JS/HTML/Python 等其他语言的提示。
为什么改了 locale 还是英文?检查 TS Server 是否真重启了
很多人设完 zh-cn 就以为完事了,结果提示还是英文——大概率是 TS Server 没真正重启。VS Code 不会自动 reload 它,尤其当你开着多个 TS 项目时,旧进程可能还在缓存英文响应。
确认方法很简单:
- 按
Ctrl+Shift+P,输入并执行Developer: Show Running Extensions - 看输出里有没有
typescript-language-features相关进程;再执行一次Restart TS Server - 顺手清下 TS 缓存:关闭所有文件夹,再重新打开项目(不是仅重启 VS Code)
另外,如果你用的是 workspace 级别的 settings.json,确保没被用户级设置覆盖。可以临时删掉用户设置里的 "typescript.locale",只留工作区里这行,避免冲突。
第三方插件(如 ESLint、Prettier)的提示不会变中文
别指望改了 typescript.locale 就能让所有红波浪线都中文。ESLint 报的 Unexpected any. Specify a different type.、Prettier 的格式警告、甚至 Volar(Vue)的 SFC 提示,全由各自服务控制,它们不读 VS Code 的 locale 配置。
这些插件是否支持中文,完全取决于开发者有没有提供本地化包:
- ESLint 官方目前无中文翻译,靠社区插件如
eslint-plugin-chinese补充规则说明(但不改错误文案本身) - Volar 自 v1.4 起支持
locale: "zh-cn",需在settings.json单独配"volar.locale": "zh-cn" - Prettier 错误基本不可译——它极少抛出用户可见错误,格式问题直接静默处理
所以看到混着中英文的 Problems 面板很正常,这不是你配错了,是各服务独立运作的结果。
不想全局改?用 workspace 设置更安全
如果你只在某个公司项目里需要中文提示(比如带新人时降低理解门槛),千万别直接改用户级设置。一来可能影响其他项目行为,二来某些老版本 TS 对 zh-cn 支持不稳定,偶尔导致类型推导变慢。
推荐做法是:只在该项目的 .vscode/settings.json 里加这一行:
"typescript.locale": "zh-cn"
这样换项目打开,TS 提示自动切回英文,不用来回切换设置。顺便提醒:如果项目根目录有 tsconfig.json,且里面写了 "locale": "en",它会优先于 VS Code 设置——这时得删掉或改成 "zh-cn" 才行。
真正容易被忽略的点是:TS Server 的 locale 是运行时决定的,不是启动时读一次就固定。只要没手动重启,哪怕你改了 settings.json 并保存,它也不会立即响应。所以「改配置 + 重启 Server」必须是一套动作,少一步都不算完成。










