i18n-ally是真正支持多语言开发的专用插件,需手动配置localespaths、keystyle等关键项,并确保文件languageid为jsonc才能启用预览与提取功能。

VS Code 插件市场里所谓“多语言插件”,绝大多数只是语言包(Language Pack),不是真正支持多语言开发的工具;真要适配多语言开发流程,得靠 i18n-ally 这类专用扩展,而不是装一堆“中文汉化插件”。
为什么搜“多语言插件”总装错?
在插件市场搜“多语言”“i18n”“国际化”,前几页常出现名称带“Chinese”“Translation”但实际是界面汉化包的扩展。它们只改菜单和设置页文字,对项目里的 en.json、zh-cn.json 文件毫无感知能力。
- 典型错误现象:装了“VSCode i18n Helper”,结果打开
locales/目录,文件名悬停不显示翻译,右键没“提取新键”选项 - 根本原因:这类插件没声明
contributes.views或contributes.commands对.json/.yml文件的支持,也不监听onLanguage:json - 真正起作用的是
i18n-ally(ID:lokalise.i18n-ally),它会自动识别src/locales、public/locales等常见路径下的多语言文件结构
i18n-ally 的关键配置项怎么填?
i18n-ally 默认能猜出多数项目结构,但遇到非标路径(比如 assets/i18n)或自定义键格式(如 user.profile.name),就得手动指定。
- 在工作区
.vscode/settings.json中添加:"i18n-ally.localesPaths": ["assets/i18n"],<br>"i18n-ally.defaultLocale": "en",<br>"i18n-ally.keystyle": "nested"
-
keystyle: "nested"表示支持点号分隔嵌套键(如form.submit.label);若用下划线(form_submit_label),得设为"flat" - 不要在用户 settings.json 里全局配
localesPaths,否则打开单个 JS 文件也会触发扫描,拖慢启动速度
插件识别不了你的翻译文件?先查 languageId
VS Code 不是靠后缀判断文件类型,而是靠 languageId。即使文件叫 zh.json,如果右下角显示 “JSON” 而不是 “JSON with Comments” 或 “i18n JSON”,i18n-ally 就不会加载它。
- 右键点击该文件 → “Change Language Mode” → 选 “JSON with Comments”(推荐)或手动输入
jsonc - 或者在
settings.json中强制绑定:"files.associations": { "*.json": "jsonc" } - 验证是否生效:打开文件,按
Ctrl+Shift+P输入 “Developer: Inspect Editor Tokens and Scopes”,看顶部 language 显示是否为jsonc
最常被忽略的一点:i18n-ally 的翻译预览和键提取功能,只在编辑器聚焦到目标语言文件(如 zh-cn.json)时才激活——切到其他 tab 就失效,不是 bug,是设计如此。











