One English word can ship two different German translations. What decides between them is context — and GT assembles it from your code, your files, and the rules your team pins, then spends it on every translation.
1<T>2<p>Payment received</p>3<button>Save</button>4</T>
Zahlung erhalten
In a checkout, “Save” reads as the discount sense — plausible, and wrong for a toast that stores a receipt.
context="checkout toast"1<T context="checkout toast">2<p>Payment received</p>3<button>Save</button>4</T>
Zahlung erhalten
One attribute settles the sense: the toast stores, it doesn’t discount.
Four signals steer every translation: the vocabulary your team pins, the tone you set per locale, the file and markup around each string, and the tag at the call site.
Key terms translate one way, everywhere they appear — or never translate at all. Decided once, per locale.
Style rules ride along with every job: voice, formality, what never gets translated. Scoped to one locale or to all of them.
The voice that’s playful in English can be formal in German — both are the same product speaking.
Translation happens on the JSX tree, not on bare strings — every entry ships with the file it lives in and the markup around it.
"Save"app/checkout/Toast.tsx<button>"Payment received""checkout toast"What travels with one string — before anyone types a word.
Strings you can’t know at build time take the same steering — one option on the runtime call.
1await tx('Spring', {2$context: 'the season, not a coil',3});
$context$maxChars$requiresReview$idCap its length, hold it for review, or give it a stable id — from the same call.
Glossary, directives, and autogenerated project context assemble into a Context Group at the organization level. The group grows as the project grows — and every translation that follows draws from it.
the same group, over one project’s life
Groups live at the organization and are assigned to projects. New translations draw from them automatically; what already shipped changes only when you say so.
Editing the glossary never rewrites your app behind your back. Existing translations change only when you press Apply.
Groups stack per project. When two pin the same term, priority is explicit — the higher group decides.
Project context is its own published line item, per token — you can see exactly what you’re buying.
Published rates, hard usage caps — never a surprise invoice.
Terminology and tone, set at the organization and obeyed by every translation — at build time, at runtime, and in every Locadex pull request.