Skip to content
北极小狐 edited this page Feb 19, 2024 · 4 revisions

翻译模式

脚本提供了三种翻译模式:

  • 普通模式:会一次性翻译整个区域的内容,正常情况下你应该选择该模式。
  • 分段模式:会对区域内的每一个 <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 官方 API

费用

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

DeepLX 是一个开源的 DeepL 非官方反代项目,你可以自行部署,开箱即用非常简单。

它的原理是 fake DeepL 的 IOS 端请求,因为网页端最大字符 1500,IOS 端则是 5000,因此本质上你仍然可能被 DeepL 短暂封禁。

Tip

https://api.deeplx.org/translate 是一个由 @zhile 大佬分享的公共 DeepLX 反代服务,你可以直接使用

假如你发现用不了了,请手动访问一次接口地址,过一下CF的五秒盾 接口地址

ChatGPT

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会对你的跨域请求进行警告,请自行点击授权

Caution

如果你想使用Azure OpenAI,由于其与 OpenAI 官方的接口参数不一样,你可以选择使用一些转换装置,

比如 azure-openai-proxyone-api

自动翻译

开启"自动翻译"后,对于.ttypography, .comments 区域中的短文本,当其进入浏览器窗口的可视区域时,自动进行翻译,你可以在设置面板中指定多少字符以内为短文本。

此外,开启"评论区快速翻译"后,对于评论区中的短文本,自动翻译时会在候选的服务中随机选择一个,并行地进行快速翻译

历史翻译恢复

开启"自动恢复历史翻译"后,会将题目页面上的翻译信息自动保存到浏览器本地的 indexDB 的 CFBetterDB 数据库的 translateData 表中

刷新 / 下一次进入页面时会自动恢复翻译信息。

常见问题

Q. 使用 DeepL 翻译报错 Too many requests ?

A. 这通常是因为你短时间内频繁翻译,或者一次性翻译了超过5000字符的文本导致的,DeepL对翻译字数和频率是有限制的,

这是暂时的,一段时间后就恢复正常了

这个问题在旧版本上频繁出现,且很多用户不看帮助信息,总是来问为什么。因此新版本对该返回做了包装,会给出更具体的文字提示信息

Q. 翻译结果中一些公式显示为 {xx} / [xx] / 【xx】?

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 可以很好的遵守这一点,这也是脚本推荐的翻译方式。