VS Code插件开发中文支持需三步:插件UI用vscode.l10n API本地化、调试错误提示依赖编辑器locale设置、市场页面通过package.nls.zh-cn.json多语言配置;vscode-language-pack-zh-hans仅影响编辑器界面,不控制插件内字符串。

VS Code 插件开发本身不依赖语言包,但中文支持涉及三个层面:插件 UI 文本本地化、开发者调试时的错误提示可读性、以及插件市场页面展示。关键结论是:vscode-language-pack-zh-hans 只影响编辑器界面,不影响插件运行时的字符串显示——插件自己的中文文案必须由开发者显式提供。
插件中显示中文文案必须用 vscode.l10n API
VS Code 1.82+ 版本起,官方推荐使用 vscode.l10n 替代硬编码字符串。它支持按 locale 动态加载翻译资源,且能与 VS Code 主体语言自动对齐。
- 需在
package.json中声明"l10n": "./nls",并在项目根目录创建nls/zh-cn.json文件 - 调用方式统一为
vscode.l10n.t("hello world"),而非直接写"你好世界" - 若未提供对应 locale 文件(如用户设为
zh-cn但插件没提供zh-cn.json),会 fallback 到en-us.json或原始字符串 - 注意:旧版
vscode-nls已废弃,vscode.l10n是唯一受支持的本地化方案
调试时控制台输出仍是英文?检查 locale 配置是否生效
插件开发过程中,console.log 或 vscode.window.showErrorMessage 显示的错误信息来自 VS Code 内核,其语言取决于编辑器当前 locale 设置,不是插件控制的。
- 确认已安装
Chinese (Simplified) Language Pack for Visual Studio Code插件 - 执行
Configure Display Language命令并选zh-cn,然后重启窗口(仅重载不够) - 验证
settings.json中是否存在"locale": "zh-cn",且无拼写错误(比如写成zh_CN或zh-ch) - Linux/macOS 下若仍显示英文,可能因系统 locale 环境变量冲突,可临时在终端用
LANG=zh_CN.UTF-8 code --disable-gpu启动测试
package.json 的 displayName 和 description 怎么支持多语言?
插件市场页面上的名称和描述支持多语言,但不是靠代码逻辑实现,而是靠配置文件结构。
- 在
package.json同级目录新建package.nls.json(用于英文)和package.nls.zh-cn.json - 两个文件都应包含完整键值对,例如:
"displayName": "我的插件"和"description": "一个好用的工具" - 发布前必须运行
vsce package检查,否则中文字段在 marketplace 上会显示为空或默认英文 - 注意:VS Code 1.85+ 对
nls文件校验更严格,键名必须完全一致,大小写敏感
最容易被忽略的是:插件 UI 中的中文文案不会随编辑器语言自动切换——它只响应插件自己声明的 nls 资源;而编辑器报错、命令面板提示等底层文本才真正依赖 locale 设置。两者混用时,务必分清责任边界。


















