vs code 插件中文说明书需手动编写 readme.md、package.json 中的 displayname 和 description 字段,并配合 package.nls.zh-cn.json 实现运行时本地化;displayname 与 description 可直写中文但仅用于市场页显示,命令/菜单等运行时文案必须通过 .nls.json 文件定义键值,且需与代码中 vscode.l10n.t() 调用完全一致。

插件开发时中文说明书怎么生成
VS Code 官方不提供插件说明书的自动生成工具,所谓“中文说明书”实际是开发者手动编写的 README.md、package.json 中的 description 和 displayName 字段,以及可选的本地化语言包(package.nls.zh-cn.json)三者共同构成。没有一键生成,但有明确路径可走。
package.json 里的中文字段怎么填才生效
displayName 和 description 支持中文直写,但仅影响扩展市场页和 VS Code 扩展面板显示;它们不会被翻译,也不参与运行时本地化。关键点:
-
displayName:显示在扩展列表顶部,建议控制在 20 字以内,避免换行错位 -
description:显示在扩展面板详情区,建议 120 字内,过长会被截断(VS Code UI 限制) - 不要在
package.json中写locale字段——那是用户端设置,不是插件配置项 - 如果用了国际化(i18n),这些字段应改为
%displayName%形式,并在package.nls.json中定义对应键值
如何让命令、菜单、提示文字显示中文
靠 package.nls.zh-cn.json 文件实现运行时本地化,VS Code 启动时根据用户 locale 设置自动加载。常见坑:
- 文件必须放在
package.nls.json(默认)或package.nls.zh-cn.json(简体中文专用),不能放错目录 - 键名必须与
package.json或代码中调用的vscode.l10n.t()参数完全一致,大小写敏感 - 命令标题(
contributes.commands.title)、菜单项(contributes.menus)、设置项描述(contributes.configuration.properties.*.description)都需在此文件中定义 - 未定义的键会 fallback 到英文原文,不会报错,但用户看到的就是英文——这是最常被忽略的失效原因
vscode.l10n.t() 和旧版 localize() 怎么选
VS Code 1.83+ 推荐用 vscode.l10n.t(),它支持模块级作用域和更精准的上下文提取。旧版 vscode.env.language + 手动查表方式已不推荐:
-
vscode.l10n.t("Hello")→ 自动匹配当前 locale,无需判断语言环境 - 若仍用
localize()(来自vscode-nls),需确保构建时执行nls-build提取键值,否则.nls.json文件为空 - 调试时发现中文没出来?先检查终端输出是否有
Missing translation for key: xxx,这是最直接的线索 - 注意:Webview 内部的字符串不走
l10n.t(),需显式传入本地化文本或通过vscode.postMessage注入
真正难的不是写中文,而是让所有散落在 package.json、代码字符串、Webview 模板、甚至贡献点(contributes)里的文案全部对齐到同一套键值体系。漏掉任意一处,用户就会在某个角落看到突兀的英文。











