← 返回

wbw

Wait But Why 中译站,把 Tim Urban 的长文抓下来翻成中文,自用阅读。


2026 生产中 VitePress · TypeScript · cheerio · Claude Opus 4.7

为什么做

Tim Urban 的长文是我最喜欢的英文写作之一,但每次读完一篇要花两小时,中间还得停下来查词、切窗口。市面上零散的中译版本要么翻得像论文、要么只翻了热门几篇。想给自己攒一个能沉浸阅读的中文版本,顺便看看 Claude 4.7 能把这种带口语、破折号、括号吐槽的风格翻到什么程度。

怎么实现

  • scrape.ts:cheerio 解析 WBW 页面,turndown 转 Markdown,图片下到本地
  • translate.ts:分块喂给 Claude Opus 4.7,system prompt 里锁死”保 Tim 的语气 / 段落数对齐 / 专有名词首次出现带英文原文”
  • build-post.ts 一条命令编排:抓 → 翻 → 写 md → 重建 sidebar
  • 英文原文和 meta 缓存在 .cache/,改 prompt 重翻不用重新抓页面和图
  • VitePress 静态输出,深色阅读器风格,橙色 accent

学到了什么

翻译的瓶颈不在模型能力,在 prompt 的约束密度。早期版本让 Claude “自然翻译”,出来的东西全是”综上所述”、“值得注意的是”这种学术腔,Tim 的碎嘴子全没了。改成显式列 7 条硬约束(结构 1:1 / 保口语 / 段落数对齐 / ……)之后风格立刻回来了。

另一个反直觉的点:翻译长文不要一次性喂完。分块之后每块单独翻,反而比整篇喂给大 context 的效果更稳定 —— 大概是因为每块都能拿到”完整的注意力预算”。