How to Give AI a List of Terms It Must Not Translate
Summary
- AI translation tools can mistakenly translate brand names, product SKUs, code, and regulated terms unless you explicitly mark them as “do not translate.”
- The clearest fix is to provide a “Do Not Translate (DNT)” list plus unambiguous rules (case sensitivity, punctuation, spacing, and inflections).
- Use a structured format (table/JSON/YAML) and require the model to return a “DNT compliance report” so you can spot violations quickly.
- For tricky items, wrap protected terms with placeholders before translation, then restore them afterward.
- Saving your DNT list and reusable prompts in one place can reduce repeated setup work across translation jobs.
When you ask an AI to translate text, it has to guess what counts as “language” versus “data.” That ambiguity is exactly why brand names, product names, acronyms, SKUs, UI labels, and code identifiers get translated or “localized” when you did not want them to. The solution is not just “please don’t translate these terms” - it is giving the AI a list in a format it can follow, plus explicit rules for edge cases and a way to check the output.
This guide shows (1) the specific ambiguity that causes failures, (2) before-and-after examples, (3) reusable prompt templates and data formats for a Do Not Translate list, and (4) targeted checks to catch mistakes.
The ambiguity: “term” can mean many things
AI translation can go wrong because “terms that must not be translated” may include:
- Exact strings (e.g., “CopyCharm”, “ACME-4100”, “S3”, “OAuth”).
- Multi-word phrases (e.g., “Terms of Service”, “Reset Password”).
- Tokens with punctuation (e.g., “foo_bar”, “my-app”, “/api/v1/users”).
- Case-sensitive identifiers (e.g., “iPhone” vs “Iphone”).
- UI labels that should remain in English (common in software docs).
- Words that look translatable but are brand terms (e.g., “Drive”, “Workspace”, “Sheets”).
If you only provide a plain list, the model may still “helpfully” translate variants (plural forms, hyphenated forms, or words inside longer phrases). You need to define what “must not translate” means operationally.
Before-and-after: what goes wrong (and how to fix it)
Example 1: Brand + SKU + UI label
Source (English):
“Open CopyCharm and click Reset Password. If you see error ACME-4100, contact Support.”
Bad translation (Spanish):
“Abre CopyCharm y haz clic en Restablecer contrasena. Si ves el error ACME-4100, contacta con Soporte.”
What failed: “Reset Password” and “Support” were translated, but you may need them to match the product UI or internal naming.
Better instruction: Provide a DNT list and specify that UI labels must remain exact, including capitalization and spacing.
Good translation (Spanish) with DNT enforced:
“Abre CopyCharm y haz clic en Reset Password. Si ves el error ACME-4100, contacta con Support.”
Example 2: Code identifiers and paths
Source (English):
“Set enableTelemetry to true in config.json, then call /api/v1/users.”
Bad translation (French):
“Definissez activerTelemetrie sur true dans config.json, puis appelez /api/v1/utilisateurs.”
What failed: identifiers and endpoints were “translated” even though they are literal strings.
Good translation (French) with DNT enforced:
“Definissez enableTelemetry sur true dans config.json, puis appelez /api/v1/users.”
A reusable “Do Not Translate” prompt (copy/paste)
Use this template when you want the AI to translate but preserve protected terms exactly. Replace bracketed parts.
Prompt template: DNT list + strict rules + compliance report
Instruction:
- Translate the text from [SOURCE LANGUAGE] to [TARGET LANGUAGE].
- Do Not Translate (DNT): The terms in the DNT list must remain exactly the same in the output (same characters, spacing, punctuation, and capitalization).
- Do not translate inside these terms (no partial translation of sub-words).
- If a DNT term appears with surrounding punctuation (quotes, commas, parentheses), keep the term unchanged and translate only the surrounding text.
- If you think a term should be added to DNT, do not change it; instead, flag it in the report.
DNT list (exact strings):
- [TERM 1]
- [TERM 2]
- [TERM 3]
Output format:
- Section A - Translation: Provide the translated text only.
- Section B - DNT compliance report: A table with columns: Term, Found in source? (Yes/No), Preserved exactly? (Yes/No), Notes.
Text to translate:
[PASTE TEXT HERE]
Better than a plain list: use a structured DNT format
A plain bullet list can be enough for simple cases. For complex localization work, a structured format reduces interpretation errors because you can specify matching rules.
Option A: Simple table (human-friendly)
| Term (exact) | Type | Notes / rule |
|---|---|---|
| CopyCharm | Brand | Keep exact casing |
| Reset Password | UI label | Keep exact spacing and capitalization |
| ACME-4100 | Error code | Never translate or reformat |
| /api/v1/users | Endpoint | Keep exact path |
Option B: JSON (machine-friendly, reusable)
Use JSON if you want consistent reuse across many prompts.
{
"dnt": [
{ "term": "CopyCharm", "match": "exact", "caseSensitive": true, "type": "brand" },
{ "term": "Reset Password", "match": "exact", "caseSensitive": true, "type": "ui_label" },
{ "term": "ACME-4100", "match": "exact", "caseSensitive": true, "type": "error_code" },
{ "term": "/api/v1/users", "match": "exact", "caseSensitive": true, "type": "endpoint" }
],
"rules": {
"noPartialTranslation": true,
"preservePunctuationInsideTerm": true,
"ifUncertainFlagInReport": true
}
}
How to use it: Paste the JSON into your prompt and instruct the AI to treat it as binding constraints, then require a compliance report.
Option C: Placeholder method (for stubborn failures)
If the model keeps altering protected terms (especially multi-word UI labels), placeholders can be more reliable:
- Preprocess: Replace each protected term with a unique placeholder token.
- Translate: Tell the AI to never change placeholders.
- Postprocess: Replace placeholders back with the original terms.
Example mapping:
__DNT_1__ = Reset Password __DNT_2__ = Terms of Service __DNT_3__ = ACME-4100
Prompt snippet:
Translate to [TARGET LANGUAGE]. Do not change placeholders like __DNT_1__. After translating, output the translated text only (placeholders still present).
This method is especially useful when the protected phrase contains common words that the model strongly wants to translate.
Targeted checks: how to catch “silent” DNT violations
Even with good instructions, you should add checks that make violations obvious.
Check 1: Require a DNT compliance report
Ask the AI to list each DNT term and confirm whether it appears in the source and whether it was preserved exactly in the translation. This forces the model to “look” for the terms instead of assuming it complied.
Check 2: Ask for a “diff-style” warning list
Add this line to your prompt:
If any DNT term is missing or changed in the translation, list each violation as: Original term -> What appeared in output -> Location (quote the surrounding 10-20 characters).
Check 3: Add “negative examples” (what not to do)
Models respond well to explicit “do not” patterns. Add 1-3 examples:
- Do not translate “Reset Password” as “Restablecer contrasena”.
- Do not translate “/api/v1/users” as “/api/v1/utilisateurs”.
- Do not translate “ACME-4100” or change its hyphenation.
Check 4: Specify what to do with inflections and spacing variants
Decide upfront which of these you want, then state it:
- Strict exact only: Only protect the exact string; variants may translate.
- Protect variants: Provide each variant explicitly in the DNT list (plural, hyphenated, spaced).
If you need variants protected, list them. For example:
- “Workspace”
- “Workspaces”
- “Workspace Admin”
Practical prompt patterns for common translation scenarios
Scenario: Translating marketing copy with brand terms
Add these rules:
- Keep brand terms and product names in the original language.
- Translate surrounding descriptive text naturally.
- Do not invent localized brand variants.
Scenario: Translating UI documentation where labels must match the app
Add these rules:
- UI labels in DNT must remain exact.
- If a UI label is not in DNT but looks like a label, flag it in the report instead of guessing.
Scenario: Translating technical docs with code blocks
Add these rules:
- Do not translate code blocks, file names, keys, endpoints, or identifiers listed in DNT.
- Translate comments and prose around code.
Where CopyCharm fits: saving and reusing your DNT list and prompts
If you translate content regularly, the repetitive part is rebuilding the same “do not translate” list and the same instruction block for every job. CopyCharm is a Windows desktop app that saves copied text locally, lets you search past clips, favorite important clips, and separately save reusable prompts. That combination can help you keep a stable DNT workflow you can reuse across projects.
A concrete workflow you can use
- Save: Copy your current DNT list (table/JSON) and your preferred translation prompt template, then save the prompt as a reusable saved prompt in CopyCharm. Separately, favorite the latest approved DNT list so it is easy to find.
- Find: When a new translation task arrives, search your past clips for the client or product name, then open the favorited DNT list and the saved prompt template.
- Reuse: Paste the saved prompt into your AI tool, drop in the DNT list and the new source text, and run the translation with the compliance report enabled.
If you use ChatGPT and want retrieval inside ChatGPT, CopyCharm also has an authenticated ChatGPT connector backed by optional AI Access sync and a read-only MCP service. After eligible account authorization and AI Access sync, ChatGPT can search and retrieve supported Synced Data; it cannot access unsynced local CopyCharm data. For Claude, Gemini, Cursor, email, documents, and other applications, the workflow is manual: search or retrieve the content in CopyCharm, then copy/paste it into the destination app.
Try CopyCharm for saving your DNT lists and reusable translation prompts
Frequently Asked Questions
FAQ 1: What does “must not translate” mean in practice for AI translation?
Answer: It means the protected term must appear in the output exactly as it appears in your list: same characters, capitalization, spacing, and punctuation. It also means the AI should not translate sub-words inside the term (for example, keeping “Reset Password” intact rather than translating “Reset” and leaving “Password”).
Takeaway: Define “do not translate” as exact-string preservation, not a vague preference.
FAQ 2: Should I provide a DNT list as bullets, a table, or JSON?
Answer: Bullets work for short lists of exact strings. A table helps when you want humans to review types (brand, UI label, SKU) and notes. JSON (or YAML) is useful when you want consistent reuse and explicit matching rules like case sensitivity and “exact match only.”
Takeaway: Choose the simplest format that still removes ambiguity for your use case.
FAQ 3: How do I stop AI from translating parts of a protected multi-word phrase?
Answer: State “no partial translation inside DNT terms” and require exact preservation. If it still breaks the phrase, use the placeholder method: replace the phrase with a token like __DNT_1__ before translation, then restore it afterward.
Takeaway: Multi-word phrases are safer with explicit “no partial translation” rules or placeholders.
FAQ 4: What if the AI changes capitalization, punctuation, or spacing in a protected term?
Answer: Add a strict requirement: “same characters, spacing, punctuation, and capitalization.” Then add a compliance report that checks “preserved exactly.” If you can tolerate minor differences (like surrounding quotes), specify that only the term itself must remain unchanged while punctuation around it may adapt to the target language.
Takeaway: Tell the model what “exact” covers, and separate the term from surrounding punctuation rules.
FAQ 5: How can I verify the AI followed my DNT list without manually rereading everything?
Answer: Require a DNT compliance report that lists each term, whether it appeared in the source, and whether it was preserved exactly in the output. You can also ask for a violation list that shows “original term -> what appeared -> short surrounding context” so you can spot-check quickly.
Takeaway: Make verification part of the output, not a separate manual step.
FAQ 6: How do I handle plural forms or grammatical inflections of protected terms?
Answer: Decide whether you need strict exact-only protection or variant protection. For strict exact-only, list only the exact strings you want preserved. For variant protection, include each variant explicitly (plural, hyphenated, spaced, or with suffixes) so the AI does not guess which forms should remain unchanged.
Takeaway: If variants matter, list variants; do not rely on the model to infer them safely.
FAQ 7: What should I do when the AI thinks a term should be translated but I disagree?
Answer: Instruct the AI to keep the term unchanged and flag it in the report as a “suggested DNT addition” or “translation candidate.” That way you keep control: you can decide later whether to add it to the DNT list, translate it, or provide an approved localized equivalent.
Takeaway: Use “flag, don’t change” to avoid silent terminology drift.
FAQ 8: Can CopyCharm help me reuse the same DNT list and prompt across translation jobs?
Answer: Yes. CopyCharm can save copied text locally, lets you search past clips, favorite important clips (like an approved DNT list), and separately save reusable prompts (like your translation template with a compliance report). If you use ChatGPT, an authenticated connector is available via optional AI Access sync; after authorization and sync, ChatGPT can search and retrieve supported synced items, but it cannot access unsynced local CopyCharm data.
Takeaway: Save your DNT list and prompt once, then retrieve and reuse them consistently across jobs.
