-
Notifications
You must be signed in to change notification settings - Fork 83
翻译服务
正豪 edited this page Sep 19, 2024
·
8 revisions
为了保证插件的服务可用性,插件支持了多种翻译服务,并支持了自定义插件添加翻译服务。用户可以通过插件配置选择需要使用的翻译服务。
翻译服务 | 免费服务 | 超出费用 | 使用教程 |
---|---|---|---|
Google Translate | 无限免费 | - | 内置服务, 部分地区有网络问题,局域网使用过多容易IP限流 |
Bing Translate | 无限免费 | - | 内置服务 |
腾讯交互翻译 | 无限免费 | - | 推荐使用,效果和响应都不错。TranSmart插件 |
阿里翻译 | 每月100万字符 | 50元/100万字符 | 已内置。点此申请秘钥 |
DeepL | 每月50万字符 | 每月4.99欧元基础费用 + 20欧元/100万字符 | DeepL插件、点此申请秘钥 |
腾讯云 | 每月500万字符 | 58元/100万字符 | Tecent Cloud插件 、点此申请秘钥 |
Chatgpt | 无 | $0.002 / 1K tokens(GPT 3.5) | ChatGPT 支持反代 API、ChatGPT、点此申请秘钥 |
注意: 以上费用仅供参考,具体费用以服务商官网为准。 其他插件提供的翻译服务可以在插件市场搜索@tag:translateSource
找到。
翻译服务众多,特别是各类AI大模型的翻译效果会比传统翻译服务更好,所以我们也支持自定义插件添加翻译服务。开发者可以参考Deepl示例,实现自定义的服务。
翻译服务插件是将翻译服务暴露给Comment Translate插件。需要实现ITranslate
接口,并在插件入口注册服务。用户在选择翻译服务时,会显示插件配置的标题和关键字。当用户切换到该插件时,会启动插件并将翻译请求发送给插件。
注意: 同一个插件可以贡献多个翻译服务项目,并且已经存在的插件可以贡献翻译服务。
- 创建插件:创建一个VSCode插件项目, 文档
-
申明服务:
package.json
申明贡献翻译服务配置。配置Key为translates
,申明服务名字和标题,配置keywords为translateSource
,可以被搜索到。"contributes": { "translates": [ { "translate": "deepl", "title": "DeepL translate" } ] }, "keywords": [ "translateSource", "comment translate", "deepl", "deepl translate", "翻译", "注释", "翻訳" ]
-
实现翻译服务: 实现
ITranslate
接口,实现翻译逻辑import { ITranslate, ITranslateOptions } from 'comment-translate-manager'; export class DeepLTranslate implements ITranslate { get maxLen() { // 单词请求最大长度限制 return 5000; } async translate(content: string, options: ITranslateOptions): Promise<string> { // 实现翻译逻辑 } async link(content: string, options: ITranslateOptions): Promise<string> { // 实现更多链接逻辑 } // ... }
-
注册服务:插件入口
extension.ts
,注册服务import { ITranslateRegistry } from 'comment-translate-manager'; import { DeepLTranslate } from './deepl-translate'; export function activate(context: vscode.ExtensionContext) { //Expose the plug-in return { extendTranslate: function (registry: ITranslateRegistry) { registry('deepl', DeepLTranslate); } }; }
-
调试插件: 调试运行插件,执行
Change translation source
唤起服务配置页面,选择注册的翻译服务,查看翻译效果。 - 发布插件: 发布插件,分享给更多人使用。文档