为什么存在
该平台需要在不复制或分叉底层内容模型的情况下提供多语言内容。翻译支持会创建与源文档关联的文档级语言变体,同时保留原始架构和内容结构。
适用场景
- 将一个或多个组件翻译为多种语言
- 跟踪批量翻译任务的进度
- 重试失败的翻译
- 手动纠正机器生成的翻译
- 在文档或网站应用中阅读翻译内容
- 在 CMS 中构建特定语言的文档视图
包含内容
- CMS 中的批量组件和语言选择
- 带有进度跟踪的异步翻译任务
- 基于 TensorZero 的文档翻译
- 自动跳过已是最新的翻译
- 运行中相同翻译任务的去重
- CMS 导航后恢复正在进行任务的进度
- 失败翻译的重试控制
- 持久化目标语言偏好
- 通过 PATCH 端点进行手动翻译校正
- 语言感知的文档检索
- 用于检测过期翻译的源哈希
- 支持翻译的数据库列和索引
核心工作流程
- 打开“组件”页面,并选择 发送至翻译。
- 选择一个或多个组件以及目标语言。
- 查看预估的翻译数量并将批次排队。
- 翻译管理器会加载已发布的源文档,并跳过源哈希已最新的翻译。
- 剩余的翻译通过 TensorZero 异步处理。
- 在 CMS 中监控排队、完成、跳过和失败的翻译。
- 在需要时重试失败的翻译。
- 当机器生成的输出需要调整时,手动修正翻译内容。
- 通过语言感知的架构和文档 API 阅读翻译变体。
翻译任务
提交一个批次会创建一个翻译任务。任务会记录:
- 选定的组件和语言
- 已处理的源文档
- 已调度的翻译
- 因已最新而被跳过的翻译
- 已完成的翻译
- 失败的翻译
- 当前任务状态
在存在等效任务正在运行时提交相同的选择,会重新连接到现有任务,而不是创建重复工作。
CMS 会在本地存储正在进行的任务标识符,以便在导航后恢复进度。翻译任务状态目前由翻译管理器在内存中维护,并会在服务重启时被清除。将服务部署为单实例或使用粘性路由,以确保任务提交和状态请求到达同一进程。
过期翻译检测
每个翻译文档都会存储其翻译时源文档已发布内容的哈希值。
当提交另一个翻译批次时:
- 相同的哈希表示该翻译是最新的,可以跳过
- 不同的哈希表示源内容已更改,应重新生成翻译
这使得批量翻译可以安全地重复运行,而无需重新翻译未变化的内容。
API 端点
POST /translation — 为一个或多个组件排队翻译GET /translation-jobs/{job_id} — 读取翻译任务状态与进度PATCH /translations — 手动修正翻译内容
系统界面
- CMS 批量翻译对话框
- CMS 翻译任务状态与恢复控制
- 翻译管理器 API 和后台工作器
- TensorZero 翻译集成
- CMS 特定语言的文档视图
- 文档应用的语言感知内容加载
- 翻译持久化与源哈希跟踪