VSCode悬停提示和Problems面板仍英文,根本原因是TypeScript Server未同步语言设置;需单独配置"typescript.locale": "zh-cn"并执行Developer: Restart TS Server,而非仅设全局locale或重启窗口。

VSCode 设置中文后,悬停提示、Problems 面板仍显示英文报错,不是插件没装好,而是 TypeScript Server 没同步语言设置——typescript.locale 必须单独配,且必须重启 TS Server,不是重启窗口。
为什么悬停和 Problems 还是英文?
TypeScript 的错误文本(如「无法找到名称“consol”」)由 TypeScript Server 独立生成,它不读 VS Code 的 locale 设置,只认 typescript.locale。即使界面全中文,只要这个配置没设或设错,TS 报错就永远是英文。
-
typescript.locale默认为空,此时 TS Server 退回到系统 locale,Windows 用户大概率看到的是英文 - 工作区
.vscode/settings.json中的配置优先级高于用户设置,若里面写了"typescript.locale": "en",会直接覆盖全局 - 改完设置后只按
Ctrl+Shift+P→Developer: Reload Window不生效;必须执行Developer: Restart TS Server
怎么配 typescript.locale 并验证?
打开当前项目根目录下的 .vscode/settings.json(没有就新建),添加:
{
"typescript.locale": "zh-cn"
}
保存后,按 Ctrl+Shift+P 输入并执行:Developer: Restart TS Server。不要点「重启窗口」,那只是重载 UI,TS 进程还在跑旧配置。
- 验证方式:新建一个
test.ts,写consol.log(1),鼠标悬停在consol上,看提示是否为「无法找到名称“consol”」 - 如果 Problems 面板里仍有英文,检查有没有其他插件(如 ESLint)也在输出诊断——它们的语言独立控制,
typescript.locale对它们无效 - 若用的是 Remote-SSH/WSL,该配置需放在远程机器的
.vscode/settings.json中,本地配了没用
Problems 面板混着中英文提示正常吗?
完全正常。Problems 面板只是聚合器,它把所有语言服务的诊断堆在一起显示,每种服务决定自己的语言:
- TypeScript:靠
typescript.locale - ESLint:官方插件无中文翻译,无论怎么设都是英文(2026 年仍无内置支持)
- Volar / Pylance / Rust Analyzer:各自实现多语言,与 VS Code 的
locale无关 - 终端命令(如
tsc --noEmit、gcc):输出语言由系统 locale 或工具自身决定,VS Code 只原样转发
想让 ESLint 提示变中文?目前没有官方方案,别浪费时间搜「ESLint 中文插件」——这不是配置问题,是功能缺失。
容易被忽略的关键点
很多人卡在「明明配了 typescript.locale,也重启了窗口,但还是英文」,真正漏掉的是:TS Server 进程不会随窗口重启自动刷新,必须手动触发 Developer: Restart TS Server;另外,Remote 开发场景下,这个配置必须落在远程机器上,且路径得是远程的 .vscode/settings.json,本地改毫无意义。


















