Maison > outils de développement > VSCode > le corps du texte

Vous guidez étape par étape pour développer un plug-in de traduction vscode Baidu

青灯夜游
Libérer: 2021-12-13 18:52:16
avant
3403 Les gens l'ont consulté

Comment réaliser le développement de plug-in vscode ? Cet article vous aidera à développer un plug-in de traduction vscode Baidu. J'espère qu'il vous sera utile !

Vous guidez étape par étape pour développer un plug-in de traduction vscode Baidu

Chaque fois que je donne un nom de classe à un élément, je dois toujours aller sur Baidu pour le traduire de temps en temps, ce qui ralentit considérablement la vitesse de développement. Cette version simple du plug-in de traduction vscode Baidu peut directement. écrivez le chinois et sélectionnez-le pour le convertir facilement en anglais, vous pouvez également choisir la traduction en chinois et en anglais. [Apprentissage recommandé : "Tutoriel d'introduction au vscode"]

1. Construction du projet

Vous pouvez directement utiliser des échafaudages officiels pour la construction du projet.

Installer l'échafaudage

npm install -g yo generator-code
Copier après la connexion

Génération de projet

yo code
Copier après la connexion

Vous guidez étape par étape pour développer un plug-in de traduction vscode Baidu

La structure du projet nouvellement générée est comme indiqué dans la figure :

Vous guidez étape par étape pour développer un plug-in de traduction vscode Baidu

Projet en cours

Appuyez simplement F5 pour exécuter, et un une fenêtre contextuelle apparaîtra après une opération réussie. Une nouvelle fenêtre vscode, le titre de la fenêtre indiquera 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=
Copier après la connexion

具体文档可查看通用翻译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"
	}
}
Copier après la connexion

主要是配置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. Préparation

Étant donné que ce plug-in utilise l'API de Baidu Translate, vous devez d'abord vous connecter avec un compte Baidu Baidu Translation Open Platform

, inscrivez-vous en tant que développeur et obtenez APPID et APPKEY.

Méthode d'accès

En appelant l'API de traduction universelle, en transmettant le contenu à traduire et en spécifiant la langue source à traduire (prenant en charge la détection automatique de la langue source) et le type de langue cible, vous pouvez obtenir le résultats de traduction correspondants. 🎜🎜L'API de requête est la suivante : 🎜
"activationEvents": [
       // 将英文翻译成中文命令
      "onCommand:extension.translateToZh",
       // 将中文翻译成英文命令
      "onCommand:extension.translateToEn",
       // 将中文替换成相应中文的命令
      "onCommand:extension.replaceWithEn"
  ],
Copier après la connexion
🎜La documentation spécifique peut être consultée
Document d'accès à l'API de traduction universelle 🎜🎜🎜 3. Développement du projet 🎜🎜Les principaux fichiers de développement sont le fichier manifeste package.json et le fichier d'entrée extension.js 🎜🎜🎜package.json🎜🎜🎜La configuration est la suivante : 🎜
"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"
            }
        }
      }
  },
Copier après la connexion
Copier après la connexion
🎜 Configure principalement les deux éléments de configuration activationEvents et contributes🎜🎜 🎜1. activationEvents🎜🎜 🎜Le plug-in n'est pas activé par défaut dans VS Code, alors comment l'activer ? Il peut être configuré via activationEvents. Actuellement, il existe les opportunités d'activation suivantes. 🎜
Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal