问答媒体

 找回密码
 立即注册
快捷导航
搜索
热搜: 活动 交友 discuz
查看: 134|回复: 20

「研究」Chrome 浏览器自带 谷歌翻译 为啥不受扩展控制?

[复制链接]

2

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-11-30 14:23:46 | 显示全部楼层 |阅读模式
自从 9 月底的谷歌关闭翻译国内版,导致 Chrome 浏览器内置的谷歌全页翻译也跟着失效,于是当时我写了个改 Hosts 指向国内服务器的 IP 的教程文章。
结果在 10 月 20 日又因为谷歌陆续关闭国内服务器上的翻译接口服务而失效了,我研究两天才找到了一些合适的解决方案,又写了个新教程文章(即重定向,不过我在搞明白后就已经将下面这个文章重写了一遍,要看解决方法的就直接看下面这个教程文章即可)。
结果发现有人可以,有人却不行,这给我整迷瞪了,迫使我又研究了两天,才大概搞明白原因。这个文章就是我把这段时间的研究总结梳理并记录一下,就当备忘吧~
<hr/>其实并不是完全不受扩展控制(如 SwitchyOmega 、Header Editor 扩展),准确来说是:
整个翻译过程中的网络请求,其中最初一部分不受扩展控制走直连(但受系统设置控制),其他部分则可以正常受扩展控制 走科技 或 被重定向。
如果你使用的是 谷歌翻译 独立扩展版 的话,则没有该问题,可以被扩展控制。
但记得配置:translate.googleapis.com、translate.google.com、translate-pa.googleapis.com 这三个域名走科技,后两个域名是用于扩展的 翻译此页面 功能(不好用,很多网站会因 CSP 而被阻止),如果你只用 划词翻译  那么只让第一个域名走科技即可。
内置 谷歌翻译 + SwitchyOmega 扩展= 不可用
内置 谷歌翻译 + 系统科技设置= 可用
内置 谷歌翻译 + Hosts= 可用
谷歌翻译 扩展 + SwitchyOmega 扩展= 可用
<hr/>是哪一部分网络请求不受扩展控制强制走直连?

打开浏览器后,第一次访问其他语言的网页时(即右上角提示翻译,但你还没有去点击翻译),浏览器就会访问一次 translate.googleapis.com,而这次访问是不受浏览器扩展控制的。
也就是,浏览器监测到网页语言不一样时,就会去不受扩展控制的强制直连访问一次 translate.googleapis.com,后续在浏览器关闭之前就不会再这样做了,因此只要这一次强制直连访问成功,那么后续进行翻译都可以由扩展控制 走科技 或 被重定向了。
而一些人之所以会出现明明手动访问 CSS/JS 等静态文件可以正常 走科技 或 被重定向,但依然无法翻译的情况,就是因为这次 Chrome 强制直连的链接没有 走科技 或 被重定向导致的,而另外一批成功翻译的人,其实就是因为这次强制直连因为某些原因访问成功了,所以后续的翻译请求才会正常 走科技 或 被重定向。
<hr/>点击 翻译 选项后的流程逻辑是?

注意:只有强制直连那次访问成功,浏览器才会进行下面这些的步骤环节!

  • 浏览器加载翻译所需的静态文件(JS/CSS 等)
  • 由刚刚加载的其中一个 element_main.js 脚本发起 POST 翻译请求并处理
而这两个环节产生的网络链接都能正常受扩展控制,可以 走科技 或 被重定向
<hr/>为啥有人可以 有人不行?

我前几天写的教程,是依靠扩展把 translate.googleapis.com 重定向至 gtranslate.cdn.haah.net,结果评论区/私信中,有大量用户反馈依然不行,但是也有部分人反馈可以,这种奇怪的现象迫使我仔细研究了一番 Chrome 的翻译机制,才大致搞明白了,确实挺奇葩的,我也想不明白,为什么 Chrome 浏览器要这样做,而且还是内核中写死的。。。
现在想来,我之所以能重定向成功,就是因为当初测试效果时,我的 Hosts 文件中已经加的有将其指向可用的谷歌 IP 的内容了,而我当时还不清楚这么多弯弯道道,以为只靠扩展重定向就完美解决了,还很兴奋的第一时间熬夜写教程,结果第二天大量用户在评论区反馈不行。。。搞得我就很尴尬,刚才我又重写了这篇文章教程,这次应该没啥问题了~
<hr/>如何验证呢?

想要验证也很简单,只需要在 Hosts 中将 translate.googleapis.com 指向一个不可用的错误 IP 并重启浏览器(刷新缓存),然后再去尝试翻译(已配置扩展 走科技 或 重定向),就会发现翻译失败了。
而一旦指向一个可用的 IP(我用的是谷歌国外 IP),那么翻译时就能在 F12 - NetWork(网络)中看到发起的 POST 翻译请求被扩展控制走了 走科技 或 被重定向(如果是前面那样将其指向不可用的错误 IP,那么这种情况下尝试翻译,会发现 NetWork 看不到任何翻译请求的网络链接)。
回复

使用道具 举报

0

主题

10

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2022-11-30 14:24:42 | 显示全部楼层
目前Edge的话内置的页面翻译是可以使用的。Firefox的话使用TWP - Translate Web Pages扩展选择YandexAPI也可以提供页面翻译。Deepl也可以替代google网页翻译。如果还是不行的话可以试试这个方法。Google翻译看来是不想给我们免费用了。
回复

使用道具 举报

1

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-11-30 14:24:58 | 显示全部楼层
都用谷歌了,应该都有工具了吧
回复

使用道具 举报

1

主题

7

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-11-30 14:25:22 | 显示全部楼层
请问独立版扩展的行为又有何不同?
回复

使用道具 举报

0

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2022-11-30 14:25:59 | 显示全部楼层
具体咋解决?
回复

使用道具 举报

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-11-30 14:26:06 | 显示全部楼层
文章里不是写了么,那个 解决方法之二 就是。
回复

使用道具 举报

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-11-30 14:26:34 | 显示全部楼层
那后续如果国外ip不能用了,首次访问失败了,重定向也就随之不能用了是吗。另外,如果自己找国外ip的话,应该怎么找呀[思考]
回复

使用道具 举报

1

主题

3

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-11-30 14:27:04 | 显示全部楼层
这个操作就复杂很多了,一句两句的也说不清。。。
回复

使用道具 举报

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-11-30 14:27:13 | 显示全部楼层
谷歌翻译 独立的扩展版本,没有这种特殊操作,一切都很正常,完全受其他扩展控制
回复

使用道具 举报

0

主题

5

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-11-30 14:27:46 | 显示全部楼层
单靠 SwitchyOmega 扩展是无法控制其走的,这点就很烦。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver| 手机版| 小黑屋| 问答媒体

GMT+8, 2025-7-14 03:21 , Processed in 0.093890 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2020, LianLian.

快速回复 返回顶部 返回列表