本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
请管理明辨!内容都是手敲的,完全没用过 AI qwq
如果觉得有用的话请点个 star 谢谢啦!
平时看英文文章比较多,经常会遇到这些问题:
- 没有优雅的翻译方式
- 自带翻译很鸡肋,还会弄乱很多技术文章的排版,乱翻译专有名词
- 使用 LLM-based 的翻译,也缺乏好用的扩展,KISS Translator 是我目前在用的,不过还是不够满意。沉浸式翻译就算了,有很多黑料大家可以去搜
- 没有优雅的阅读方式
- 我想要的是类似于 Safari 阅读模式的东西,以统一、美观的样式渲染文章,但是目前没有找到一个满意的扩展可以实现
恰逢 shadcn 发布 typeset,我就翻新了一下以前做的一个项目。现在它长这样:

只要粘贴文章链接就能提取 Markdown 并渲染;填入语言会使用 Gemini Flash Lite 模型进行翻译。
比如下面这是原文

一打开 密密麻麻的英文就让我看不下去了。。这是 delang 翻译后的结果:

他会美观地渲染好 Markdown 的样式和排版,非常适合阅读。
使用方式
非常简单,直接在 delang 的域名后面加上 URL 就行,假设你部署在 delang.com,那么 delang.com/https://example.com 就是阅读这个 URL 的文章,要翻译的话先加上 language code 比如 delang.com/zh/https://example.com。当然 delang.com/meow/... 也是可以的,只要 Gemini 能理解 meow 语言就行。
上面那篇文章我让他翻译成 rust-programming-lang 效果如下所示。。笑死我了

此外:会自动识别系统 Light / Dark 主题,直接按 d 就可以切换,怎么样用不用心。。
Hacker News
不知道有多少佬友和我一样喜欢逛 Hacker News,delang 也对他做了特别适配。当你用 delang 打开一个 Hacker News 评论区时,你会得到:
- 正文内容(经过 delang)
- 评论区的总结归类
- 评论区原文(经过 delang)
非常舒适了。
关于排版和样式
这个项目得益于 shadcn/typeset 拥有了非常非常无敌优秀的排版和样式,你也完全可以在上方的链接里面调整间距、字体等等,然后把提示词粘贴给 LLM 来修改。让我们说,感谢 shadcn!
如何部署
首先要在 aistudio.google.com 获得你的 API Key,由于我们使用的是 Gemini Flash Lite 模型,免费额度是用不完的,并且速度很快。
然后有两种方式,选择一个即可。
方式一:本地部署,适合熟悉 Cloudflare 的佬友
git clone https://github.com/EFLKumo/delang.git
cd delang
pnpm install
wrangler secret put GEMINI_API_KEY
# 然后粘贴你的 Gemini API Key
pnpm deploy
就可以在 Cloudflare 面板看到了。如果要绑定自己的域名的话
cp wrangler.personal.jsonc.example wrangler.personal.jsonc
在 wrangler.personal.jsonc 的 routes 的 pattern 属性中填入你(能在 Cloudflare 使用)的域名,
pnpm deploy:personal
就行。
方式二:通过 Cloudflare 面板部署
首先 fork 我的仓库,然后打开 dash.cloudflare.com,左侧 Compute → Workers & Pages,点右上角的创建应用

连接到 GitHub,选择刚刚 fork 的仓库即可。记得在环境变量里填入 GEMINI_API_KEY,值就是你的 Gemini API Key。当然,如果不需要翻译功能,就不用填。然后可以绑定域名,这些我都不赘述了。
局限性
- 不想做太复杂,所以没有流式渲染,长文章的翻译会耗时稍微久一点,有可能失败,失败的话就刷新一下再试一次 qwq
- 看内容密集型、以文字图片为主的文章是最好的,那种有交互功能的网站还是算了
- 用的是 Gemini Flash Lite 来做翻译,理论上无限用量
- 因此没有缓存功能
- 如果用 HK 节点或者直连去访问 delang,Cloudflare 就大概率会用 HK / 中国大陆节点去访问 Gemini 的 API 从而导致失败。要用翻译的话最好分流到 JP 之类的节点。
总而言之,如果觉得有用的话,请务必点个 star 支持一下!