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.