AI translation
Providers
LingoPress works with four AI providers, and you choose which one to use in LingoPress → AI translation:
| Provider | Default model | Key name (advanced use) |
|---|---|---|
| Claude (Anthropic) | claude-opus-4-8 |
LINGOPRESS_ANTHROPIC_API_KEY |
| Gemini (Google) | gemini-2.5-flash |
LINGOPRESS_GEMINI_API_KEY |
| OpenAI (ChatGPT) | gpt-5-mini |
LINGOPRESS_OPENAI_API_KEY |
| GroqCloud | meta-llama/llama-4-scout-17b-16e-instruct |
LINGOPRESS_GROQ_API_KEY |
To use any of them you need an API key: a key you copy from the website of the AI provider you choose.
- You can paste that key straight into the LingoPress settings. If you prefer a more secure option for a live site, it can also be set in the WordPress configuration file (
wp-config.php), using the name shown in the table; in that case, that key takes priority over the one in the settings. (If that last part sounds complicated, your developer or your hosting provider can help you.) - The Model field is a dropdown with each provider’s models that work well for translating: you pick one from the list, or you pick Custom… to type in the name of any other model by hand. The Provider default option lets the provider use its recommended model.
- All providers return their translations in a tidy, predictable format, so LingoPress can process them without errors.
Reasoning
Some models can “reason” (think step by step) before they answer. Translating almost never needs that, so the Reasoning setting comes set to Low: it’s faster, costs less, and keeps that reasoning from slipping into the translation. You can turn it up if you need to. This setting only appears when the model you picked supports reasoning (for example gpt-oss, Qwen3, GPT-5, Gemini 2.5, or Claude); with the rest, it isn’t even shown.
How it translates: context first
Before translating a single word, the AI is given:
- The full content (title, excerpt, and body travel together), with the instruction to read it all the way through and use context to resolve words that have more than one meaning.
- The site’s name and description.
- The Site context setting: your free-form description of the site (industry, audience, terminology that could get confused). Example: “Fitness blog with training guides; ‘muñeca’ always refers to the joint.”
- The content type and its categories and tags.
- The glossary (see below).
This is how you get consistent terminology across the whole document, and ambiguous words get resolved by their real meaning, not by a simple guess based on the isolated phrase.
Glossary
In the Glossary field you write one rule per line:
muñeca = wrist
sentadilla = squat
BallesDev
term = translationforces the AI to always use that translation.- A term on its own (without
=) tells it not to translate that word: ideal for brands and proper names.
Glossary rules take priority over what the AI would decide on its own. They only apply to future translations; they don’t change translations you’ve already done. (See String translations vs. Glossary.)
What’s preserved
The AI translates only the text that people read. All the formatting and layout of your content is kept intact, exactly as it was:
- The structure of your blocks and content: bold text, images, buttons, and other editor elements.
- The links (URLs) in your content.
- Any code or special elements you use (like code snippets or the shortcodes that add features to your pages).
Human review, always: draft first
No translation ever publishes on its own. Each AI translation is created as a draft linked to the original, with the featured image already copied and the categories and tags matched to their equivalents in the other language. A person reviews it, adjusts it if needed, and publishes.
Single and bulk translation
- From the editor or the posts list: the ✦ AI translate button translates that post into a language. It’s protected against dropped connections: even if your browser or your connection cuts out, the translation still finishes on the server and the draft shows up without a hitch.
- In bulk: use the Translate to … (AI) bulk action in the posts lists. The jobs go into a queue that works in the background (it uses WordPress’s own scheduled tasks system (WP-Cron), without relying on outside services) and processes two posts at a time until it finishes the list.
The queue (Queue tab)
In LingoPress → Queue you can see the status of each job: pending, processing, finished, or with an error.
- Automatic retries: temporary errors (network problems, or when the AI provider is overloaded or briefly fails) are retried on their own up to 3 times, waiting a little longer with each attempt.
- Permanent errors: they stay visible with their message; the Retry failed button retries them manually.
- Clear finished clears out the jobs that are already done.
Long content
When a text is very long and exceeds the maximum size that can be sent at once, LingoPress automatically splits it into parts, always respecting whole blocks or paragraphs (it never cuts an idea in half). The title and excerpt go in the first part to lock in the terminology; the rest is translated part by part and then joined back together. That maximum size depends on the provider (12,000 characters by default; 6,000 with Groq).
Outdated translations
When you edit the original after you’ve translated it, LingoPress detects it by comparing a kind of content “fingerprint” of the original:
- A ⚠ marker in the language columns of the lists.
- A notice inside the translation’s editor.
- The Re-translate with AI action: it re-translates on the spot, keeping the publication status (a translation that was published stays published, now updated).
