目录
3524 字
18 分钟
「暂时下线,恢复时间另行通知」:功能下线公告翻译指南

周一 10:02,一封邮件。

标题:《关于部分功能升级调整的公告》。正文三段:为了提供更好的服务,我们将对系统进行架构升级;升级期间,部分功能将暂时下线;恢复时间另行通知。感谢您的理解与支持。

你关掉邮件,继续写代码。三年后,你想起那个功能,打开链接,页面还在 404。

这不是某一家的故事,而是一种文体的共同结局。功能下线公告有自己的语法:主语会消失,时间会模糊,原因会抽象,方向会被偷换。 学会读它,通常不是为了吐槽,而是为了在数据被删除之前,把自己的东西搬走。

一、公告的五种句法#

1. 主语消失术#

「经研究决定」「系统将进行升级」「相关功能将被调整」——三句话里都找不到一个能负责的人。

这不是中文特有的委婉。英文公告同样熟练地使用被动语态和名词化:a decision has been made、the service will be transitioned。语法的选择就是责任的分配:有主语,就要回答「谁决定的、为什么」;没有主语,就只剩一个既成事实。

2. 时间模糊术#

「近期」「暂时」「稍后」「另行通知」是公告里的四个时间副词,它们共同的特点是:不能用来排期。

真正的计划通常有日期。没有日期的「暂时」,在项目管理里有一个更准确的名字:未排期。它可能真的只是暂时——故障恢复、合规审查、临时维护都属于这一类——但真的暂时会有状态页、有负责人、有下一次更新。什么都没有的「暂时」,只是一个礼貌的时态。

3. 原因抽象术#

「业务调整」「架构升级」「聚焦核心业务」是三块万能挡箭牌。

它们并非全是假话,只是把一句很具体的话压缩成了一个名词短语。展开之后通常长这样:

  • 这项业务不赚钱,或者成本高于收益;
  • 维护它的人已经走了,没人愿意接手;
  • 它和新战略不再一致;
  • 继续维护它的安全成本超过了收入。

Heroku 在 2022 年关闭免费套餐时,用的是「把资源集中到 mission-critical 能力上」,同时明确提到了免费套餐带来的欺诈和滥用成本。这个说法至少承认了取舍:谁受益、谁承担成本。 相比之下,只写「业务调整」的公告,把取舍藏进了名词里。

4. 方向偷换术#

2021 年,微软宣布 IE11 退役时,标题是:The future of Internet Explorer on Windows 10 is in Microsoft Edge.

这句话每个词都是真的,但它把「一个浏览器要停止支持了」说成了「它的未来在另一个浏览器里」。Google 关闭 Inbox 时也用了同样的手法:标题叫「Inbox is signing off」,正文重点放在「把 Inbox 最好的功能带进 Gmail」。

翻译过来是:产品停止,品牌保留,部分功能迁移,剩下的功能不保证。 这是一种高明的写法——它没有撒谎,只是把读者的注意力从「失去什么」引到了「去哪里」。

5. 责任外移术#

「用户习惯发生了变化」「行业环境发生了重大变化」「使用率持续下降」——这类句子把公司的商业决定,描述成对客观规律的服从。

Google Reader 在 2013 年的告别信里就把原因写成「使用率下降」,同时表示公司要把精力集中到更少的产品上。这句话是诚实的,但它回答的是「为什么可以关」,不是「为什么必须关」。使用率下降的产品很多,关不关仍然是一个决定。

中文互联网最著名的一次公告修辞,大概要数 2010 年那封《致广大 QQ 用户的一封信》:「我们刚刚作出了一个非常艰难的决定。」这句话后来成了一个梗,因为它精准地展示了一种语法:决定已经做完了,艰难是留给你感受的。

二、逐条翻译#

公告原文可以怎么翻译建议动作
暂时下线没有回归日期,回来的概率不高立刻导出数据
恢复时间另行通知大概率不会有第二次通知当作永久下线处理
停止新用户注册第一阶段,通常还有 6–18 个月不要在这里开新项目
进入维护模式只修安全漏洞,不再加功能开始规划迁移
架构升级数据模型或 API 会变,旧数据不保证迁移查兼容性和导出格式
与 XX 整合独立产品消失,部分功能会被砍确认功能保留清单
聚焦核心业务这项业务不赚钱,或成本高于收益找替代方案
交给合作伙伴运营条款、隐私政策、价格都会变重读服务协议
我们作出了一个艰难的决定决定已经做完,不接受讨论看补偿和退款条款
感谢您的理解与支持公告结束,不做问答去社区找迁移方案

最后一行需要补充一句:「理解与支持」不是请求,是通知。 它出现在公告末尾,作用是给整件事画句号,而不是开启一场讨论。

三、为什么公司要这样写#

把所有模糊措辞都归因于「鸡贼」,有点偷懒。这些句子之所以稳定地出现,是因为公告同时要满足好几拨读者的需求。

法务和合同。 没有确定的日期,就不能在公告里写死日期。写死就是承诺,可能构成违约,也可能被拿去做集体诉讼的证据。「暂时」保留了后续解释的空间。企业客户通常另有 SLA 和通知期条款,所以同一件事会有两套措辞:给个人的公告,和给客户的合同附件。

商业。 公告的读者不只是用户,还有现有客户、潜在客户、投资人和员工。直接宣布「这个产品死了」,会加速用户流失、影响续费、打击团队士气。于是坏消息通常要配一个好消息:「同时,我们上线了新的体验。」

工程。 下线很少是一个开关,而是一条流水线:停止新注册 → 停止新内容写入 → 只读 → 停止登录 → 导出窗口关闭 → 删除数据。公告往往只写第一阶段,因为后面几阶段的日期还没有排出来。这不是故意隐瞒,很多时候写公告的人自己也不知道。

组织。 一份公告通常要经过产品、法务、公关、市场好几轮修改。每一轮都会拿掉一点具体信息,加上一点「感谢理解」。最后发出来的版本,往往是最不冒犯、也最不可执行的版本。

理解这些约束,不等于接受所有措辞。关键区别在于:模糊可以是策略,但不能是全部。 一份公告的诚实度,不取决于它用了多少形容词,而取决于它有没有给出可验证的承诺:日期、导出、迁移路径。

四、读公告的七个检查项#

收到下线通知时,按顺序检查这七件事:

  1. 具体日期。 停止注册、停止写入、删除数据分别在哪一天?只有一个「近期」,就按最坏情况准备。
  2. 阶段时间线。 是停新用户,还是停所有写入?「只读」阶段通常是你最后的导出窗口。
  3. 数据导出。 有没有官方导出工具?导出格式是开放的 CSV/JSON,还是只有它自己认识的专有格式?截止日期是哪天?
  4. 退款与补偿。 按比例退款、代金券,还是「剩余时长折算到新产品」?后者通常意味着你被绑定到了下一个产品。
  5. 企业合同。 如果你用的是企业版,SLA、数据保留期、专属通知期是否适用?个人公告里的日期不一定适用于你。
  6. 机器可读信号。 API 有没有返回弃用信息?Sunset 和 Deprecation 两个 HTTP 响应头已经标准化,脚本可以直接监控。
  7. 归档与依赖。 文档、SDK、容器镜像、域名和证书还能拿到吗?很多服务关停后,官方文档最先消失,而你的构建脚本还在引用它。

第 6 项值得展开。Sunset 响应头由 RFC 8594(2019 年)定义,用来告诉客户端资源将在某个时间点停止可用;Deprecation 响应头由 RFC 9745(2025 年)定义,用来标记资源已弃用。两者可以同时出现:

HTTP/1.1 200 OK
Deprecation: @1688169599
Sunset: Sun, 30 Jun 2024 23:59:59 UTC
Link: <https://developer.example.com/deprecation>;
rel="deprecation"; type="text/html"

Deprecation 的值是 Structured Fields 的日期(Unix 时间戳前加 @),Sunset 的值是 HTTP-date。这两个头最大的价值不是给浏览器看的,而是给监控脚本看的:你可以在服务真正消失之前,让 CI 或巡检任务替你发现它。

只发一篇博客公告、不返回任何机器可读信号的服务,等于把监控责任完全交给了用户的记忆。而用户的记忆,通常不如用户的待办列表可靠。

五、好公告长什么样#

先看真实世界的通知期:

服务宣布时间停止或退役时间提前量
Adobe Flash2017-07-252020-12-31约 41 个月
Internet Explorer 112021-05-192022-06-15约 13 个月
Google Reader2013-03-132013-07-01约 3.5 个月
Heroku 免费套餐2022-08-252022-11-28 开始关闭约 3 个月

这四行数据说明一件事:通知期的长度,本身就是产品对用户依赖程度的一次定价。 Flash 需要给内容创作者留出重做整个网站的时间;IE11 需要给企业留出浏览器迁移的预算周期;一个免费 PaaS 套餐的迁移成本低,所以三个月看起来也「够用」。

如果你是发布公告的一方,下面这份清单可以直接抄:

  • 一次给全时间线:停止销售、停止新注册、只读、停止写入、删除数据,各是哪天。
  • 至少两次提醒:T-90、T-30、T-7。别假设邮件能送达,很多用户早就换了邮箱。
  • 给导出工具和开放格式:CSV、JSON、标准压缩包。30–90 天的窗口是底线,不是美德。
  • 给迁移映射表:不是「请使用新产品」,而是「旧功能的哪一项,对应新产品的哪一项;哪一项没有了」。
  • 给机器可读信号:Sunset/Deprecation 头、changelog、RSS、状态页,至少有一个能被脚本订阅。
  • 遵循公开的弃用政策:Kubernetes 的规则是 Beta API 在弃用后至少再服务 9 个月或 3 个 minor release(取较长者);Stripe 的做法是固定 API 版本,升级由用户发起。两者都把「什么时候必须迁移」变成了可预期的事。
  • 如果写「暂时」,就写清回归条件:什么情况下会回来、由谁决定、下一次更新是什么时候。否则「暂时」会变成一句没有期限的谎。

六、用户侧的操作系统#

作为用户,你控制不了公告的措辞,但可以控制自己的暴露面。

订阅 changelog,而不只是订阅营销邮件。 下线公告通常发在开发者博客、changelog 或状态页,而不是「新品推荐」的邮件列表里。

定期导出,按 3-2-1 备份。 三个副本、两种介质、一份异地。对个人数据来说,这个规则听起来过度,但它的真正作用是让你在下线公告出现时,不需要在 48 小时内完成一次仓促的迁移。

优先选择开放格式和可自托管方案。 这不是要求所有服务都开源,而是说:当导出格式是标准格式时,你的迁移成本从「重做」降到了「导入」。

在「只读」阶段之前行动。 导出工具通常是最先失修的那部分——产品团队已经在做别的事了,没人会为一个月后就要删除的功能修 bug。

把每一次下线当成一次迁移演练。 真正需要练的不是导出按钮在哪,而是:你知不知道自己有哪些数据放在哪些服务里?哪些是唯一副本?哪些有合同保护?这些问题平时没人问,下线公告会替你问。

在欧盟,GDPR 第 20 条给了个人数据可携带权:你有权以结构化、通用、机器可读的格式取得自己的数据,并传输给另一个控制者。这是一条有用的兜底条款,但它兜的是「数据」,不是「服务」;它也不能替代你自己的备份。

写在最后#

「暂时下线」是产品语言里的「我晚点回你」。

区别是,人还会回消息。

判断一份公告,不看它用了多少形容词,只看三样东西:日期、导出、迁移路径。 三样都有,哪怕它写「永久关闭」,你也可以体面地告别;三样都没有,哪怕它写「很快回来」,你也该开始备份。

毕竟,404 页面从来不会写「暂时」。

参考来源#

延伸阅读:本博客还有两篇讲「同一类语言问题」的文章——《技术黑话词典:从「在我机器上是好的」到「这是个特性」》讲开发过程中的内部黑话,《技术写作心得:如何写出清晰的技术文档》讲怎么把这类信息写清楚。

「暂时下线,恢复时间另行通知」:功能下线公告翻译指南
https://www.hehonglei.cn/posts/feature-shutdown-announcement-translation-guide/
作者
Honglei He
发布于
2026-10-25
许可协议
CC BY-NC-SA 4.0