Keep terms consistent
Goal: decide once how your key terms carry across languages — product names, UI actions, the words your domain depends on — and have kapi flag anything that drifts before it ships. The same terms store guides translation up front and validates it after. Concepts: Terminology; storage models: Memory & terms storage.
kapi keeps terms in a terms bundle (terms.json). To bring in a list your team already maintains elsewhere, import it across the boundary — a spreadsheet exported to CSV, for example:
| source | target | domain |
|---|---|---|
| password | mot de passe | security |
| log in | se connecter | ui |
| dashboard | tableau de bord | ui |
| settings | paramètres | ui |
- Desktop
- Agent (Claude)
- CLI
The Terms view is where that list lives:
- Import the list. Import the CSV into the project terms store; terms are listed by language pair and domain, ready to browse and search.
- Spot-check a term. Look up an entry to confirm the approved target before a full pass.
- Enforce it. With the terms store in the project, term findings surface in the Checks view, in the terminology gate of
check --ship, and against each unit in the Review queue — the same drift, caught wherever you look.
Ask for enforcement, or for curation:
Check the French files against our approved terms and fix what drifts.
The assistant looks up approved terms before it writes (kapi terms lookup), runs term-check after, and fixes flagged targets through the round-trip. It can also grow the list: candidate terms it spots (or kapi exec term-extract surfaces) land as kind:"term" change-set entries through kapi apply — written to the committed terms source the recipe binds with defaults.terms_source, for you to approve in git diff.
Import once into a named terms store, verify, then check deliveries:
kapi terms import glossary.csv --name product-terms \
--format csv --header -s en -t fr # once; persists across sessions
kapi terms lookup "log in" --name product-terms -s en -t fr
kapi exec term-check messages_fr.json \
--source-lang en --target-lang fr --terms product-terms
The term-check tool flags targets that don't use the approved equivalent for a source term — "code secret" where the terms store says "mot de passe" — and exits non-zero on violations, so it doubles as a CI gate. Scale with globs and -j 4; keep the terms store current with re-imports (concepts merge) and kapi terms export for vendor kits. Flags: kapi terms, kapi exec term-check.
In a project, the check resolves the project terms store and the recipe's languages automatically — no flags — and the terminology gate folds into kapi check --ship.
Try it
The in-browser build pre-seeds a terms store from the list above — inspect it, look up terms, then pseudo-translate and run term-check to see enforcement against a real backend:
Loading the walkthrough…
Next
- Reuse what you've translated — the terms store guiding translation, not just checking it.
- Memory & terms storage — the three places a terms store can live.
- Terminology — how discovery and enforcement work.