Add languages
Going multilingual is one loop: declare the target locales, let kapi up catch every language up to its ship gate, review what needs a person, and gate the release on kapi check --ship. Translation drift never breaks a build — a language that is behind is pending work, not an error.
- Desktop
- Agent (Claude)
- CLI
- Add the locales. In Project Settings, add the target languages you translate into (for example
fr,de). - Bring up to date. Back on the project view, the coverage panel now shows one row per locale against the ship gate. Plan… previews the pending work first — content-memory leverage, remaining AI work, a token estimate, nothing written. Then click Bring up to date — kapi runs the default flow over every locale that is short of its gate, looping until each scope ships or parks.
- Review. Click a ship-gate cell to open the Review queue for that locale: inspect each translation, edit if needed, approve or reject. Approvals raise the
reviewedcoverage that a{ reviewed: … }gate measures.
Adding two target locales in Project Settings, pressing Bring up to date, watching coverage climb, and opening the Review queue from a gate cell.
Ask for the outcome:
Add French and German to this project and bring both up to date.
Claude adds target_languages to the recipe, runs kapi up, reads kapi status for what parked, and walks you through the review worklist conversationally — you approve, it records the decisions with kapi apply. See Use with Claude.
Declare the locales in the recipe (or pass --target-locale at kapi init time):
defaults:
source_language: en
target_languages: [fr, de]
content:
- path: "src/locales/en/*.json"
target: "src/locales/{lang}"
Then catch up, inspect, and gate:
kapi up # run the default flow until every gated scope ships or parks
kapi status # per-locale coverage and ship-gate standing (never fails)
kapi status --review # the worklist: translated units awaiting a person
kapi check --ship # enforce the gates — the pre-release bar, exit 3 when unmet
kapi up needs a translation provider for LLM translation — see Choose a translation model. Approve reviewed units with kapi apply (kind:"review"); see Review & approve.
How the gate thinks
Each translation climbs a ladder — draft, translated, reviewed, signed-off — and a ship gate is coverage thresholds over that ladder ({ translated: 100, reviewed: 80 }). kapi up produces, review promotes, kapi check --ship releases. The kapi loop explains the model.
Next
- Translate with your AI — the translation loop in depth.
- Ship gates & CI — run
kapi check --shipon every PR. - Review & approve — the human half of the loop.