中国的网页版谷歌翻译无法使用的同时,可以划词翻译的 Google 翻译 Chrome 插件版以及 Chrome 自带网页翻译功能也无法正常工作了。插件版谷歌翻译会出现划词翻译后无反应的情况,而 Chrome 内置的网页翻译功能则会提示无法翻译此网页。
在介绍具体的解决方法之前,先解释一下出现此问题的原因。Chrome 的翻译功能无法正常工作的根本原因是互联网防火墙的阻断,使用翻译功能会请求域名为 translate.googleapis.com 的 API(应用程序接口),而该域名在谷歌翻译正式关闭服务前后就已经不可用了。
那谷歌翻译不能用了怎么办?Chrome 自带翻译无法使用了又该怎么办?针对这两个问题,书伴提供了两种有效的解决方案。一种是通过修改操作系统的 hosts 文件,将 API 所使用的域名映射到一个可用的 IP 上,另一种是使用网络代理,使得 API 所使用的域名能够正常访问。
你可以通过以下操作步骤,将 Chrome 翻译功能恢复如初。
Google 在中国开展业务的相关网站所使用的 IP 地址都是共享的,包括谷歌翻译业务在内,因此只要能找到你能正常访问的 Google 服务的相关域名,比如谷歌中国主页、能够在网页上正常加载的 Adsense 广告或 Analytics 统计所使用的 JavaScript 脚本文件网址等,就可以很轻松的获取到在你所在的网络环境中可以正常使用的 IP 地址。获取到可用 IP 地址后,将其添加到操作系统的 hosts 文件,使其映射到谷歌翻译 API 所使用的域名,Chrome 翻译功能就能正常使用了。
下面是获取可用 IP 地址以及修改 Windows 系统和 macOS 系统 hosts 文件的具体方法。
为简化操作,书伴将手动修改 hosts 文件的步骤写成了批处理脚本,只需一键即可完成所有修改步骤。脚本托管在 我的博客上面 上,你也可以通过以下链接直接下载到本地使用。
**下载批处理脚本** https://www.xmaven.cn/upload/2022/10/fix-google-translate-cn.bat.zip
使用方法很简单,下载完成并解压缩,在批处理文件上点击右键,在弹出的菜单中点击【以管理员身份运行】即可。如果看到如下所示提示,表示规则添加成功,Chrome 翻译就恢复正常了。
Adding the rule "114.250.63.34 translate.googleapis.com"
Done.
请按任意键继续...
中间的dns看个人情况而定,主要看执行获取的代码而定
此脚本可以重复使用,如果 IP 没有变化则不做任何修改,如有变化则更改为新的 IP 地址。
我们可以在ip中固定我们的dns 如114.114.114.114 或者 8.8.8.8
这样获取到的谷歌DNS就可以长时间使用
如果改变,则重复执行代码即可
在 Windows 系统中获取可用 IP 的方法为,打开“命令提示符”,输入以下命令并回车:
nslookup google.cn
如果联网正常,可以获取到类似下面这样的信息,其中最后一行就是可用的 IP 地址:
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
Name: google.cn
Address: 114.250.63.34
由于 hosts 文件属于系统文件,因此需要用到系统管理员身份。这里推荐【以管理员身份】运行系统自带的“记事本”程序,通过菜单中的【打开】按如下路径打开 hosts 文件(注意,记事本程序默认只显示纯文本文件,因此需要将“文件类型”要选为所有才能看到 hosts 文件):
C:\Windows\System32\drivers\etc\hosts
最后像下面这样,将你所获取到的 IP 和 Google 翻译 API 的域名组合成一条 hosts 规则,并将其添加到 hosts 文件中的最后一行,保存文件后 Chrome 翻译功能即可恢复正常使用。
114.250.63.34 translate.googleapis.com
为简化操作,书伴将手动修改 hosts 文件的步骤写成了 Shell 脚本,只需一键即可完成所有修改步骤。脚本托管在 我的博客上面https://www.xmaven.cn/upload/2022/10/fix-google-translate-cn.sh 上,你可将其下载到本地使用,或使用下面更简单的方法。
打开“终端”,拷贝以下命令并将其粘贴到终端上,按回车,输入你的系统密码,再按回车。注意,输入密码时是不显示任何信息的,只要确保输入的密码是正确的就可以。
sudo bash -c "$(curl -sL https://www.xmaven.cn/upload/2022/10/fix-google-translate-cn.sh)"
如果看到如下所示提示,表示规则添加成功,也就可以正常使用 Chrome 的谷歌翻译功能了。
Adding the rule "114.250.63.34 translate.googleapis.com"
Done.
* 提示:终端打开的方式为,打开“访达(Finder)”,在左侧边栏找到并进入“应用程序(Applications)”文件夹,在里面找到并进入“实用工具(Utilities)”文件夹,在这里面就可以找到“终端(Terminal)”,双击打开。
此命令可以重复使用,如果 IP 没有变化则不做任何修改,如有变化则更改为新的 IP 地址。
在 macOS 系统中获取可用 IP 的方法为,打开“终端”,输入以下命令并回车:
nslookup google.cn
如果联网正常,可以获取到类似下面这样的信息,其中最后一行就是可用的 IP 地址:
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
Name: google.cn
Address: 114.250.64.34
由于 hosts 文件是系统文件,因此对其进行编辑需要用到管理员身份。这里推荐以管理员身份通过系统自带的 vim 编辑器编辑 hosts 文件。具体方法为,在终端上运行以下命令并回车,在出现密码提示后输入你为当前账户设置的登录密码再按回车即可打开。
sudo vim /etc/hosts
最后像下面这样,将你所获取到的 IP 和谷歌翻译 API 的域名组合成一条 hosts 规则,并将其添加到 hosts 文件中的最后一行,保存文件后 Chrome 翻译功能即可恢复正常使用。
114.250.64.34 translate.googleapis.com
添加的具体方法为,先按住【Shift】键,然后双击字母【G】键,将文本光标定位到最后一行,然后按字母【O】键进入插入模式,将上述规则输入(或粘贴)进来。最后按【Esc】键退出插入模式,输入 :x
保存并推出 vim 编辑器。文件保存成功后,Chrome 翻译功能即可恢复正常。
如果你有可用的网络代理,在全局模式下,Chrome 的谷歌翻译功能直接可以正常使用。如果你在 Chrome 网页浏览器中使用了代理切换插件,如 SwitchyOmega,则可以将如下所示的 URL 规则添加到代理切换的规则中(具体规则参考具体插件提供的用法)。
*.translate.googleapis.com
Windows 用户需要注意,虽然此方法可以让插件版谷歌翻译的划词翻译功能恢复正常,但是不适用 Chrome 内置的网页翻译功能(翻译整个网页),这是因为它的网络请求是独立的,不会通过网络代理插件设定的规则。因此,如果你想要用 Chrome 内置翻译功能翻译整个网页,目前只有两种选择,一种是使用“方法一”修改 hosts 文件,另一种是使用系统级的全局网络代理。
如果需要测试访问我们的https://spring.io/网站然后鼠标右键点击翻译成中文
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。