FelisCatus / SwitchyOmega

Manage and switch between multiple proxies quickly & easily.
GNU General Public License v3.0
21.34k stars 3.21k forks source link

chrome自带的翻译工具无法使用代理 #264

Closed yinxufeng closed 9 years ago

yinxufeng commented 9 years ago

无论选择哪种情景模式,貌似翻译功能不走代理。将shadowsocks-csharp设置为系统全局代理,SO切换到“系统代理”模式,则可以正常翻译了

FelisCatus commented 9 years ago

之前有遇到过这类问题。我的建议打开 chrome://net-internals/#events 这个页面。保持那个页面开启,再用一下翻译功能,就知道请求了哪些URL。如果能找到 URL 的话就当然也可以添加到自动切换之类的。如果找不到,说明翻译功能不经过这套内部实现,如果是那样估计就没办法了。

yinxufeng commented 9 years ago

在不设代理的情况,看到了一些跟translate有关的url,但是这方面信息我看不太懂,我上图帮忙看下,是否有办法 image

yinxufeng commented 9 years ago

我用熟悉的Filddler试过了,SO切换到我自己的ss代理,这时候google,youtube都能正常打开,这时候点翻译,发现Fildder抓到了一些chrome进程的包。按道理如果走ss代理,Fiddler是不应该再抓到包的,但是有translate相关的url。这是否能说明chrome自带的翻译功能是不走SO的呢?如果这样是不是就没办法了? image

simonsww commented 9 years ago

我用的360极速浏览器,可以直接走SS通道翻译网页。

FelisCatus commented 9 years ago

@yinxufeng 请给出 chrome://net-internals/#proxy 页面显示的代理设置。复制粘贴过来就可以。

yinxufeng commented 9 years ago

这是使用ss代理的设置 Proxy server for everything else: socks5://127.0.0.1:1080 Bypass list:

yinxufeng commented 9 years ago

不知道跟chrome版本是否有关, 40.0.2214.94 m (64-bit),我找个32位的试试

yinxufeng commented 9 years ago

32位的也试过了,还是一样,必须要设置系统全局代理才能翻译 Effective proxy settings

Proxy server for everything else: socks5://127.0.0.1:1080 Bypass list:

yinxufeng commented 9 years ago

@simonsww我试了360极速浏览器最新版,也是需要我shadowsocks-csharp设置为全局系统代理,才能正常用谷歌翻译的。不知道你怎么设置的呢?

FelisCatus commented 9 years ago

代理设置显然是对的,也就是说这已经是 SwitchyOmega 能做到的极限了吧。 如果真的是有些浏览器(或版本)走的网络请求流程,而另一些不走,那倒是挺令人吃惊的……

所以我先关闭这个 issue 了,但大家仍然可以继续讨论的。评论功能仍然可用。

chaoshxxu commented 9 years ago

感谢作者的贡献。同时希望作者能把这个问题解决了。

taocwang commented 9 years ago

正遇到这个问题,如何解决呢

FelisCatus commented 9 years ago

此问题和 SO 无关,真正的问题是 Chrome 在请求翻译的时候不使用代理。

遇到此问题的各位,请到 Chromium 项目相关的 Issue 加星☆以获取最新消息。

此外, Chromium 项目维护者之一的 toyoshim@chromium.org 建议提供以下信息以供分析:

Otherwise, please provide information to reproduce your problems. In addition, following information will help us to investigate your problem.

  • Any error or warning messages in Tools > JavaScript Console > Console window
  • Network log file which is generated from chrome://net-internals/#export. Please open this page in another tab before you reproduce the problem, and press 'Save to file' button after reproducing the problem.

(无责任翻译:)

honve commented 8 years ago

需用内置翻译的朋友请开启这个 chrome://flags/#v8-pac-mojo-out-of-process 改默认为已启用。

xinggsf commented 8 years ago

ublock可拦截后台请求!SwitchyOmega不能代理后台请求吗?

celeron533 commented 8 years ago

@xinggsf adblock, ublock可以和SO一起使用,所以应该没有改变浏览器的代理设置而是用js注入。内置的翻译工具很有可能是忽略代理的。

louisi commented 7 years ago

有人解决了吗 ?

celeron533 commented 7 years ago

这是chrome自身的问题,除非chrome在源码上有变化,否则就无法解决

有人解决了吗 ?

yinxufeng commented 7 years ago

已经可以了, chrome版本59.0.3071.115

Justsoos commented 6 years ago

google translation of chrome 和 google chrome update 都是养尊处优,不知道天朝墙壁有多不要脸的傻冒美国人想当然的设计: 尤其是前者,更容易引起误会,已经内建在 chrome 浏览器的谷歌翻译,怎么不走我设置好的 socks5 代理?

因为重点:这两个货(在windows上)是开独立进程(线程)的,相当于独立chrome之外,都是走的系统代理,并不通过 chrome 内置 proxy 设置。

因此,给中国(和所有使用http,socks代理的)用户留下两个超恶心的大bug: 1,chrome 自带升级(三个... -> 帮助 -> 关于Google Chrome) 2,chrome 内置 google 翻译 都必须开 windows 系统代理,在SSR上就是 “全局代理”,或者你手动修改windows 的 Internet 设置。

Justsoos commented 6 years ago

此问题也困扰我过,欢迎传播,如果 google 能因此修正更好。

Justsoos commented 6 years ago

在 bugs.chromium.org 跟帖了,相当于请愿的回复 @FelisCatus : https://bugs.chromium.org/p/chromium/issues/detail?id=118074#c32

Justsoos commented 6 years ago

还是没能彻底解决这个问题,去找了资料,看完,被微软和 Google 这俩大企业恶心了半天。 只能画图来说了:

通过 chrome (需要)上网形式分三种: 1,chrome 访问 surfing webpage 2,chrome://help 内升级浏览器,实际是运行独立程序 GoogleUpdate.exe 3,chrome 内置 build-in google translate

这三个方式,在windows 10 上,还分别不完整的对应三种代理: 1,可以操纵 chrome 访问的 pac 代理,比如 switchyomega,autoproxy -> pac proxy 2,windows 系统的 WinINET 代理,也就是 -> ie proxy 3,windows 系统下 WinHTTP 代理,这个可以用 netsh winhttp show proxy 查看 -> winhttp proxy

面对如此令人头脑发昏的迷宫,我只能说,你们这些大企业一个萝卜一个坑,牛头萝卜不管马面红薯的活儿,还能拿美金过舒服日子,能也给我来一打!

2018-03-30_11-56-12

参考资料:https://blogs.msdn.microsoft.com/ieinternals/2013/10/11/understanding-web-proxy-configuration/ ping: https://github.com/FelisCatus/SwitchyOmega/issues/476

Justsoos commented 6 years ago

老外回复了 https://bugs.chromium.org/p/chromium/issues/detail?id=827478#c2 各位有啥想法,赶紧抓住这个老外,诉苦!哈哈 我正在写回复。。。。

yinxufeng commented 6 years ago

我以为这问题早已经解决了呢,我现在chrome版本 65.0.3325.181(正式版本) (64 位) 已经有很长一段时间可以用翻译了,SwitchyOmega走自动切换模式,shadowsocks也不用设全局代理

Justsoos commented 6 years ago

很明显,chrome 内置的 google translate 是不走 SO 的 pac 模式的啊,否则就不会有这么多人喊不好用了。 @yinxufeng 你可能是系统里开了 winhttp 代理,而你并不知道。 你可以试一下这个命令看看: netsh winhttp show proxy 但我测下来,以及google到的信息是,chrome很早就不支持 winhttp 代理,现在好用或不好用,非常难说,也许依赖你系统其他未知设置。

酸酸 和酸酸乳 的 “系统代理”,其实是 winINET代理,那个是写注册表的。 在这里

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer

补充一下:你说的不是 网页访问google translate吧? 我这里说的可都是 chrome内置,鼠标右键 “T” 的,和这个是两回事。

rikkix commented 6 years ago

Chrome 版本 65.0.3325.181(正式版本) (64 位) 也是这样……

yinxufeng commented 6 years ago

@Justsoos 能确定系统没有开代理,IE无法打开google image

是用右键菜单的翻译网页,我还特地在隐身模式(未启用SwitchyOmega)下试了翻译,发现也能翻译。貌似翻译功能不需要翻墙了

Justsoos commented 6 years ago

翻译不需要翻墙是不可能的,Google 现在是 tls 证书都被墙的待遇,这个问题的复杂性还多的很。 也许是你恰好 dns 幸运的给你碰上了一个漏网的Google QUIC 服务器 -- 大概有3%左右几率,不到。 所以说,Google 和 微软这帮人是无法体会中国人的遭遇的。各种不同状况混杂在一起,相当混乱

Justsoos commented 6 years ago

说白了,真的要改一个 build-in 的 Google 翻译走 pac 代理,只要不到10行 javascipt 就够了。但Google 那个大摊子,一个萝卜一个坑,大企业病的厉害,很难遇到一个负责开发的愿意搭理你。

Justsoos commented 6 years ago

chrome 的老外们,把这个问题又分到 Labels: Needs-Triage-M65 去了,。。。你们谁知道这是个什么去处么? https://bugs.chromium.org/p/chromium/issues/detail?id=827478#c4

yfdyh000 commented 6 years ago

Needs-Triage是需要归类、判定分流,决定交给哪个团队/个人来进一步处理。 M=milestone,65是当前Chrome稳定版,没被忘记。

Justsoos commented 6 years ago

又测了一次,这次把winhttp和winInet设置都关掉,只留下SwithyOmega的pac代理。 然后,用proxifier拦截所有流量,测chrome内置Google translate,当然,这个好用。 然后关掉了proxifier,发现chrome内置Google translate 选择了SO的pac代理!!也好用了!! 但没有这个过程,直接打开chrome就死活无法使用内置Google translate!

这与楼上几位遇到情况一致,也就是说chrome内置有一个访问代理的选择过程,它其实是可以使用pac代理的,但这个机制不透明,有些人遇到的,就是直接可用。我遇到的就需要激活一次。

说实话,chrome这个google团队,真是太复杂了。提了半天问题,只是在不同的开发人员之间转来转去,没一个了解机理的人出来。就这么个访问网络代理的小破事儿,里面不知道用了多少层网络接口选择颠来倒去的折腾。

Justsoos commented 5 years ago

实测,内置翻译的服务器,已经落地上海,目前不需要翻墙即可使用。。。。chrome ver 70.0.3538.102

image image

image image image

luty4ng commented 5 years ago

Google Chrome 70.0.3538.102 ShadowsocksR PAC代理下可以翻译,全局不行

23202 commented 5 years ago

74版本依旧是这个问题 我还一直奇怪呢 为何ssr只有全局下才能选择翻译 原来是这个原因

kpivy8 commented 5 years ago

用的最新版本版本 chrome 75.0.3770.100,so用的gfwlist增加一行规则“translate.google.cn"就可以了,这个cn的域名已经在某些地区彻底不能用了

hialoha commented 5 years ago

被同样的问题困扰

Simoneshen commented 4 years ago

chrome升到最新版遇到了同样的问题

Leo-Mu commented 4 years ago

@Justsoos 发现一个很诡异的现象,我现在用本地运营商 DNS 就可以正常使用内置的 translater 但是如果换成防污染的或者国外的的 DNS 比如微软的 DNS 就无法使用了。

krizex commented 4 years ago

Chrome 80.0.3987.116 问题依旧

krizex commented 4 years ago

可以去商店里面安装一个 Google Translate插件,然后把 *.translate.googleapis.com 加入代理列表。 之后用这个插件就可以翻译网页了。

Justsoos commented 4 years ago

1,chrome 在windows,mac,linux 上不仅端口代理,还涉及全局,pac 等等网络代理行为并不一致 2,pac、 gfwlist 表达的路由与 Google 多个服务器实际在 北京上海 可以免墙访问的错综复杂矛盾 3,dns 对以上路由解析配合的错乱 4,chrome 内置翻译与外部插件访问还会不一致

至少以上三个不同维度导致这件事儿诡异的复杂,只能自己看自己的使用方式解决了。没有统一方案

Justsoos commented 4 years ago

如果还要加个问题维度: 5,Google本身的翻译,对某些可能「敏感词」或「不可知原因」,在北京上海服务器上翻译/连接的效果,与海外还会不同 甚至还会有些插件,比如 hammerspoon 的翻译插件竟然访问 80 端口,十足的泄密 ……

总之越深入这些老外的软件,越发现他们对于拆拿之墙的无知和不故意制造的极多混乱。。。。对小白来说,是灾难

dongshige commented 4 years ago

http://ping.chinaz.com/translate.googleapis.com

现在可以直连了

buoyont commented 4 years ago

之前一直没有问题,添加了Trojan之后出现了同样问题

xiaomiaozone commented 4 years ago

5年过去了.. 这个问题还没解决

hdzhx commented 3 years ago

用omega上的https代理翻译不行,但用ss代理全局或pac都可以,所以说明翻译和浏览器不是走同一个路径,如果国内有服务器应该是可以的,但实际上不行

codingcn commented 3 years ago

添加就可以了 .translate.googleapis.com ||translate.googleapis.com

gamefunc commented 3 years ago

2021/03/29: 翻译流量不能通过SO插件中转的; 测试环境下:开个PY监听TCP/UDP,点翻译都是不会有请求过来; 但是翻译是可以直连的;把.*translate.googleapis.com解析到国内即可,是北京ip的谷歌云,但不稳定; 所以可以选择设全局或者PAC;

还有一个最简单的方法是: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) qm1 = b"\x1ck\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x09translate\x0agoogleapis\x03com\x00\x00\x01\x00\x01" s.sendto(qm1, ("114.114.114.114", 53)) b, a = s.recvfrom(1000) print(f"{b=}, {a=}") l = [x for x in b] print(l) 直接获取ip比如我这里是203, 208, 43, 65, 然后设置C:\Windows\System32\drivers\etc\hosts 在最尾添加 203.208.43.65 translate.googleapis.com