type
status
date
slug
summary
tags
category
icon
password
Property
Aug 28, 2024 03:08 AM
DeepLX介绍
DeepL是什么
DeepL的官网的介绍是:DeepL翻译器是一种机器翻译服务,它能提供史无前例高质量的译文。它被誉为全世界最精准的机器翻译,比最接近他们的竞争对手准确三倍以上。
简单两个字描述就是:优秀!

DeepL和DeepLX的关系
DeepLX 是一个开源项目,它基于 DeepL 免费服务,将其转换为本地 API,提供给第三方程序使用,如沉浸式翻译、Bob翻译等等。
开源仓库地址:
DeepLX
OwO-Network • Updated Aug 1, 2024
Deeplx-for-cloudflare
正如大佬所言:任何可以用 JavaScript 编写的应用程序最终都将用 JavaScript 编写。
“Any application that can be written in JavaScript, will eventually be written in JavaScript” Jeff Atwood, Co-Founder of Stack Overflow
最终也出现了JavacScript版本的DeepLX,并且在NPM仓库上可以下载@ifyour/deeplx。
开源仓库地址:
deeplx
ifyour • Updated Jul 4, 2024
除此之外,因为需要后端来进行转发HTTP请求,因此需要一个后端服务。此时Cloudflare又义不容辞的站了出来,其免费的Worker足够支持起每日的使用,赞👍。
因此,@ifyour/deeplx的Cloudflare版本也应运而生,你可以前往开源地址自己进行部署,可以部署在自己的机器或者部署在Cloudflare上。
deeplx-for-cloudflare
ifyour • Updated Aug 1, 2024
deeplx-for-cloudflare
ifyour • Updated Aug 1, 2024
DeepLX公共API
如果需要在具体的软件使用,我们就需要一些API,这里就简单的罗列。
失效API
之前有一个流传比较广的API:https://api.deeplx.org/translate,就是基于DeepLX部署的。
我最开始也是使用的这个公开的API,但是后面因为访问量过大,不得不加了限制,只有LINUX DO Connect 认证的注册会员才能使用,详情见帖子。
有效API
目前有效的免费API是https://deeplx.mingming.dev/translate,记住这个地址后面需要使用。
就目前来看,在Cloudflare部署的地址,包括我自己部署的。
- 自己部署的:https://deeplx-cf.aizaizuori.workers.dev/translate
- 网友部署的(出处地址):https://production.deeplx.yibie.workers.dev/translate
注意:使用Cloudflare部署的偶尔会出现429错误,但是过段时间访问又可以了。

DeepLX使用
沉浸式翻译使用DeepLX
沉浸式翻译简介
沉浸式翻译是一款免费的网页翻译插件,为您提供在线双语对照网页翻译,多种格式的文档翻译、论文文献翻译、PDF翻译、EPUB电子书翻译、视频双语字幕翻译等等,具体的细节可以去沉浸式翻译官网了解。
本文不是着重讲解沉浸式翻译的插件使用,而是着重在于DeepLX的集成,其基本的使用体验如下图所示。

沉浸式翻译使用步骤
接下来我们着重设置沉浸式翻译使用DeepLX
第一步:进入设置

第二部:选择更多选项

第三步:我们在新的设置页面,找到开发者选项,并且启用新的测试特性。开启新特性之后刷新页面。

第四步:进入选择翻译服务Tab,看到DeepLX设置,先进入设置

这里我是这样设置的:
- API URL :https://deeplx.mingming.dev/translate
- 每秒最大请求数:100
- 每次请求最大文本长度:1200
- 每次请求最大段落数:10
并且测试服务提示的是成功。

第五步:返回到翻译服务列表,确保DeepLX为选中状态

第六步:最后我们进入基本设置,勾选DeepLX服务即可。


然后我们刷新页面,开启沉浸式翻译开关,效果就出来了。

KissTranslator使用
KissTranslator简介
一个简约、开源的 双语对照翻译扩展 & 油猴脚本。他比沉浸式翻译更加开源!很赞!👍
kiss-translator
fishjar • Updated Aug 1, 2024
更赞的是KissTranslator默认就支持DeepLFree接口,简直更棒了!

因此我们就不用使用DeepLX了,直接使用这个免费的DeepLFree。

其实我看了这部分的代码逻辑,这个部分也是调用的DeepL的接口,而扩展和脚本本来就具有跨域的能力。挺好,更加方便了。
代码相关的参考:
deepl.js
fishjar
Bob翻译使用DeepLX
Bob翻译简介
Bob是一款macOS 平台的翻译和OCR 软件,具体详情可以查看一下Bob官网。相信我,它真的很好用。

我一直使用的是社区版本Bob,免费开源,搭配插件感觉起飞了。

Bob翻译使用步骤
Bob是支持DeepLX插件的,前提是你自己需要首先安装Bob软件。
接下来我们就来介绍Bob翻译使用步骤。
第一步:我们去开源仓库下载插件,目前最新的下载地址在这里:https://github.com/missuo/bob-plugin-deeplx/releases/tag/v1.0.8。
bob-plugin-deeplx
missuo • Updated Aug 1, 2024
直接下载在这里:
第二步:我们下载完之后,双击插件就会提示你安装,你确认安装就是。
因为我这里已经安装过了,就不需要安装了。

第三步:进入Bob的翻译服务,选择文本翻译,从下面的加号中选择DeepLX翻译插件


第四步:再为DeepLX插件配置上对应的API,保存就可以了

第五步:可以尝试一下,使用起来

DeepLX部署
Workers优势
简介
CF Workers是Cloudflare推出的云函数部署方式,你可以用Serverless的方式来云上部署你的代码,并且支持KV存储,缓存等等特性,目前支持TypeScript、JavaScript、Python、Rust等语言。
定价
目前关于Worker的定价,有两种方式,一种是每日100,000次请求,每天会重置;另一种是每月5美元的基本费用,包含1000万次请求和3000万毫秒CPU执行时间。
定价简图如下:

具体的定价策略参考链接:
Workers部署方式
第一步:登陆后进入Workers和Pages首页

第二步:点击创建按钮,进入创建

第三步:选择创建Worker

第四步:设置好心仪的名字后点击部署

第五步:点击编辑代码,进入编辑页面

第六步:复制代码
进入辅助我们需要的代码,点击复制按钮即可全部复制
index.js
ifyour

第七步:在编辑器,全选内容,再粘贴我们的代码,部署即可


第八步:测试使用,比如我们可以在沉浸式翻译配置好使用


面板查看
最后我们想查看我们的Worker的调用情况和访问量,我们可以在Workers和Pages的概述页面查看即可。

已知问题
使用Cloudflare的免费Worker部署是有一定的问题的,最常见的就是429错误。

在 HTTP 协议中,响应状态码
429 Too Many Requests
表示在一定的时间内用户发送了太多的请求,即超出了“频次限制”。原因就是免费的Worker每分钟请求数量是1000,如果达到了1000那么就会返回429 HTTP CODE错误。

具体的免费的Worker限制可以参考以下文档
因为有这个每分钟1000次的QPM限制,因此可能沉浸式翻译会触发,导致翻译错误

而经过测试,如果使用付费版本的Worker来搭建,是没有这个错误的,没任何压力。

注意
其实我在这里使用订阅账户搭建的Worker还是有概率出现429错误,不知道具体原因,按道理来说不应该这样的,文章还是按照官方文档继续,希望以后会修复这个问题。
日期:20240705
使用场景
如果是使用或者自己部署的服务,那么在沉浸式翻译或者Bob等访问频率不是那么“爆发”的软件,都是可以的。
deeplx-for-cloudflare
ifyour • Updated Aug 1, 2024
DeepLX
OwO-Network • Updated Aug 1, 2024
如果是使用Cloudflare部署的免费Worker,使用Bob等低频请求软件是极好的,而使用沉浸式翻译软件就有概率出现错误。而如果是订阅的Cloudflare用户,就没有这个限制。
DeepLX实现原理
简单的原理就是DeepL的翻译接口有跨域限制,跨域限制是浏览器独特的安全策略,而后端和油猴脚本、Chrome扩展请求等是没有这个限制的,因此可以自己部署,或者KissTranslator等都可以实现DeepLFree的接口。

简单的原理如图所示

所以DeepLX的实现也是盗用官方的接口,只不过这个官方的接口是公开的。
而沉浸式翻译等翻译扩展,其实也是可以像kiss-translator一样实现免费DeepLFree接口的,就看别人是否愿意了。
结语
这里总结了一下DeepLX的基本使用和Cloudflare的部署相关,希望对大家有所帮助。
在生活和工作中,我们使用的很多的工具和物品,都是使用别人的成果来提供便利的,可以说是站在别人的肩膀上,所以常怀一颗感恩之心吧。
- 作者:Kitety
- 链接:https://www.kitety.com/article/deeplx-usage-and-deployment
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。