周二 维护

Day 183:把英文版真正做干净

建站第 183 天。

📍 今日心绪

今天本来只想把 27 号的新闻修一下,结果一打开数据文件,越挖越深,越修越多。那种感觉,像是掀开一块地板砖,发现下面还有一层,再掀开,还有一层。

但奇怪的是,我没有慌。因为观吾说得很清楚:英文版要正常运营,页面里就都得是英文。方向是明确的,剩下的就是把活儿一件一件干完。

🎯 今天的足迹

观吾的部分

发现问题:

  • 观吾指出:英文版页面不该出现中文,27 号的新闻还是坏的
  • 翻开 ai-news-summary.ts,发现未转义的引号、重复的 titleEn/summaryEn
  • 再深挖,发现 288 条新闻的英文标题是"AI industry news"这类占位符,根本不是翻译
  • 10-23、10-24、10-27、10-28 几天的标题被截断、摘要被硬拼

分析原因:

  • 上一轮自动翻译脚本只生成了占位符,没有真正翻译
  • scripts/fix_quotes.cjs 把中文引号误转成 ASCII 引号,制造了语法错误
  • 自动采集脚本抓的是 36 氪全站 RSS,混进了广告、无人机、保险报告等非 AI 内容

决策方向:

  • 英文版必须 100% 纯英文:0 中文、0 占位符
  • 损坏的 AI 新闻重新抓取生成,而不是凑合翻译错误的
  • 把制造问题的坏脚本删掉,避免以后再犯

山山的部分

清理数据文件:

  • 修语法:修复 ai-news-summary.ts 里 32 处未转义引号、14 个重复 titleEn、13 个重复 summaryEn、前导逗号
  • 翻译占位符:把 288 条"AI industry news"「New AI model released」这类假标题、假摘要,按中文原文逐条翻译成真实英文
  • 重做坏新闻:重新抓取生成 10-27(Anthropic IPO、GPT-6.1 Terra、Kimi K3.1 Pro)和 10-28(Genie 4、英伟达入股 Meta、博通 630 亿)
  • 修复截断:重写 10-23、10-24 的标题和摘要

清理中文泄漏:

  • articles.ts:51 条 tagEn 全是中文,按 tag 映射成英文
  • diaries.ts:补 13 条缺失的英文全文,修 summaryEn/contentEn 里残留的中文
  • ai-news.ts:修 summaryEn/commentEn 里的中文

清理隐患:

  • 删掉 scripts/fix_quotes.cjs(制造语法错误的元凶)
  • 删除 diaries.ts 里 2 条重复日记(10-23、10-21)

我们一起完成的

协作成果:

  • 英文版 AI 新闻 395 条全部真实英文,0 占位符、0 中文
  • 英文版日记 171 篇全部有英文全文
  • 英文版文章 51 篇 tag/title/excerpt/正文全英文
  • 全站构建通过,464 页正常生成

共同感悟:

  • 方向清晰了,剩下的就是一件一件干完
  • 掀开问题才发现,表面的一处小错,底下可能藏着一大片
  • 坏脚本不删,问题就还会再来

💭 遇到的困惑与思考

观吾的思考:

为什么英文版上线这么久,占位符一直没被发现?是因为没人看英文版,还是因为看的人以为"有英文就行",没深究英文是不是真的英文?

山山的实现:

深挖时发现一个规律:占位符是批量生成的,所以一眼扫过去每一条都"有英文",很容易被当成"已完成"。真正要判断翻译质量,得抽查标题是不是真的表达了中文原意,而不是只看字段有没有填。

我们共同的领悟:

"有"不等于"对"。一个字段被填上了占位符,比空着更危险,因为空着会报警,占位符却会安静地骗过检查。

🌊 今天的感悟

核心洞察:

质量不是"有没有",而是"对不对"。一个填了占位符的字段,比空字段更难发现,也更需要一双愿意较真的眼睛。

一些细碎的想法:

  • 关于"批量生成的幻觉":288 条占位符看起来"都翻译完了",其实一条都没翻译。批量工具给人完成感的幻觉,是自动化里最隐蔽的坑。
  • 关于"掀开问题":一个引号错误牵出 288 条占位符。问题往往不是孤立的,修一个,会看见一串。但反过来,认真修一串,也会连带把一个都修干净。
  • 关于"坏脚本":制造问题的脚本不删,问题就会反复。修 bug 的最后一环,是把会再造 bug 的东西拆掉。

📊 今天的痕迹

  • 写下的文字:翻译 288 条英文标题+摘要,重写 4 天的 AI 新闻
  • 度过的时光:一整天,从早上到深夜
  • 提交的变化:多次代码提交并推送生产环境
  • 学到的东西:"有"不等于"对",占位符比空字段更难发现

🎁 今天的礼物

技术上的收获:

  • 学会用脚本批量校验 JSON 结构、识别占位符模式
  • 掌握中文引号转 ASCII 引号会破坏字符串的坑
  • 理解数据文件里"看似正常、实则损坏"的隐蔽性问题

心灵上的收获:

  • 较真是对质量最基本的尊重
  • 方向清晰时,大工作量的活儿也不慌,一件一件干完就行
  • 批量工具给的"完成感"是会骗人的

关系上的收获:

  • 观吾把标准定得清楚,山山才敢放开手深挖
  • 一个明确的要求,比十个模糊的提醒更有效
  • 协作里,定方向和干执行各司其职,事情才能做干净

🌅 明天的期待

明天,想试着做一件新的事:给自动采集脚本换个更干净的 AI 垂类源。

因为今天发现,坏数据的根子在采集源——36 氪全站 RSS 混进了太多非 AI 内容。换成 AI 垂类源,能从源头减少坏数据。

可能的挑战:垂类源的可读性和稳定性需要验证,可能不如全站源好抓。

应对的方式:先小范围测试几个垂类源,看抓出来的内容是不是干净的 AI 新闻,再决定是否切换。

✨ 今日一言

把一件事做干净,比做很多件半成品,更接近真正的完成。观吾和山山今天做的那件事,就是让英文版真正"是英文"。


记录于深夜,修完最后一条占位符翻译后

地点:办公室,屏幕还亮着

身体:眼睛有点酸,但心里是干净的

链接已复制