-
Notifications
You must be signed in to change notification settings - Fork 9
脚本提供了三种翻译模式:
- 普通模式:会一次性翻译整个区域的内容,正常情况下你应该选择该模式。
- 分段模式:会对区域内的每一个
<p/>
和<i/>
标签依次进行翻译 - 选段模式:你可以自由点选页面上的任何
<p/>
和<i/>
标签进行翻译
你可以点击右上角的 CodeforcesBetter设置
,打开设置面板并选择你想使用的翻译服务(默认为DeepL)。
Warning
注意: 分段/选段模式会产生如下问题:
-
使得翻译接口无法知晓整个文本的上下文信息,会降低翻译质量。
-
会有部分内容不会被翻译/不能被选中,因为它们不是
<p/>
或<i/>
元素
脚本提供了如下翻译接口可供选择:(默认为DeepL)
KEY | 翻译质量 | 可靠性 | 字符数上限 | 耗时 | 实现方式 | |
---|---|---|---|---|---|---|
DeepL翻译(免费) | 不需要 | ⭐️⭐️⭐️⭐️ | 大量请求容易被暂时封禁 (Too many requests) | 5000 | 快 | 模拟API |
DeepL翻译(官方API) | 需要 | ⭐️⭐️⭐️⭐️ | / | / | 快 | 官方API |
DeepL翻译(DeepLX API) | 不需要 | ⭐️⭐️⭐️⭐️ | 通常可靠 | 5000 | 快 | 模拟API |
讯飞听见翻译 | 不需要 | ⭐️⭐️⭐️ | 通常可靠 | 2000 | 快 | 模拟API |
有道翻译 | 不需要 | ⭐️⭐️ | 通常可靠 | 600 | 快 | 模拟网页 |
Google翻译 | 不需要 | ⭐️⭐️⭐️ | 需要当前网络能顺利访问Google | 5000 | 快 | 模拟网页 |
彩云翻译 | 不需要 | ⭐️⭐️ | 通常可靠 | 5000 | 快 | 模拟API |
使用ChatGPT翻译(✨推荐) | 需要 | ⭐️⭐️⭐️⭐️⭐️ | 取决于服务商质量以及 OpenAI 的拥挤程度 | 取决于模型 | 较慢 | 官方API |
Tip
右键页面上的任意 翻译 图标按钮,均可以快速切换翻译服务哦
Note
其中需要 API 的服务均提供了配置管理面板,你可以增加多个配置,点选即可切换不同配置,右键即可修改和删除。
Note
目前部分地区可能无法直连访问 DeepL 服务或访问较慢。
DeepL 有两个收费对象:
一个是 translator ,这是用于 DeepL 官方的网页版和桌面端的会员,不是我们需要的。
另一个是 DeepL API ,这是我们需要的,它分为两种,Free 和 Pro:
- API Free:每月有 500000 字符免费用量,月初刷新
- API Pro:没有免费用量,价格为每月4.99欧元的固定月费 + 0.00002欧元每字符的使用费用
详请阅读 官方说明
而淘宝上有大量卖 API Free 账号的商家,几块钱一个账号,显而易见,直接买账号使用 API Free 更加划算。
API Free 和 API Pro 的请求端点是不一样的,不要填错了
此外,官方API支持一些额外的请求参数(官方文档),对此脚本提供了两个仅 官方 API 才生效的选项:"保护**号"、"保护链接",它们就是通过将着重号和链接转换为HTML,然后添加额外的请求参数 tag_handling: html
实现的,具体请打开脚本的设置面板,鼠标移动到帮助问号处阅读文本。
DeepLX 是一个开源的 DeepL 非官方反代项目,你可以自行部署,开箱即用非常简单。
它的原理是 fake DeepL 的 IOS 端请求,因为网页端最大字符 1500,IOS 端则是 5000,因此本质上你仍然可能被 DeepL 短暂封禁。
Tip
https://api.deeplx.org/translate 是一个由 @zhile 大佬分享的公共 DeepLX 反代服务,你可以直接使用
假如你发现用不了了,请手动访问一次接口地址,过一下CF的五秒盾 接口地址
ChatGPT是什么相信不用我再介绍了吧,你同样可以使用它来翻译文本,而且效果非常出色!
如何使用?
第一步:你需要获得API:
如果你可以直接访问 OpenAI,并且拥有账号,绑定了银行卡,那么非常棒,前往官网,生成一个KEY,然后前往第二步吧。
没有的话,你也可以购买国内的 API 代理服务,下表收集了一些 API 服务商,你可以选择使用
官网 | 获取方式 | |
---|---|---|
API2D | https://api2d.com/ | 官网 |
CloseAI | https://console.closeai-asia.com/ | 官网 |
OhMyGPT | https://aigptx.top/ | 官网 |
OpenAI-SB | https://openai-sb.com/ | Telegram机器人 |
API2GPT | https://www.api2gpt.com/ | 官网 |
AI Proxy | https://aiproxy.io/ | 官网 |
Caution
免责:
作者仅为收集分享,没有获得任何收益,亦不保证上述平台的稳定性,平台的任何行为均与作者无关。
建议小额充值,用完再充。
第二步:填写配置:
在设置面板中,选择“使用ChatGPT翻译”,点击ChatGPT配置框中的 “添加” 按钮,新建一个配置并填写。
注意,如果你使用的是 API 代理服务商 提供的服务,配置中的 KEY 应该填写 API 代理服务商提供的 key,
此外,你还需要在配置中额外填写 Proxy API,Proxy API 需要填写完整的地址,
这里以 CloseAI 为例,其提供了 API Base:https://api.closeai-proxy.xyz
那么 Proxy API 后面应该填写的就是 https://api.closeai-proxy.xyz/v1/chat/completions
,
注意:由于你指定了自定义的API,Tampermonkey会对你的跨域请求进行警告,请自行点击授权
开启"自动翻译"后,对于.ttypography
, .comments
区域中的短文本,当其进入浏览器窗口的可视区域时,自动进行翻译,你可以在设置面板中指定多少字符以内为短文本。
此外,开启"评论区快速翻译"后,对于评论区中的短文本,自动翻译时会在候选的服务中随机选择一个,并行地进行快速翻译
开启"自动恢复历史翻译"后,会将题目页面上的翻译信息自动保存到浏览器本地的 indexDB 的 CFBetterDB 数据库的 translateData 表中
刷新 / 下一次进入页面时会自动恢复翻译信息。
A. 这通常是因为你短时间内频繁翻译,或者一次性翻译了超过5000字符的文本导致的,DeepL对翻译字数和频率是有限制的,
这是暂时的,一段时间后就恢复正常了
这个问题在旧版本上频繁出现,且很多用户不看帮助信息,总是来问为什么。因此新版本对该返回做了包装,会给出更具体的文字提示信息
A. 在使用普通翻译接口(DeepL/有道/google)进行翻译时,受脚本的实现方式所限,可能会出现{xx}/[xx]/【xx】
脚本对公式的处理方式
为了保护LaTeX公式在翻译时不被破坏,脚本会先取出所有的LaTeX公式,并使用替换符{xx}/[xx]/【xx】来占位,
由于这些替换符大概率不会在翻译的过程中遭到破坏,因此可以在翻译后再根据替换符还原回LaTeX公式。
这种实现方式能如期工作的前提是替换符不被破坏,这在绝大多数情况下都是没有问题的,
但有时翻译服务会破坏替换符 ,比如 【23】 变成了 【23 / 23】 / [23]/ 【23 】/ 23 】,这些情况下脚本会通过一定的正则规则进行还原,使其仍然可以如期工作
但如果翻译服务还破坏了更多的内容,产生了歧义,比如翻译服务将【2】 313 变成了 【2312,这时就无法还原了,
对于各个翻译服务,不同的替换符本身遭到破坏的概率有所不同,你可以在右上角的设置面板中选择不同的替换符,
经过测试,通常 {}
表现的效果更好,因此这也是脚本默认使用的替换符
提示:
在使用 ChatGPT 进行翻译时不会存在这个问题,因为可以通过提示词直接告诉 ChatGPT “保持其中的LaTeX公式不翻译”,
聪明的 ChatGPT 可以很好的遵守这一点,这也是脚本推荐的翻译方式。