How do I set up translation guidelines?
Translation guidelines are free-form instructions that travel with every AI translation in the project: tone, formality, regional variant, anything specific to how your product should sound.
Where they live #
The project's AI Context settings, under Custom System Prompt. One text field, project-wide.
What happens with it: your text is inserted into the translator's system prompt as PROJECT-SPECIFIC INSTRUCTIONS, ahead of the platform's own rules. So it is read before the model decides anything — not applied as a filter afterwards.
Don't spend instructions on what is already enforced #
Three rules are always in the prompt, whatever you write:
- return only the translation, no commentary
- keep the tone and style of the source
- preserve placeholders and variables —
{{variable}},{count}and friends
Repeating those wastes the part of the prompt where your product's actual particulars should be.
What is worth writing #
Formality #
German: use "Sie", never "du".
French: use "vous" in all user-facing text.
Turkish: use "sen" — our Turkish users prefer the informal register.Formality is the single highest-value instruction, because it is a decision no model can infer from a UI string and it is wrong in a way every native speaker notices immediately.
Regional variant #
Spanish: Latin American Spanish, not Castilian.
Chinese: Simplified.
Portuguese: Brazilian.What stays in English #
Keep "API", "SDK", "token", "webhook" in English in every language.
Never translate the product name.For a handful of terms this is fine here. For a real vocabulary, use the glossary instead — it is per-term, reviewable, and gets synced to machine-translation engines, which prose in a prompt does not.
Length pressure #
Button and menu labels: as short as the target language allows,
even if that means dropping an article the source has.Worth saying because a translation that is technically right and 40% longer breaks the layout it lands in.
One field, not per-language sections #
There is no structured per-language setting: writing [Turkish] as a header does not create a Turkish-only rule, it is just text in the same instruction block. Naming languages inline (as above) works because the model reads it, not because the platform parses it.
If your languages need genuinely different treatment, keep the instructions short and explicit per language rather than long paragraphs — the model is choosing between them on every string.
Where else your instructions show up #
- Activity log — a change is recorded with its previous and new value, so a translation quality shift can be traced to the day someone rewrote the prompt
- AI agents —
getTranslationContexthands your instructions to an MCP client along with the glossary, so an agent translating from your editor follows the same rules as the dashboard
Guidelines vs glossary #
| Glossary | Guidelines | |
|---|---|---|
| Shape | One entry per term, typed and described | One free-form text field |
| Best for | "This word is translated exactly this way" | "This is how we sound" |
| Matching | Semantic retrieval per string | Always present in the prompt |
| Reaches MT engines | Yes, synced to the provider | No — AI translation only |
| Reviewable | Per term, with a source and history | As one blob |
Use both: the glossary for words you cannot afford to get wrong, guidelines for the register everything is written in.
Better I18N