草庐IT

谷歌翻译不能用的解决方案 (win和mac方案 02-25持续更新...)

谢泽的网络日志 2023-04-10 原文

自 2022 年 9 月 28 日起,谷歌翻译退出了中国市场,这也导致划词翻译里的谷歌翻译不能正常使用了。
这个功能是程序员高效看外语文档的依仗, 我会把最新的解决方案放在这里, 基本上只要我能用大家也能用。
之前提供的方法大部分已经失效,已经删除并更新了最新亲测可用方案!

方案一:修改 hosts

如何修改 hosts

自动化工具

目前有两个工具能做到自动化扫描并写入 hosts,分别为:

GoogleTranslateIpCheck:这个工具需要使用命令行 / 终端运行,上手可能有点难度
GoogleTranslate_IPFinder:这个工具带有操作界面,更容易上手
注意:这两个工具都不是划词翻译开发的,如果遇到问题,请向它们的开发者反馈。如果尝试无效,可以使用下方的步骤手动修改。

可用hosts配置列表(12月 17日更新)

使用前文的【手动修改】的方式将这条粘贴到电脑的 hosts 文件最后一行
可能会随着时间逐渐失效,那时你就需要从这里重新选一个尝试

可用hosts配置
108.177.97.100 translate.googleapis.com
142.250.157.90 translate.googleapis.com
142.251.10.90 translate.googleapis.com
172.253.118.90 translate.googleapis.com
142.251.12.90 translate.googleapis.com
142.251.8.90 translate.googleapis.com
142.250.99.90 translate.googleapis.com
142.250.107.90 translate.googleapis.com
142.251.160.90 translate.googleapis.com
142.250.125.90 translate.googleapis.com
172.253.117.90 translate.googleapis.com
172.253.114.90 translate.googleapis.com
142.250.103.90 translate.googleapis.com
142.250.100.90 translate.googleapis.com
142.250.159.90 translate.googleapis.com
142.250.1.90 translate.googleapis.com
142.250.115.90 translate.googleapis.com
172.217.214.90 translate.googleapis.com
142.250.114.90 translate.googleapis.com
142.251.6.90 translate.googleapis.com
142.251.116.90 translate.googleapis.com
142.250.128.90 translate.googleapis.com
142.250.113.90 translate.googleapis.com
172.217.203.90 translate.googleapis.com
142.251.162.90 translate.googleapis.com
172.217.215.90 translate.googleapis.com
142.251.16.90 translate.googleapis.com
142.251.120.90 translate.googleapis.com
142.251.163.90 translate.googleapis.com
108.177.122.90 translate.googleapis.com
142.250.136.90 translate.googleapis.com
142.250.126.90 translate.googleapis.com
142.250.141.90 translate.googleapis.com
142.250.30.90 translate.googleapis.com
142.250.105.90 translate.googleapis.com
142.251.107.90 translate.googleapis.com
142.251.161.90 translate.googleapis.com
172.253.125.90 translate.googleapis.com
142.250.28.90 translate.googleapis.com
108.177.126.90 translate.googleapis.com
142.251.2.90 translate.googleapis.com
142.250.8.90 translate.googleapis.com
172.253.58.90 translate.googleapis.com
142.250.152.90 translate.googleapis.com
142.251.18.90 translate.googleapis.com
142.251.5.90 translate.googleapis.com
142.250.98.90 translate.googleapis.com
108.177.127.90 translate.googleapis.com
142.250.12.90 translate.googleapis.com
142.250.153.90 translate.googleapis.com
142.250.9.90 translate.googleapis.com
142.250.142.90 translate.googleapis.com
142.250.11.90 translate.googleapis.com
142.250.112.90 translate.googleapis.com
142.250.138.90 translate.googleapis.com
142.250.111.90 translate.googleapis.com
172.253.116.90 translate.googleapis.com
142.250.97.90 translate.googleapis.com
142.250.13.90 translate.googleapis.com
142.251.4.90 translate.googleapis.com
172.253.123.90 translate.googleapis.com
142.250.145.90 translate.googleapis.com
142.251.1.90 translate.googleapis.com
142.251.9.90 translate.googleapis.com
142.250.158.90 translate.googleapis.com
142.251.15.90 translate.googleapis.com
142.250.27.90 translate.googleapis.com
172.253.113.90 translate.googleapis.com
142.250.102.90 translate.googleapis.com
142.251.112.90 translate.googleapis.com
142.250.123.90 translate.googleapis.com
172.253.119.90 translate.googleapis.com
216.58.227.66 translate.googleapis.com
172.253.124.90 translate.googleapis.com
172.253.126.90 translate.googleapis.com
172.253.112.90 translate.googleapis.com
142.250.10.90 translate.googleapis.com
172.217.192.90 translate.googleapis.com
172.217.195.90 translate.googleapis.com
108.177.111.90 translate.googleapis.com
172.253.62.90 translate.googleapis.com
142.250.31.90 translate.googleapis.com
172.217.204.90 translate.googleapis.com
142.251.117.90 translate.googleapis.com
216.58.227.65 translate.googleapis.com
172.217.222.90 translate.googleapis.com
142.251.166.90 translate.googleapis.com
142.251.111.90 translate.googleapis.com
216.58.227.67 translate.googleapis.com
142.250.96.90 translate.googleapis.com
172.253.115.90 translate.googleapis.com
172.253.63.90 translate.googleapis.com

Windows 系统(手动修改)

由于 hosts 文件属于系统文件,因此需要用到系统管理员身份。这里推荐【以管理员身份运行】系统自带的“记事本”程序,通过其菜单中的【打开】按如下路径打开 hosts 文件(注意,记事本程序默认只显示文本文件,需要将“文件类型”要选为所有才能看到 hosts 文件):

C:\Windows\System32\drivers\etc\hosts

最后像下面这样将你所获取到的 IP 和 Google 翻译 API 的域名组合成一条 hosts 规则,并将其添加到 hosts 文件中的最后一行,保存文件后谷歌翻译即可恢复正常使用。

#142.251.166.90 translate.googleapis.com
#142.251.111.90 translate.googleapis.com
#216.58.227.67 translate.googleapis.com
#142.250.96.90 translate.googleapis.com
#172.253.115.90 translate.googleapis.com
142.251.8.90 translate.googleapis.com

建议像我一样复制多个ip,如果不可用的情况下,直接注释或删除不可用的ip, 打开另一个保存测试.

其他提示: 如果保存时提示无权限,把hosts文件复制一份到桌面, 用记事本修改完之后, 鼠标拖动放回去etc目录, 提示管理员操作点"确定"

如果今后想要删掉添加的这条规则,和添加时的操作一样,打开 hosts 文件将其删除即可。

macOS 系统

由于 hosts 文件是系统文件,因此对其进行编辑需要用到管理员身份。这里推荐以管理员身份通过系统自带的 vim 编辑器打开 hosts 文件。具体方法为,在终端上运行以下命令并回车,在出现密码提示后输入你为当前账户设置的登录密码再按回车即可打开。

sudo vim /etc/hosts

最后像下面这样,将你所获取到的 IP 和谷歌翻译 API 的域名组合成一条 hosts 规则,并将其添加到 hosts 文件中的最后一行,保存文件后谷歌翻译即可恢复正常使用。

#142.251.166.90 translate.googleapis.com
#142.251.111.90 translate.googleapis.com
#216.58.227.67 translate.googleapis.com
#142.250.96.90 translate.googleapis.com
#172.253.115.90 translate.googleapis.com
142.251.8.90 translate.googleapis.com

添加的具体方法为,先按住 Shift,然后双击 G,将文本光标定位到最后一行,然后按 O 进入插入模式,将上述规则输入(或粘贴)进来。最后按esc退出插入模式,输入:x保存并退出 vim 编辑器。文件保存成功后,谷歌翻译即可恢复正常。

建议像我一样复制多个ip,如果不可用的情况下,直接注释或删除不可用的ip, 打开另一个保存测试.
如果今后想要删掉添加的这条规则,和添加时的操作一样,打开 hosts 文件将其删除即可。

方案二:使用其他翻译插件替代

谷歌翻译不可用之后,翻译插件也如雨后村村春笋般出现,插件市场搜索找适合自己。
目前我自己用沙拉查词

推荐一个插件网站
极简插件

同学们如果看到更好用的插件,可以评论大家分享

其他方案

懂的都懂,不懂的没必要懂

  1. 增加一条规则 translate.googleapis.com
  2. 开全局模式

最新解决方案

有关谷歌翻译不能用的解决方案 (win和mac方案 02-25持续更新...)的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  3. ruby-on-rails - 如何在 mac os snow leopard 中升级 ruby​​ 和 rails - 2

    我想将我的MacSnowLeopardruby​​从1.8.7升级到1.9.1版本,有人知道轻松且最好的升级方法吗?因为我读了一些论坛/帖子/博客/讨论说覆盖苹果发布的ruby不好将Rails从版本2.2.2升级到2.3.8的最佳方法是什么?因为我找到的所有信息都仅适用于豹/老虎,而且很少有关于雪豹的复杂文章。他们还说覆盖apple提供的rails不好吗。谁能帮帮我?谢谢。 最佳答案 DanBenjamin有一些greatinstructionsforcompilingandinstallingRuby,RubyGemsandRai

  4. ruby - 在不使用 RVM 的情况下在 Mac 上卸载和升级 Ruby - 2

    我最近决定从我的系统中卸载RVM。在thispage提出的一些论点说服我:实际上,我的决定是,我根本不想担心Ruby的多个版本。我只想使用1.9.2-p290版本而不用担心其他任何事情。但是,当我在我的Mac上运行ruby--version时,它告诉我我的版本是1.8.7。我四处寻找如何简单地从我的Mac上卸载这个Ruby,但奇怪的是我没有找到任何东西。似乎唯一想卸载Ruby的人运行linux,而使用Mac的每个人都推荐RVM。如何从我的Mac上卸载Ruby1.8.7?我想升级到1.9.2-p290版本,并且我希望我的系统上只有一个版本。 最佳答案

  5. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  6. 牛客网专项练习30天Pytnon篇第02天 - 2

    1.在Python3中,下列关于数学运算结果正确的是:(B)a=10b=3print(a//b)print(a%b)print(a/b)A.3,3,3.3333...B.3,1,3.3333...C.3.3333...,3.3333...,3D.3.3333...,1,3.3333...解析:    在Python中,//表示地板除(向下取整),%表示取余,/表示除(Python2向下取整返回3)2.如下程序Python2会打印多少个数:(D)k=1000whilek>1:    print(k)k=k/2A.1000 B.10C.11D.9解析:    按照题意每次循环K/2,直到K值小于等

  7. ruby - 为什么不能使用类IO的实例方法noecho? - 2

    print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上

  8. ruby-on-rails - Ruby rand() 不能接受变量? - 2

    我对此有点困惑。我在RoR项目中的最终目标是从我的数据库中获取单个随机配置文件。我想它应该是这样的:@profile=Profile.find_by_user_id(rand(User.count))它一直抛出错误,因为user_id0不存在,所以我把它的一部分拿出来检查发生了什么:@r=rand(User.count)每次都返回0。发生什么了?我注册了5个假用户和5个相关配置文件来测试这个。如果我将Profile.find_by_user_id(rand(User.count))重写为Profile.find_by_user_id(3)它工作得很好。User.count也在工作。所以

  9. Ruby 守护进程和 JRuby - 备选方案 - 2

    我有一个应用程序正在从Ruby迁移到JRuby(由于需要通过Java提供更好的Web服务安全支持)。我使用的gem之一是daemons创建后台作业。问题在于它使用fork+exec来创建后台进程,但这对JRuby来说是禁忌。那么-是否有用于创建后台作业的替代gem/wrapper?我目前的想法是只从shell脚本调用rake并让rake任务永远运行......提前致谢,克里斯。更新我们目前正在使用几个与Java线程相关的包装器,即https://github.com/jmettraux/rufus-scheduler和https://github.com/philostler/acts

  10. ruby - 为什么我不能从 ruby​​ 中的选定键创建新的散列? - 2

    这个问题困扰了我一段时间。这不是一件困难的事情,但我不知道为什么没有简单的方法来做到这一点,我敢打赌有但我没有看到。我只想取一个散列,像这样:cars={:bob=>'Pontiac',:fred=>'Chrysler',:lisa=>'Cadillac',:mary=>'Jaguar'}然后做类似的事情cars[:bob,:lisa]得到{:bob=>'Pontiac',:lisa=>'Cadillac'}我这样做了,效果很好:classHashdefpick(*keys)Hash[select{|k,v|keys.include?(k)}]endendruby-1.8.7-p249

随机推荐