Automated language intelligence

Translation memory, glossary, style guide, jobs, budgets, provenance, and auto-translate policies.

Phase 3 turns source changes into a cost-controlled translation pipeline. Defaults stay off until you enable auto-translate on a project.

What you get

  • Translation memory — exact and normalized matches from approved history reduce provider calls.
  • Glossary — required, preferred, and forbidden terms injected into every provider request.
  • Style guide — tone, formality, capitalization, and UI rules.
  • Jobs — durable segments via the outbox (retry + quarantine, no manual DB repair).
  • Budgets — per-run and monthly org caps; Pro plan defaults apply when org fields are null.
  • Provenance — every generated revision stores provider, model, source revision, TM match, confidence, and job ids.

Dashboard

Open a project catalog → Intelligence tab (or ?tab=intelligence). Configure policy, style, glossary, start fill-missing / refresh-stale jobs, cancel, retry quarantined items, and drain the outbox.

Policy (safe defaults)

{
  "enabled": false,
  "onSourceWrite": "off",
  "modes": { "fillMissing": true, "refreshStale": false },
  "preferTranslationMemory": true,
  "writeMode": "fill",
  "maxKeysPerJob": 500
}

Set onSourceWrite to enqueue (or enqueue_if_pro) so new source revisions automatically create a job.

API

# Start a translate job (API key with translation:write)
POST /api/v1/projects/{projectId}/jobs/translate
{ "type": "fill_missing", "languages": ["nl", "de"] }

# List / inspect
GET  /api/v1/projects/{projectId}/jobs
GET  /api/v1/projects/{projectId}/jobs/{jobId}

# Cancel or retry quarantined items
POST /api/v1/projects/{projectId}/jobs/{jobId}
{ "action": "cancel" | "retry_quarantined" }

Job segments run through outbox type translate.segment. Dashboard Drain outbox advances pending work without a separate worker process.

Write path

All values still go through writeTranslationValue. TM hits use origin=memory; provider hits use origin=ai with full provenance JSON on the revision.