VSCode无统一语言文件路径机制,插件自行决定加载方式;主流插件多将i18n资源存于根目录下nls/locale/i18n子目录;手动修改需备份、UTF-8无BOM编码、重启VSCode生效;插件开发路径须全英文。

VSCode 本身不读取插件的语言文件路径,是插件自己决定怎么加载
VSCode 没有统一的「国际化语言文件路径配置」机制。所谓“语言包”或“i18n 资源”,完全由插件作者在 package.json 中通过 contributes.grammars、contributes.configuration 或自定义逻辑(比如调用 vscode.env.language 后拼接路径)来加载。你改不了 VSCode 的行为,只能看插件怎么写。
常见插件语言文件实际存放位置
多数主流插件(如 ms-python.python、esbenp.prettier-vscode)把翻译资源打包进插件目录,路径固定为:
-
./nls/zh-cn.js或./nls/messages.zh-cn.json ./locale/zh-CN/translations.json./i18n/zh-CN.json
这些文件都在插件根目录下,和 package.json 同级。你无法通过 VSCode 设置去“指定”它们的位置——除非插件自己暴露了配置项(极少数),否则改路径等于让插件失效。
想手动替换或调试中文翻译?直接改插件目录里的 nls 文件
步骤很简单,但容易踩坑:
- 先用命令面板运行
Developer: Open Extensions Folder,打开真实插件根目录 - 找到目标插件子文件夹,例如
ms-python.python-2024.12.1 - 进去找
nls或locale文件夹;若没有,说明该插件没做多语言,或把字符串硬编码在src里 - 修改前备份原文件;改完需重启 VSCode(不是重载窗口),否则新翻译不生效
- 注意文件编码必须是 UTF-8 无 BOM,Windows 记事本保存时容易加 BOM,导致解析失败报错
Unexpected token
插件开发时语言文件路径不能含中文
如果你在写插件并用 vsce package 打包,路径里有中文会直接失败:
- 错误典型是
ENOENT: no such file or directory, open 'D:\项目\my-ext\package.json' - 根本原因是
vsce底层依赖的zip-stream在 Windows 上不支持非 ASCII 路径 - 解决方式只有一条:整个插件工程路径必须全英文,比如
D:\dev\my-extension,连父文件夹都不能是我的项目 -
package.json里的main、contributes字段也不能引用中文路径的资源文件,否则用户安装后会触发Extension host terminated unexpectedly
真正难的不是找路径,而是确认插件是否真的支持 i18n —— 很多插件压根没做,或者只支持英文+英文注释里写个“TODO: add zh-cn”。


















