What gets translated
Goal: decide what actually needs translating before anything goes out in another language. Three outcomes, one pass: sensitive material stays on your machine (Redaction), anything you've already translated comes back for free (Content memory), and every language is held to the same bar as the source (Checks). Each job runs ad-hoc on any file; a .kapi project makes the pass repeatable and lets reuse accumulate in a project-local content memory and terms store.
- Desktop
- Agent (Claude)
- CLI
- See what goes out. Open a file from a content collection — the Blocks view is exactly the text a translation run works on; everything else is structure the round-trip preserves. What isn't a block doesn't get translated.
- Protect and reuse. In the Toolbox's Flows tab, put
redactandrecyclesteps ahead oftranslatein the project's flow: sensitive spans become placeholders before any provider is called, and memory matches fill first, so a run pays only for what's new. - Hold every language to the bar. Import the term list in the Terms view and bind the brand profile in project settings; the Checks view then reports terminology and quality findings per block, and a locale doesn't reach its ship gate past a failing check.
With kapi connected, ask for the outcomes, not the machinery:
Prepare this catalog for French — protect names, reuse what we've already translated, enforce our terms.
The assistant runs the same pass through kapi: the secure-translate flow for protection, recycle for reuse, check for the bar — then reports what was redacted, what came back from memory, and what still needs a person.
Protect sensitive content — redact, translate against placeholders, restore locally:
kapi run secure-translate -i src/locales/en.json --target-lang fr
Reuse past translations — fill from content memory first, translate only what's left (the deterministic version):
kapi exec recycle src/locales/en.json --target-lang fr
Keep terminology and quality consistent — import the term list once, then gate:
kapi terms import terms.json --name product-terms
kapi check src/locales/en.json --target src/locales/fr.json --target-lang fr
When a check flags a block, fix it through the inspect → apply loop (Edit content) and re-check. To make the pass one repeatable verb, name it as a flow in your project:
# .kapi/flows/prepare.yaml
steps:
- tool: redact # protect sensitive content
- tool: segmentation # per-sentence units, so reuse and checks land precisely
- tool: entity-extract # detect names so memory reuse generalizes over them
- tool: recycle # reuse past translations
- tool: translate # translate the remainder
- tool: qa # gate on findings
kapi run prepare -i src/locales/en.json --target-lang fr
In a project
In a .kapi project the same pass runs against the recipe's declared content and locales — kapi run prepare with no file argument resolves the sources from the project, and the content memory and terms store it builds are the project's own. For the model behind this — each step a non-destructive overlay on one settled source — see Content preparation.
Next
- Redaction — rules files, entity detection, and the extract/merge path for human translators.
- Reuse what you've translated — the content-memory pass end to end.
- Keep terms consistent — terminology enforcement in full.