目次
要件
hello world
Translation API 私は Youdao Intelligent Cloud
驼峰转换
自定义配置
小结
ホームページ 開発ツール VSCode VSCode で翻訳プラグインを開発する方法を段階的に説明します。

VSCode で翻訳プラグインを開発する方法を段階的に説明します。

Nov 19, 2021 pm 07:12 PM
vscode

この記事では、vscode 翻訳プラグインを作成します。翻訳プラグイン インスタンスを実装することで、VS Code プラグイン開発の一般的な機能と方法に慣れることができます。困っている友達のお役に立てれば幸いです。

VSCode で翻訳プラグインを開発する方法を段階的に説明します。

#この記事では、変換プラグイン インスタンスを実装することにより、VS Code プラグイン開発の一般的な機能と方法について説明します。もちろん、VS Code 公式 API および公式 GitHub Examples にアクセスして、表示して学習することもできます。 [推奨学習: "vscode 入門チュートリアル "]

要件

プログラマにとって、特に英語が苦手な私のような人にとって、翻訳は非常に一般的なニーズです。 . プログラマー。

  • # は、中国語の翻訳を変数名

  • で区切られた単語の翻訳に直接置き換えることができます。これは、ソース コード内のコメントの翻訳に使用されます

開発

プロジェクトの初期化

スキャフォールディングを実行してプロジェクトを初期化する

yo code
ログイン後にコピー

VSCode で翻訳プラグインを開発する方法を段階的に説明します。

hello world

ディレクトリを作成した後、エントリ ファイルに移動して、エントリ ファイル

./src/extension.ts を見つけます。 activemethod

export function activate(context: vscode.ExtensionContext) {
  console.log('Congratulations, your extension "vscode-fanyi" is now active!');
  let disposable = vscode.commands.registerCommand(
    "vscode-fanyi.helloWorld",
    () => {
      vscode.window.showInformationMessage("Hello World from vscode-fanyi!");
    }
  );
  context.subscriptions.push(disposable);
}
ログイン後にコピー

active メソッドはプラグインのエントリ メソッドです。

vscode-fanyi.helloWorld メソッドが登録され、アクティベーションが設定されます。 package.json

イベント、および実行イベントのタイトルは

Hello World Press F5

to debug (新しい vscode 拡張デバッグ)自動的にウィンドウが開きますので、コマンドを実行すると以下のような効果が得られます。

VSCode で翻訳プラグインを開発する方法を段階的に説明します。Translation API

Translation API 私は Youdao Intelligent Cloud

を使用することにしました、もちろん誰でも選択できます他の翻訳 API を選択した理由は、登録時に 100 元の無料お試し金がもらえるためで、個人使用には十分です。

最初にアプリケーションを作成し、サービスを自然言語翻訳サービスとして選択し、アクセス方法は APIVSCode で翻訳プラグインを開発する方法を段階的に説明します。

作成が完了すると、アプリケーションIDと秘密鍵が取得できます。 VSCode で翻訳プラグインを開発する方法を段階的に説明します。

公式 JS デモをベースに Nodejs 版に変更しました

"activationEvents": [
    "onCommand:vscode-fanyi.helloWorld"
],
"contributes": {
    "commands": [
        {
            "command": "vscode-fanyi.helloWorld",
            "title": "Hello World"
        }
    ]
}
ログイン後にコピー

まず、この 3 つのパッケージをインストールします。このうち

crypto-js

は署名を生成します

axios Nodejs リクエスト ライブラリ。 インストール

import CryptoJS from "crypto-js";
import axios from "axios";
import querystring from "querystring";

function truncate(q: string): string {
  var len = q.length;
  if (len <= 20) {
    return q;
  }
  return q.substring(0, 10) + len + q.substring(len - 10, len);
}

async function youdao(query: string) {
  var appKey = "3dde97353116e9bf";
  var key = "xxxxxxxxxx"; //注意:暴露appSecret,有被盗用造成损失的风险
  var salt = new Date().getTime();
  var curtime = Math.round(new Date().getTime() / 1000);
  // 多个query可以用\n连接  如 query=&#39;apple\norange\nbanana\npear&#39;
  var from = "AUTO";
  var to = "AUTO";
  var str1 = appKey + truncate(query) + salt + curtime + key;

  var sign = CryptoJS.SHA256(str1).toString(CryptoJS.enc.Hex);

  const res = await axios.post(
    "http://openapi.youdao.com/api",
    querystring.stringify({
      q: query,
      appKey,
      salt,
      from,
      to,
      sign,
      signType: "v3",
      curtime,
    })
  );
  return res.data;
}
ログイン後にコピー
クエリ結果

正しい場合、翻訳に存在する必要があります

yarn add crypto-js axios querystring
ログイン後にコピー

その後登録を変更します イベントは非同期で返されます

{
  "errorCode":"0",
  "query":"good", //查询正确时,一定存在
  "translation": [ //查询正确时一定存在
      "好"
  ],
  "basic":{ // 有道词典-基本词典,查词时才有
      "phonetic":"gʊd",
      "uk-phonetic":"gʊd", //英式音标
      "us-phonetic":"ɡʊd", //美式音标
      "uk-speech": "XXXX",//英式发音
      "us-speech": "XXXX",//美式发音
      "explains":[
          "好处",
          "好的",
          "好",
      ]
  },
}
ログイン後にコピー

デバッグ結果を見てみましょう

VSCode で翻訳プラグインを開発する方法を段階的に説明します。単語の置換

最初に選択したテキストを取得し、次に翻訳し、最後に翻訳が完了した後に元のテキストを置き換えます。
let disposable = vscode.commands.registerCommand(
    "vscode-fanyi.helloWorld",
    async () => {
      const res = await youdao(
        &#39;Congratulations, your extension "vscode-fanyi" is now active!&#39;
      );
      vscode.window.showInformationMessage(res.translation[0]);
    }
  );
  context.subscriptions.push(disposable);
ログイン後にコピー

package.json の構成に従います

export function activate(context: vscode.ExtensionContext) {
  context.subscriptions.push(
    vscode.commands.registerCommand("vscode-fanyi.replace", async () => {
      let editor = vscode.window.activeTextEditor;
      if (!editor) {
        return; // No open text editor
      }
      let selection = editor.selection;
      let text = editor.document.getText(selection);//选择文本

      //有选中翻译选中的词
      if (text.length) {
        const res = await youdao(text);
        //vscode.window.showInformationMessage(res.translation[0]);
        editor.edit((builder) => {
          builder.replace(selection, res.translation[0]);//替换选中文本
        });
      }
    })
  );
}
ログイン後にコピー

右クリック メニューを追加し、キーボード ショートカットをバインドします。

下の図は、vscode 公式メニューのグループ化です。グループ化します。修正されたコードのセクションで

#効果を見てみましょうVSCode で翻訳プラグインを開発する方法を段階的に説明します。

VSCode で翻訳プラグインを開発する方法を段階的に説明します。コードワードの翻訳

VS コードは、provideHover を提供します。マウスがその上に移動すると、現在の単語に基づいていくつかの特定の操作を実行できます。ただし、この翻訳シナリオでは、単一の単語では十分ではないため、選択した単語に基づいて翻訳されます。コードを見てみましょう。
"activationEvents": [
    "onCommand:vscode-fanyi.replace"
 ],
 "contributes": {
    "commands": [
      {
        "command": "vscode-fanyi.replace",
        "title": "翻译"
      }
    ],
    "keybindings": [
      {
        "command": "vscode-fanyi.replace",
        "key": "ctrl+t",
        "mac": "cmd+t",
        "when": "editorTextFocus"
      }
    ],
    "menus": {
      "editor/context": [
        {
          "when": "editorTextFocus",
          "command": "vscode-fanyi.replace",
          "group": "vscode-fanyi"
        }
      ]
    }
  },
ログイン後にコピー

MarkdownString が html に対応していれば、翻訳結果の音声も入れられるのではないかと思っていたのですが、非対応でした。同じような機能をやっている友人はいないでしょうか。コメントエリア。

最も重要な手順は、

package.json

activationEvents"=onStartupFinished に変更することです。これは、 にあります。ドキュメントは . で見つかりました

此激活事件将被发出,并且相关扩展将在VS代码启动后的某个时间被激活。这类似于激活事件,但不会降低VS代码启动的速度。当前,此事件在所有激活的扩展完成激活后发出。

"activationEvents": [
    "onStartupFinished"
  ],
ログイン後にコピー

效果

VSCode で翻訳プラグインを開発する方法を段階的に説明します。

驼峰转换

如果是变量是驼峰命名,可能无法翻译,需要转换下成空格

function changeWord(text: string): string {
  if (!text.includes(" ") && text.match(/[A-Z]/)) {
      const str = text.replace(/([A-Z])/g, " $1");
      let value = str.substr(0, 1).toUpperCase() + str.substr(1);
      return value;
  }
  return text;
}
ログイン後にコピー

自定义配置

将有道 appKey 和 appSecret 改成用户扩展配置, 在下 package.json 中的配置 contributes 添加 configuration配置

"configuration": {
  	"title": "Vscode  fanyi",
  	"type": "object",
  	"properties": {
  	  "vscodeFanyi.youdaoApiname": {
  		"type": "string",
  		"description": "youdao appKey"
  	  },
  	  "vscodeFanyi.youdaoApikey": {
  		"type": "string",
  		"description": "youdao appSecret"
  	  },
  	}
  }
ログイン後にコピー

就可以在扩展下方填入配置了

VSCode で翻訳プラグインを開発する方法を段階的に説明します。

然后在代码中 获得配置,并传入到原先的翻译函数中就可以了

const config = vscode.workspace.getConfiguration("vscodeFanyi");
const appKey = config.get("youdaoAppkey") as string;
const appSecret = config.get("youdaoAppSecret") as string;
ログイン後にコピー

小结

本插件与 comment-translate 对比

1、API 不同

  • 本插件目前只支持有道,用完免费相当于是付费

  • comment-translate 支持百度谷歌和必应,是免费API

2、实现方式不同

  • 本插件是利用 provideHover 划词翻译,实现起来比较简单

  • comment-translate 是hover 翻译,使用 Language Server Extension Guide 实现起来比较复杂

最后附上链接github

vscode 使用范围在扩大,从extensions market 市场上也可以发现,各种功能的插件基本都很齐全。本篇只介绍了其功能的冰山一角,同时 vscode extensions 开发门槛不高,欢迎大家尝试,或者将有意思的 extensions 推荐在评论区。

希望这篇文章对大家有所帮助,也可以参考我往期的文章或者在评论区交流你的想法和心得,欢迎一起探索前端。

更多关于VSCode的相关知识,请访问:vscode教程!!

以上がVSCode で翻訳プラグインを開発する方法を段階的に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VSCODEに必要なコンピューター構成 VSCODEに必要なコンピューター構成 Apr 15, 2025 pm 09:48 PM

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

vscodeのヘッダーファイルを定義する方法 vscodeのヘッダーファイルを定義する方法 Apr 15, 2025 pm 09:09 PM

ビジュアルスタジオコードを使用してヘッダーファイルを定義する方法は?ヘッダーファイルを作成し、.hまたは.hpp接尾辞名(クラス、関数、変数など)を使用してヘッダーファイルにシンボルを宣言し、#includeディレクティブを使用してプログラムをコンパイルして、ソースファイルにヘッダーファイルを含めます。ヘッダーファイルが含まれ、宣言された記号が利用可能になります。

vscode端子使用チュートリアル vscode端子使用チュートリアル Apr 15, 2025 pm 10:09 PM

VSCODEビルトインターミナルは、エディター内でコマンドとスクリプトを実行して開発プロセスを簡素化できるようにする開発ツールです。 VSCODE端子の使用方法:ショートカットキー(CTRL/CMD)で端子を開きます。コマンドを入力するか、スクリプトを実行します。 Hotkeys(Ctrl Lなどの端子をクリアするなど)を使用します。作業ディレクトリ(CDコマンドなど)を変更します。高度な機能には、デバッグモード、自動コードスニペット完了、およびインタラクティブコマンド履歴が含まれます。

vscodeでコードを書く場所 vscodeでコードを書く場所 Apr 15, 2025 pm 09:54 PM

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

vscode中国の注釈が疑問符になるという問題を解決する方法 vscode中国の注釈が疑問符になるという問題を解決する方法 Apr 15, 2025 pm 11:36 PM

Visual Studioコードで中国のコメントが疑問符になるという問題を解決する方法:ファイルのエンコーディングを確認し、「BOMなしでUTF-8」であることを確認します。フォントを「歌のスタイル」や「Microsoft Yahei」などの漢字をサポートするフォントに変更します。フォントを再インストールします。 Unicodeサポートを有効にします。 VSCODEをアップグレードし、コンピューターを再起動し、ソースファイルを再作成します。

VSCODE端子の共通コマンド VSCODE端子の共通コマンド Apr 15, 2025 pm 10:06 PM

VSコード端子の一般的なコマンドには、端子画面のクリア(クリア)、現在のディレクトリファイル(LS)のリスト、現在のワーキングディレクトリ(CD)、現在のワーキングディレクトリパス(PWD)の印刷、新しいディレクトリ(MKDIR)の作成、空のディレクトリ(RMDIR)の削除、新しいファイルの作成(RM)の削除(RM)、COPのコピー(RM)、 (MV)ファイルコンテンツの表示(CAT)ファイルコンテンツを表示してスクロール(より少ない)ファイルコンテンツを表示するだけです(その他)ファイルの最初の数行(ヘッド)を表示する

VSCODE端子コマンドは使用できません VSCODE端子コマンドは使用できません Apr 15, 2025 pm 10:03 PM

VSコード端末コマンドの原因とソリューションは使用できません:必要なツールはインストールされていません(Windows:WSL; MACOS:XCODE LINEツール)パス構成が間違っています(パス環境変数に実行可能ファイルを追加)許可問題(管理者としてのコードの実行)ファイアウォールまたはプロキシ制限制限(チェック設定、無制限) (再インストールまたは更新)端子構成は互換性がありません(異なる端子タイプまたはコマンドを試してください)特定の環境変数が欠落しています(必要な環境変数を設定します)

VSCODE前の次のショートカットキー VSCODE前の次のショートカットキー Apr 15, 2025 pm 10:51 PM

VSコードワンステップ/次のステップショートカットキー使用法:ワンステップ(後方):Windows/Linux:Ctrl←; macOS:CMD←次のステップ(フォワード):Windows/Linux:Ctrl→; macOS:CMD→

See all articles