当翻译不再只是一个任务

起初,这只是“又一种语言”。一个重复的条目。几处复制的字段。有人复核关联关系。另有人修正格式。很烦人,但还能应付。
然后内容继续增长。
更多页面。更多组件。更多动态区块。更多人在接触相同的条目。突然间,翻译不再是一个任务——而变成了一个流程。这个流程开始在那些难以言明但容易体会的地方消耗时间、信心和一致性。
更糟的是,从技术上看并没有出错。页面可以发布,内容存在。然而每新增一个语言区域都会增加摩擦。每次更新都让人感觉有风险。每一个手动步骤都可能成为问题悄然发生的地方。
到这一步,团队通常开始争论工具、成本或人手。
那是错误的讨论方向。
真正的问题不是语言,而是规模。规模不在乎你多么小心——它只对系统做出反应。
本案例研究探讨了当翻译被视为基础设施,而不是一个功能或一个按钮时会发生什么。
为什么不使用 Strapi 内置的 AI 翻译器?
它并非自动化,对批量翻译的支持有限,仍然需要手动设置关联、发布页面和处理图片。一旦一个小团队要管理超过 10 种语言,靠人工处理就不再现实。
解决方案架构与数据流
为 Strapi CMS 定制的翻译扩展,将翻译作为后台任务处理并提供实时进度跟踪,支持处理组件、动态区块和 blocks 等复杂嵌套内容结构,并保留 HTML、Markdown、URLs、占位符及其他特殊格式。

它还支持任务取消、重试逻辑和健壮的错误恢复,并提供一个精致的管理界面,允许用户轻松选择模型并配置翻译设置。
主要功能
后台作业系统

翻译作为由专用作业管理器管理的后台作业进行处理。这使得可执行长时间运行的操作、实时进度跟踪、取消和重试成为可能,而不会阻塞 Strapi 管理界面。
智能内容抽取

内容抽取器会遍历 Strapi 条目、组件和动态区域,定位可翻译字段,同时保留不可翻译的结构(如 ID、关联和媒体引用)。
多模型支持

该翻译器支持多种 OpenAI GPT 模型,团队可根据项目和目标语言在成本、速度与质量之间进行权衡。
智能批处理

字段被分组为批次,以在保持速率限制内的同时提高 token 使用效率。该批处理是能在 24 小时内处理 1000+ 页面 的关键。
翻译行为设置

管理员可以配置内容应当如何字面或宽松地翻译,是否保留品牌术语,以及如何处理占位符、HTML 和 Markdown。
发送给 GPT 模型的提示(prompts)是可配置的,允许针对每个项目调整语气、正式程度和地区偏好。
关联处理

系统在翻译后会尊重并重建条目之间的关联,以确保本地化内容在各语言/地区之间保持正确链接。
吞吐量与 1000 页估算
假设每页平均有 50 个可翻译字段,目标语言为 5 种:
1000 页 × 50 个字段 = 50,000 个需翻译的字段
50,000 个字段 ÷ 20 的批次大小 = 2,500 次 API 调用
2,500 次调用 × 平均 5 秒 = 12,500 秒 =
约每种语言 ~3.5 小时
5 种语言 × 3.5 小时 = 约 17.5 小时 总计
+ 开销(抽取、保存、关联) = 约 20–24 小时接下来
一旦内容达到一定规模,所需的工作量将不再与规模线性增长。
在十页时可行的方案,在一百页时会悄然失效。一种语言中看起来可控的工作,在十种语言中会变得脆弱。原因并非人们不再关心——而是手动流程无法应对增长。
最代价高昂的失败往往不易察觉。它们表现为对编辑内容的犹豫、害怕发布,或是没人再完全信任的工作流程。当这些问题变得明显时,通常已经存在相当长一段时间。
正是这一认识把我们带到了这里。
这个翻译系统起初并不是作为一个产品或功能诞生的——它是对生产环境中真实约束的回应。很快就明白,这个问题并非只存在于某个团队或某个项目。
所以我们决定开源它。
我们正在准备将整个系统开源——不是演示,也不是简化示例,而是运行该生产级管道的实际基础设施。作业系统、内容处理逻辑、批处理策略、保障机制——一切使其能在规模上运行的部分。
我们目前正在完善文档并修整最后的粗糙处,然后发布代码仓库。
如果你想知道何时上线、获得提前访问权限或关注其公开演进,请订阅。
我还会分享从构建和运行类似系统中得到的实用经验——CMS 扩展、生产环境中的 AI,以及教程中看不到的权衡取舍。
不炒作,不空话,只有真正可用的东西。
如果这听起来有用,你知道该怎么做。
