Skip to content
better-i18n.com

发布是让译文对你的应用真正生效的一步。在发布之前,你写下的一切只存在于面板中。

中间既没有构建,也没有部署。

会发生什么

Code
Publish
  → 译文被写入 CDN 源站
  → 已变更的部分清除缓存
  → 你的应用在下一次请求时取到新版本

具体操作

  1. 打开你的项目
  2. 点击 Publish
  3. 读一读它列出的内容——这才是重点
  4. 确认

弹窗会准确列出即将上线的内容,并做了分组,让你能亲眼看到,而不是仅凭一个数字。

确认之前先看清列表

草稿也会一并发布。 这一点常让人意外,所以直说:发布操作同时包含已批准的译文草稿。API 自身的默认行为是仅发布已批准的;面板刻意放宽了这一点,好让弹窗列出的内容就是真正发出去的内容——显示“12 条就绪”却只发布 9 条会更糟。

由此可知:草稿并不意味着“不能上线”,而是“还没有人为它背书”。如果你需要审批成为真正的关卡,请在发布前完成审校,而不要指望状态本身拦住内容。参见如何审校并批准译文?

访客多久能看到

CDN 以一分钟缓存提供译文,发布会清除已变更的部分——所以通常的答案是几秒,而一分钟是上限

可能额外引入延迟的层:

延迟
CDN 边缘发布时清除;否则 max-age=60
SDK 内存缓存最长为其刷新间隔
Next.js ISR你设置的 revalidate

如果你的应用在构建期渲染译文,或者把它们缓存一小时,那个数字来自你,而不是我们。我已经发布,但应用仍显示旧译文会带你找出是哪一层在拖后腿。

使用 CLI #

Bash
better-i18n publish:status   # 现在发布会上线哪些内容
better-i18n publish          # 执行发布

在流水线中先运行 publish:status 很值得——对于“还有没有待发布的内容”,它给出的是诚实的答案。

没有回滚

发布不做版本管理,也没有可恢复的快照。修复一次错误发布,就是修改译文后重新发布——大约一分钟,因此很少构成危机;但这也意味着审校发生在按钮之前,而不是之后。

每一次发布都会记录为一个可查看的任务:

Bash
better-i18n syncs list
better-i18n syncs get <syncId>

它告诉你发生了什么、什么时候发生的,但不会撤销它。

下一步