浏览帮助中心

使用 API 实现 Transept 自动化

Vitalii Vlasiuk 维护Co-founder

编辑器能实现的所有功能,脚本同样可以完成。API 旨在将 Transept 接入您的流水线(如 CMS、本地化任务或 CI 环节),让翻译流程无需手动打开应用即可自动运行。

如何获取 API 密钥?

设置 → 开发者中创建个人 API 密钥。所有方案(包括免费版)均可使用——没有额外门槛,使用限制仅取决于您的 Wörter 余额。为密钥命名,并可选择设置有效期,在密钥显示时复制其内容:它只会显示一次,且之后无法再次查看。您可以随时在同一页面撤销密钥。

请求使用 Authorization: Bearer tsk_live_… 请求头中的密钥进行身份验证——密钥仅限放在请求头中,严禁出现在 URL 中。

密钥的创建与撤销均在“设置 → 开发者”中进行。

如何通过 API 导入文档?

通过纯文本、HTML 或 Markdown 创建文档,或者上传文件——支持应用所接受的所有格式。您还可以导入字符串表 (.tstrings.json):这是一种用于 UI 文本或游戏字符串的结构化格式,其中每个字符串都是一个带有固定键名和专属上下文的单元。上下文包含关于该字符串的用途、出现位置、字符限制以及占位符含义的注释。所有这些信息都会提供给模型,像 {name} 这样的占位符会受到保护,防止被删除或重命名,并且复数形式会根据语言进行扩展(一个英语形式在德语中会变为两个,在乌克兰语中则变为四个)。文件中已有的任何译文都会按原样免费导入,并立即填充翻译记忆库

如何在一次调用中跨语言运行?

批量运行可以一次性翻译成多种语言。只需指定文档、要运行的 Workflow 或模板以及目标语言,Transept 就会自动创建缺失的语言版本并为每个版本运行 Workflow。您可以使用同一个 ID 跟踪整个流程——通过轮询该 ID 即可查看各语言的进度以及是否正在等待审核。

对于重复运行,请重新提交字符串表的当前文件,Transept 会自动识别发生的变化:未更改的字符串将保留其译文(以及已完成的任何审核),且运行仅涉及新增或确实发生更改的单元——这是仅运行已更改内容功能的 API 版本。创建任务的调用还接受 Idempotency-Key 请求头,因此在网络波动后重试将返回原始结果,而不会生成第二个文档或产生第二笔费用。

如何通过 Webhook 获取推送事件?

无需轮询,只需注册一个 URL,Transept 就会在运行完成或失败、审核就绪、上传处理完毕或导出就绪时推送事件。每次推送都包含一个 HMAC-SHA256 X-Transept-Signature: t=…,v1=… 请求头,以便您的接收程序验证其确实来自我们;对于发生故障的端点,系统会在将其关闭前进行带有退避策略的重试。

Notion 触发器:授予 Transept 页面访问权限

Workflow 也可以通过 Notion 数据库自动化自动运行:只需将自动化的 Webhook 指向触发器 URL,Transept 就会对发生更改的页面运行 Workflow。但有一点需要注意:Notion Webhook 本身从不携带页面内容——它仅告知是哪个页面触发了操作。由于 Transept 需通过您的 Notion 连接来读取该页面,因此必须同时满足两个前提条件,否则每次触发都会因访问错误而被拒绝,且触发器卡片会显示“无法读取 Notion 页面”的提示:

  • 在 Transept 中连接 Notion——位于设置 → 集成。这是让 Transept 代表您进行读取的一次性 OAuth 链接。
  • 在 Notion 内部将源数据库共享给该集成——打开数据库(或页面),点击 ••• 菜单,选择连接,然后添加 Transept。仅在“设置”中连接 Notion 并不代表授予了特定数据库的访问权限;若缺少这一步,即便连接已建立,页面也依然无法读取。
  • 针对属性更改触发,而非仅限正文编辑。 Notion 自动化会在属性更改(以及新增页面)时触发,因此仅编辑页面正文可能不会触发任何操作。可靠的做法是让自动化程序监视一个状态属性——只需切换状态(例如切换至“准备翻译”),该变更就会调用触发器。

API 参考文档在哪里?

完整的端点列表以 OpenAPI 规范的形式发布,您可以将其导入 n8n、Zapier 或代码生成器:您可以在 Transept API 的 /public/v1/docs 路径下浏览,或在 /public/v1/openapi.json 获取原始 JSON 数据。通过 API 启动的运行将与应用内编辑器一样,严格按照 Wörter 数量计费。

探索功能

仍有疑问?在应用内询问 Literess,或发送邮件至 [email protected]