You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过VS Code API直接获取UI显示语言?

获取VS Code UI语言并传递给WebView的实用方案
  • 获取VS Code当前UI语言
    直接使用VS Code官方API vscode.env.language,它会返回当前编辑器界面使用的语言代码(比如zh-CN、en-US),无需额外配置。

  • 传递语言信息到WebView
    有两种可靠方式实现:

    1. HTML模板注入全局变量
      在生成WebView的HTML时,把语言值嵌入为全局变量,WebView加载后可直接读取:

      const currentLang = vscode.env.language;
      const webViewContent = `
      <!DOCTYPE html>
      <html>
      <head>
        <script>
          // 注入语言变量
          window.extensionLang = "${currentLang}";
        </script>
      </head>
      <body>
        <!-- WebView内容 -->
      </body>
      </html>
      `;
      panel.webview.html = webViewContent;
      

      后续WebView中可通过window.extensionLang获取语言值,加载相对路径下的本地化文件(如./locales/${window.extensionLang}.json)。

    2. 通过postMessage主动发送
      扩展侧主动向WebView发送语言信息:

      const currentLang = vscode.env.language;
      panel.webview.postMessage({ 
        type: 'locale-update', 
        language: currentLang 
      });
      

      WebView侧监听消息并处理:

      window.addEventListener('message', (event) => {
        const { type, language } = event.data;
        if (type === 'locale-update') {
          // 加载对应本地化文件
          fetch(`./locales/${language}.json`)
            .then(res => res.json())
            .then(localeData => {
              // 应用本地化逻辑
            });
        }
      });
      
  • 语言 fallback 处理
    为避免某语言无对应本地化文件的情况,可在WebView中设置默认 fallback(比如en-US),当目标语言文件加载失败时自动切换到默认文件。

内容的提问来源于stack exchange,提问作者Fosfor15

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 14:46:00