跳到主要内容

网页全文翻译

如果你觉得多次网页划词比较繁琐,也可以使用网页全文翻译功能一次性翻译整个网页的文本。

网页全文翻译可以用以下几种方式打开:

  • 鼠标右键单击网页任意位置,然后选择【划词翻译】>【网页全文翻译】。
  • 打开翻译面板之后,点击左上角的“文 A”图标。
  • 设置页配置好快捷键后,使用快捷键打开。

打开之后,网页右下角会弹出控制面板,可以修改翻译服务、切换双语 / 原文 / 译文显示等。

全文翻译功能可能会消耗大量字符!

自行申请密钥的用户请注意:你浏览的网页可能包含大量字符,请注意字符数的消耗情况!曾有用户反馈对几十个网页使用了全文翻译功能就消耗了二十万字符的情况。建议:

  • 使用网页全文翻译功能时,不要使用自行申请密钥的翻译服务。
  • 如果你一定要用自行申请密钥的翻译服务,那么:
    • 不要在有很多动态功能的网页(比如 Youtube、Twitter)上使用,只在文档类这种基本只有纯文本的网页内使用。
    • 使用过程中,经常去翻译服务的官方平台看一下消耗了多少字符,避免无意之间超过了免费额度导致扣费。
为什么全文翻译功能可能会消耗大量字符?

现代的网页是很复杂的:

  • 翻译服务是会将标点符号、空格、换行等也计算在字符数内的,而一般的网页大量包含这些字符。
  • 有些内容一开始是不可见的,只在特定情况下才出现,比如点击了按钮之后才出现的隐私协议 / 用户协议之类的大量文本,而这部分内容也可能会被翻译。
  • 有些内容是无限动态加载的,比如滚动到最底部就会加载新的内容,再次滚动到底部还会加载,如此循环反复。每次有新内容时,全文翻译功能都会触发翻译。

虽然划词翻译尽可能做了优化(比如去掉首尾空格、只对可视区域内的文本进行翻译等),但不可能覆盖全世界所有网页的使用情况,而这些情况会让你没有意识到你正在大量且持续消耗字符数!

常见问题

部分文本未翻译

请确保你将划词翻译升级到了 v8.5.0 及以上版本。v8.5.0 的划词翻译使用了全新的文本检测算法,理论上不会再出现遗漏文本的情况了。

翻译结果跟划词时不一样

首先需要说明的是,翻译服务会根据上下文调整翻译结果。比如有三句话 A、B、C,当你把这三句话组合在一起翻译时,句子 A 和 C 就是 B 的上下文,B 的翻译结果就可能会跟你单独翻译时的结果不一样。

一个真实的案例

在 DeepL 中翻译下面这两句话时:

This project does not include a GUI application.
If you need one, please see the 3rdParty documentation.

翻译结果是:

这个项目不包括一个GUI应用程序。
如果你需要,请看第三方文档。

但如果你单独翻译其中的第一句话,翻译结果是:

这个项目不包括GUI应用。

对比前面的结果,少了“一个”和“程序”。

在这个示例中,由于翻译的文本很少,所以差异看起来不大,但在真实的网页全文翻译场景中,字数越多,翻译结果差异会越大。

而网页全文翻译就是将多个段落的文本拼接成了一句话发给翻译服务翻译的,也就是说,在网页全文翻译的情况下,每段文本都是带有上下文的,而单独划选一段文本时是仅将这一段文本发给了翻译服务,是不带上下文的。

译文没有保留原文里的链接

这要分为两种情况。

第一种情况:链接是被文本包围的

如果这个链接是被文本包围的,那么这段文本在译文里确实是没有链接的,这是符合预期的——因为划词翻译将包含此链接的整段文本作为一个整体进行翻译了,这样能获得最佳的翻译结果;如果为了保留链接而将这段文本拆分后再翻译,那么得到的翻译结果是不准确的。

举个例子,“这句话里有一个链接,链接两边是有文字的。”作为一个整体翻译时,译文是 “There is a link in this sentence, and the link is flanked by text.”,但如果为了保留链接而将它拆分成三个部分翻译,那么译文将会是 “In this sentence there is a Link, there is text on both sides of the link.”。

第二种情况:链接没有被文本包围

没有被文本包围的链接(例如腾讯新闻里的新闻标题)在译文里也是可以点击的。如果你遇到了一个没有被文本包围的链接在译文模式下不可点击,那么请将问题反馈给我,我会做适配。

多语言混合的页面翻译结果有误

如果网页里只有两个语种,那么你可以尝试将源语种改为其中一个语种来解决翻译结果不是中文的问题,例如在一个中英文混合的页面中,你可以尝试如下步骤:

  1. 将划词翻译升级到 v8.7.7 或更高版本。
  2. 开启全文翻译后,将源语种由”自动检测”改为”英语”即可。
点击查看如何修改全文翻译的源语种

修改网页全文翻译时的源语种

如果网页由三种或更多语种的文本组成,那么这个问题无解。出现此问题的主要原因在于翻译服务不支持翻译一段含有多个语种的文本,解决这个问题需要翻译服务本身支持翻译多语种才行,划词翻译对此基本无能为力。

为什么划词翻译无法解决此问题?

首先需要说明的是,翻译服务都不支持多语种的翻译。以谷歌翻译为例:

  • 打开 https://translate.google.com
  • 将源语种设为【检测语言】,目标语种设为【中文(简体)】
  • 在文本框中输入 I love you. 我爱你。

之后你会看到,谷歌翻译将这段文本识别为了中文,且翻译结果仍然是 I love you. 我爱你。,并没有按照我们所希望的那样将源文本中的”I love you.”翻译为中文,如下图:

修改网页全文翻译时的源语种

而网页全文翻译的原理是将网页里的所有文本合并成了一段文本交给了翻译服务,这就导致出现了上面的问题。如果要解决这个问题,那就不能将文本合并起来、需要一句一句的翻译,但这样一来,一个网页就会需要成百上千次的翻译服务调用,但这些翻译服务不允许短时间内频繁调用,次数一多就会出现 429 错误。

因此,在划词翻译里只能尝试切换源语种,但仍然无法从根本上解决此问题。如果你有更好的方案,欢迎告诉我。

在内置 PDF 阅读器中无效

由于 PDF 文件的结构比较特殊,所以网页全文翻译功能在内置 PDF 阅读器里确实是无效的。

翻译文本(.txt)文件时,翻译结果不全或者没有翻译结果

当翻译文本文件时,划词翻译会以"两个及以上连续的换行符"作为标识将整个文本文件切割成多个段落。换句话说,如果你的文本文件没有两个连续的换行符(例如这个文件),那么整个文本都会被当成同一个段落发送给翻译服务进行翻译。由于翻译服务一般都限制了一次最多提交 4000 个字符、而你的文本又超过了这个数量的话,就会导致没有翻译结果或者翻译结果不全。

建议你先对文本进行处理,在不同的段落间多输入几个换行符,然后再进行网页全文翻译。