Home / AI translation

AI translation that uses your context and glossary

Machine translation without context produces confident nonsense. locoloop sends the model the same briefing you'd give a human translator, on every single request.



What the model sees

Five inputs, assembled per key

Nothing is a black box. Open any AI-drafted cell and you can see exactly what was sent.

1Project context — what the product is, who uses it, and the formality register of the target language
2Glossary matches — locked terms found in this string
3Key context — your note and screenshot for where it appears
4Constraints — character limits, placeholders, plural forms required
5Approved neighbours — already-reviewed strings nearby, for consistency
Request preview
context:  Retail banking app for Germany.
          Address the user formally (Sie).
          Buttons under 20 characters.
glossary: Wallet → Konto
          Kestrel → do not translate
key:      wallet.topup.cta
note:     Primary button, empty wallet screen
source:   "Top up your Wallet"
target:   de-DE

→ "Konto aufladen"  15 chars ✓ glossary ✓

What goes in
1The source string
2Project context brief
3Matching glossary terms
4Key name and neighbours
5Length and format limits
The model
Assembled prompt
// system
formal · de-DE
Wallet → Konto
Kestrel → keep
max 20 chars
Your key or ours
What comes back
Konto aufladen
14 chars · glossary clean
✓Glossary rules held
✓Placeholders intact
✓Within length limit
A draft that fails any check is retried, then flagged rather than saved.
Checks and providers

Nothing reaches the grid unchecked

Every draft is validated against the rules that were sent with it before it is saved, and you choose whose model does the work.

Glossary terms are enforced

A draft that breaks a glossary rule or a character limit is rejected and retried before it reaches the grid.

✗ "Geldbeutel aufladen" — glossary
✓ "Konto aufladen" — retry 1

Bring your own keys

Use our capacity, or connect your own provider so requests bill to your account and never touch our quota. Business plan and up.

Anthropicconnected
OpenAInot set
DeepLnot set

Formality

Each language gets its own register rule

Formality is set on the language itself, not here — but it changes every request. The instruction names the actual pronoun system of the target language, including the imperative forms that are easiest to get wrong.

German gets Sie against du with the imperative spelled out. French gets vous with its verb agreement. Japanese gets です・ます against the plain form, where register lives in the verb ending rather than a pronoun. A generic “be formal” gets ignored; naming the forms does not.

How formality is modelled →
Informal starts from formal

Translating both registers from English independently produces two translations that drift in vocabulary and sentence shape — and almost none of that difference is about the pronoun. So once your formal wording is approved, the informal pass is given it as the reference and asked to change the register only.

1English source, approved
2German formal — translated, reviewed, approved
3German informal — rewritten from step 2

Your reviewers read one diff about pronouns, not two unrelated translations. A client variant's own wording wins over the default.

AI drafts. People approve.

Nothing machine-translated is silently marked done. Every draft lands as reviewable, tagged with the model that wrote it.

Step 1
New key arrives

From a push, an upload or the API.

Step 2
AI drafts each locale

Context and glossary applied, checks run.

Step 3
Reviewer approves

Or edits. Free seats, notified in Slack.

Step 4
Build pulls it

Or a PR opens against your repo.


Translate four thousand keys into nine languages before lunch

Steered by your context and glossary, reviewed by your people.

Start free See pricing