Führen Sie Sie Schritt für Schritt durch die Entwicklung eines vscode-Baidu-Übersetzungs-Plug-Ins

青灯夜游
Freigeben: 2021-12-13 18:52:16
nach vorne
3404 Leute haben es durchsucht

Wie führt man die vscodePlug-in-Entwicklung durch? Dieser Artikel hilft Ihnen bei der Entwicklung eines vscode-Baidu-Übersetzungs-Plug-Ins. Ich hoffe, er wird Ihnen hilfreich sein!

Führen Sie Sie Schritt für Schritt durch die Entwicklung eines vscode-Baidu-Übersetzungs-Plug-Ins

Jedes Mal, wenn ich einem Element einen Klassennamen gebe, muss ich von Zeit zu Zeit zu Baidu gehen, um es zu übersetzen, was die Entwicklungsgeschwindigkeit dieser einfachen Version des Baidu-Übersetzungs-Plug-Ins von vscode erheblich verlangsamt Schreiben Sie Chinesisch und wählen Sie es aus, um es mit einem Klick in Englisch umzuwandeln. Sie können auch zwischen Chinesisch und Englisch wählen. [Empfohlenes Lernen: „vscode-Einführungs-Tutorial“]

1. Projektbau

Sie können offizielle Gerüste direkt für den Projektbau verwenden.

Gerüst installieren

npm install -g yo generator-code
Nach dem Login kopieren

Projekterstellung

yo code
Nach dem Login kopieren

Führen Sie Sie Schritt für Schritt durch die Entwicklung eines vscode-Baidu-Übersetzungs-Plug-Ins

Die neu generierte Projektstruktur ist wie in der Abbildung dargestellt:

Führen Sie Sie Schritt für Schritt durch die Entwicklung eines vscode-Baidu-Übersetzungs-Plug-Ins

Projekt läuft

Drücken Sie einfach F5, um es auszuführen, und a Nach erfolgreichem Vorgang wird ein Popup-Fenster angezeigt. Ein neues vscode-Fenster. Der Fenstertitel lautet Extended Development Host. 扩展开发主机

二、准备工作

由于该插件采用的是百度翻译的api,所有首先需要使用百度账号登录百度翻译开放平台,注册成为开发者,获得APPID以及APPKEY。

接入方式

通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。

请求api如下:

/*
    q:请求翻译的字段,utf-8编码
    from:翻译源语言,可以设置为auto,自动检测
    to:翻译目标语言
    appid:APP ID
    salt:随机数
    sign:appid+q+salt+密钥的MD5值
*/
https://fanyi-api.baidu.com/api/trans/vip/translate?q=&from=&to=&appid=&salt=&sign=
Nach dem Login kopieren

具体文档可查看通用翻译API接入文档

三、项目开发

主要的开发文件就是清单文件package.json以及入口文件extension.js

package.json

配置如下:

{
	// 插件名,必须用全小写无空格的字母组成 
	"name": "vscode-translate-plugin",
	// 插件市场所显示的插件名称。
	"displayName": "vscode-translate-plugin",
	// 插件描述
	"description": "vscode 百度翻译插件",
	// 插件版本
	"version": "0.0.1",
	// 插件图标,最小128x128像素
	"icon": "img/icon.png",
	// 插件最低支持的vscode版本支持
	"engines": {
		"vscode": "^1.50.0"
	},
	// 插件应用市场分类,可选值: [Programming Languages, Snippets, Linters, Themes, Debuggers, Formatters, Keymaps, SCM Providers, Other, Extension Packs, Language Packs]
	"categories": [
		"Other"
	],
	// 激活事件数组
	"activationEvents": [
		"onCommand:vscode-translate-plugin.helloWorld"
	],
	// 插件入口
	"main": "./extension.js",
	// 描述插件的发布内容
	"contributes": {
		"commands": [
                        {
                            "command": "vscode-translate-plugin.helloWorld",
                            "title": "Hello World"
                        }
                  ]
         },
	"scripts": {
		"lint": "eslint .",
		"pretest": "npm run lint",
		"test": "node ./test/runTest.js"
	},
	"devDependencies": {
		"@types/vscode": "^1.50.0",
		"@types/glob": "^7.1.3",
		"@types/mocha": "^8.0.0",
		"@types/node": "^12.11.7",
		"eslint": "^7.9.0",
		"glob": "^7.1.6",
		"mocha": "^8.1.3",
		"typescript": "^4.0.2",
		"vscode-test": "^1.4.0"
	}
}
Nach dem Login kopieren

主要是配置activationEventscontributes这两个配置项

1、activationEvents

插件在VS Code中默认是没有激活的,那要怎么激活呢?可以通过activationEvents进行配置,目前有以下几种激活时机。

  • onLanguage:${language} 特定语言文件打开时激活
  • onCommand:${command} 调用命令时激活事件
  • onDebug 调试会话启动前激活
  • workspaceContains:${toplevelfilename} 文件夹打开后,且文件夹中至少包含一个符合glob模式的文件时触发。
  • onFileSystem:${scheme} 从协议(scheme)打开的文件或文件夹打开时触发。通常是file-协议,也可以用自定义的文件供应器函数替换掉,比如ftp、ssh
  • onView:${viewId} 指定的视图id展开时触发
  • onUri 插件的系统级URI打开时触发
  • *
  • 2. Vorbereitung

Da dieses Plug-in die API von Baidu Translate verwendet, müssen Sie sich zunächst mit einem Baidu-Konto Baidu Translation Open Platform

, registrieren Sie sich als Entwickler und erhalten Sie APPID und APPKEY.

Zugriffsmethode

Durch Aufrufen der universellen Übersetzungs-API, Übergeben des zu übersetzenden Inhalts und Angeben der zu übersetzenden Quellsprache (unterstützt die automatische Erkennung der Quellsprache) und des Zielsprachentyps können Sie die erhalten entsprechende Übersetzungsergebnisse. 🎜🎜Die Anforderungs-API lautet wie folgt: 🎜
"activationEvents": [
       // 将英文翻译成中文命令
      "onCommand:extension.translateToZh",
       // 将中文翻译成英文命令
      "onCommand:extension.translateToEn",
       // 将中文替换成相应中文的命令
      "onCommand:extension.replaceWithEn"
  ],
Nach dem Login kopieren
🎜Spezifische Dokumente finden Sie unter
Universal Translation API Access Document 🎜🎜🎜 3. Projektentwicklung 🎜🎜Die Hauptentwicklungsdateien sind die Manifestdatei package.json und die Eintragsdatei extension.js 🎜🎜🎜package.json🎜🎜🎜Die Konfiguration ist wie folgt:🎜
"contributes": {
    // 命令
    "commands": [
        {
            "command": "extension.translateToZh",
            "title": "translateToZh"
    	},
        {
            "command": "extension.translateToEn",
            "title": "translateToEn"
        },
        {
            "command": "extension.replaceWithEn",
            "title": "replaceWithEn"
        }
     ],
    // 快捷键绑定
    "keybindings":[
        {
           // 命令
           "command": "extension.translateToZh",
           // windows快捷键绑定
            "key": "ctrl+shift+t",
           // mac快捷键绑定
            "mac": "cmd+shift+t",
            "when": "editorTextFocus"
        },
        {
            "command": "extension.translateToEn",
            "key": "ctrl+shift+e",
            "mac": "cmd+shift+e",
            "when": "editorTextFocus"
        },
        {
            "command": "extension.replaceWithEn",
            "key": "ctrl+shift+r",
            "mac": "cmd+shift+r",
            "when": "editorTextFocus"
        }
    ],
    // 菜单
    "menus": {
        // 编辑器上下文菜单,即点击鼠标右键出来的菜单
        "editor/context": [
            {	
            	// 编辑器聚焦时
                "when": "editorFocus",
                // 点击菜单项触发的命令
                "command":"extension.translateToZh",
                // 分组排序,navigation组始终在最上方
                "group": "navigation"
            },
            {
                "when": "editorFocus",
                "command":"extension.translateToEn",
                "group": "navigation"
            },
            {
                "when": "editorFocus",
                "command":"extension.replaceWithEn",
                "group": "navigation"
            }
        ]
    },
    // 插件配置项
    "configuration": {
        "type": "object",
        "title": "translate configuration",
        "properties": {
        	// 百度翻译请求api
            "translate.url": {
                "type": "string",
                "default": "****",
                "description": "百度翻译API"
            },
            // 百度翻译appId
            "translate.appId": {
                "type": "string",
                "default": "****",
                "description": "百度翻译appId"
            },
            // 百度翻译appKey
            "translate.appKey": {
                "type": "string",
                "default": "****",
                "description": "百度翻译appKey"
            }
        }
      }
  },
Nach dem Login kopieren
Nach dem Login kopieren
🎜Konfigurieren Sie hauptsächlich die beiden Konfigurationselemente activationEvents und contributes🎜🎜 🎜1. Aktivierungsereignisse🎜🎜 🎜Das Plug-in ist in VS Code standardmäßig nicht aktiviert. Wie kann ich es also aktivieren? Es kann über activationEvents konfiguriert werden. Derzeit gibt es die folgenden Aktivierungsmöglichkeiten. 🎜
Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage