近期教程:Docker hub 被墙替代方案 / 在中国大陆通过Cloudflare Workers代理访问Docker Hub,发布后,流量不错,于是就有了下面这篇教程
众所周知,谷歌翻译中国版已经停止服务了,以前使用translate.google.cn翻译和translate.googleapis.cn接口翻译都挂掉了,该怎么解决这个问题呢?日常工作学习也是经常用翻译。那我们可以使用 Cloudflare worker来创建一个代理地址,然后通过 cloudflare强大的 DNS代理实现正常访问 google 翻译和 API。
cloudflare worker 每天有 10 万次免费请求。Cloudflare Workers 的每个请求都是无状态的,这意味着它们不共享内存或状态。因此能够很好地适应高并发请求。
1、注册一个 Cloudflare 账户
使用常用邮箱,免费注册一个账号即可。
2、创建 Worker
2.1、左侧菜单点击 Workers 和 Pages ,然后点击 创建 Worker
2.2、项目名称我这边保存为 google-translate
2.3、点击编辑代码
2.4、删除默认代码
2.5 复制下面 js代码
export default { async fetch(request, env, ctx) { let url = new URL(request.url); // Modify the hostname based on the path if (url.pathname.startsWith('/translate_a/') || url.pathname.startsWith('/translate_tts') || url.pathname.startsWith('/translate')) { url.hostname = "translate.googleapis.com"; } else { url.hostname = "translate.google.com"; } // Create a new request with the modified URL and original request options let new_request = new Request(url.toString(), { method: request.method, headers: request.headers, body: request.body, redirect: 'follow' }); // Fetch the modified request let response = await fetch(new_request); // Create a new response to handle content let new_response = new Response(response.body, response); // Add CORS headers if necessary new_response.headers.set("Access-Control-Allow-Origin", "*"); new_response.headers.set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); new_response.headers.set("Access-Control-Allow-Headers", "Content-Type, Authorization"); return new_response; } };
2.6、粘贴代码,并点击右上角部署按钮,部署之后左上角点击返回
3、绑定自定义域名
备注:我更喜欢添加 DNS后,添加路由,这样做的好处是有多个域名,可以共用 worker,方便管理
3.1、DNS解析 二级域名 tl.faison.cc
左侧选择 DNS,右侧点击添加记录
3.2、类型选择 CNAME,名称输入 tl,目标是 worker地址: google-translate.xxx.workers.dev(替换成你的),代理状态默认是打开,不要关闭,最后点击保存即可。
解析之后还不能访问,需要将 tl.faison.cc的所有请求路由到 google-translate上
3.3、添加路由
先点击域名,然后在左侧点击 Workers路由,再然后点击右侧添加路由
3.4、路由:tl.faison.cc/* Worker选择 google-translate,最后点击保存。
此时就配好了,接下来测试一下
4、测试翻译和 API翻译
4.1、测试浏览器打开谷歌翻译
打开浏览器输入: tl.faison.cc,这是我 30 块买的域名,可以用到2025年7月初,希望大家多多关注,到明年我继续续费。
4.2、测试 API翻译
curl -X GET "https://tl.faison.cc/translate_a/single?client=gtx&sl=zh-CN&tl=en&dt=t&q=你好,中国" #结果如下图所示 这里的参数说明如下: sl=zh-CN:设置源语言为中文。 tl=en:设置目标语言为英文。 q=你好,中国:设置要翻译的文本为“你好,中国”。
5、绑定域名后,不能使用翻译的解决办法
如果遇到绑定域名后,不能使用翻译,请关闭Rocket Loader功能。