> 개발 도구 > VSCode > vscode Baidu 번역 플러그인 개발을 단계별로 안내해 드립니다.

vscode Baidu 번역 플러그인 개발을 단계별로 안내해 드립니다.

青灯夜游
풀어 주다: 2021-12-13 18:52:16
앞으로
3421명이 탐색했습니다.

vscode플러그인 개발을 어떻게 수행하나요? 이 기사는 vscode Baidu 번역 플러그인을 개발하는 데 도움이 되기를 바랍니다.

vscode Baidu 번역 플러그인 개발을 단계별로 안내해 드립니다.

요소에 className을 지정할 때마다 항상 Baidu에 가서 번역해야 하므로 개발 속도가 크게 느려집니다. 이 간단한 버전의 vscode Baidu 번역 플러그인은 직접 사용할 수 있습니다. 중국어를 쓰고 선택하면 한 번의 클릭으로 쉽게 영어로 변환할 수 있으며, 중국어와 영어 번역도 선택할 수 있습니다. [추천 학습: "vscode 입문 튜토리얼"]

1. 프로젝트 구축

공식 스캐폴딩을 사용해 프로젝트 구축을 직접 할 수 있습니다.

스캐폴딩 설치

npm install -g yo generator-code
로그인 후 복사

프로젝트 생성

yo code
로그인 후 복사

vscode Baidu 번역 플러그인 개발을 단계별로 안내해 드립니다.

새로 생성된 프로젝트 구조는 그림과 같습니다.

vscode Baidu 번역 플러그인 개발을 단계별로 안내해 드립니다.

프로젝트 실행

F5를 누르세요. 달리는 것, 그리고 작업이 성공적으로 완료되면 팝업이 나타납니다. 새로운 vscode 창, 창 제목에 확장 개발 호스트가 표시됩니다. 扩展开发主机

二、准备工作

由于该插件采用的是百度翻译的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=
로그인 후 복사

具体文档可查看通用翻译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"
	}
}
로그인 후 복사

主要是配置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. 준비

이 플러그인은 Baidu Translate의 API를 사용하므로 먼저 Baidu 계정 바이두 번역 오픈 플랫폼

, 개발자로 등록하고 APPID와 APPKEY를 받으세요.

액세스 방법

범용 번역 API를 호출하고, 번역할 내용을 전달하고, 번역할 원어(원어 자동 감지 지원)와 목표 언어 유형을 지정하면 해당 번역 결과. 🎜🎜요청 API는 다음과 같습니다. 🎜
"activationEvents": [
       // 将英文翻译成中文命令
      "onCommand:extension.translateToZh",
       // 将中文翻译成英文命令
      "onCommand:extension.translateToEn",
       // 将中文替换成相应中文的命令
      "onCommand:extension.replaceWithEn"
  ],
로그인 후 복사
🎜구체적인 문서는
Universal Translation API Access Document 🎜🎜🎜 3. 프로젝트 개발 🎜🎜 주요 개발 파일은 매니페스트 파일 package.json과 항목 파일 extension.js입니다. 🎜🎜🎜package.json🎜🎜🎜구성은 다음과 같습니다. 🎜
"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"
            }
        }
      }
  },
로그인 후 복사
로그인 후 복사
🎜 주로 activationEventscontributes 두 가지 구성 항목을 구성합니다🎜🎜 🎜1. activateEvents🎜🎜 🎜VS Code에서는 플러그인이 기본적으로 활성화되지 않는데 어떻게 활성화하나요? activationEvents를 통해 구성할 수 있습니다. 현재 다음과 같은 활성화 기회가 있습니다. 🎜
관련 라벨:
원천:juejin.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿