Skip to content

Translation providers

The AI Translation Suite translates through one of six providers, and you connect each one with your own API key. If you do not want to manage provider accounts, use modernice All-in-One.

The Providers tab of the translation settings with the default provider, tone of voice and custom instructions

Machine translation and AI models

The six providers form two groups. The group that you select decides how the provider bills you, and how much control you have over the wording.

Machine translation
(DeepL, Google Translate)
AI models
(OpenAI, Anthropic, Gemini, Mistral)
Billed bysource charactersinput tokens and output tokens
Model choicenone; DeepL offers a model typeyes, from a curated list and a live list
Tone of voiceDeepL only, through its Formality settingTone of voice: Neutral, Formal or Informal
Custom instructionsnot supportedadded to the built-in translation prompt
Glossarykeep terms are protected; replace terms are advisory, because post-processing reaches them only while the source term is still recognisablekeep terms are protected; the extension also sends replace terms to the model as instructions
Typical uselarge catalogues with a predictable price per characterbrand voice, wording rules, difficult copy

Tone of voice and Custom instructions are on the Providers tab of the translation settings, and they reach the AI providers only. DeepL and Google Translate ignore both of them. DeepL has its own Formality setting for the same purpose.

Both groups receive HTML in a format that they understand, and the placeholder protection and the glossary apply to both. See Safety mechanisms and Glossary.

The six providers

ProviderIdTypeWhere to get a keyDefault model
DeepLdeeplMachine translationDeepL account → API keys— (no model choice; Model type defaults to Prefer quality-optimised)
Google TranslategoogleMachine translationGoogle Cloud console
OpenAI (ChatGPT)openaiAI modelplatform.openai.comgpt-5.6-luna
Anthropic ClaudeanthropicAI modelconsole.anthropic.comclaude-opus-5
Google GeminigeminiAI modelGoogle AI Studiogemini-flash-lite-latest
MistralmistralAI modelconsole.mistral.aimistral-small-latest

A seventh entry, modernice All-in-One, appears in the provider lists after you activate the modernice All-in-One plan. It needs no API key, and the wizard shows it as modernice All-in-One — no API key needed.

One key is sufficient to start. The provider ids in the table are the values that the CLI and the Admin API use.

Add and test a key

  1. Open Catalogues → AI Translation, click Settings and go to the Providers tab.
  2. Paste the key into API key on the card of that provider.
  3. Click Test connection.
  4. Click Save.

The test sends the key that the field contains at that moment. You can therefore verify a key before you save it. After a successful test the card shows API key is valid — connection to the provider works. After a failed test it shows the error message of the provider, or The connection test failed. Please check the API key and try again. The extension never echoes your key back.

Each card has a Configured or Not configured badge. The badge follows the stored key, therefore a key that you typed but did not save leaves the badge unchanged.

The test of each provider examines something different, and only DeepL reports a quota:

ProviderWhat the test doesQuota shown
DeepLAsks DeepL for the usage of the accountYes: {used} of {limit} characters used with a progress bar, or {used} characters used when the account has no limit
Google TranslateRequests the list of supported languagesNo
OpenAI (ChatGPT)Requests the model listNo
Anthropic ClaudeRequests the model listNo
Google GeminiRequests the model listNo
MistralRequests the model listNo

A successful test also refreshes the live model list of that provider. A new key therefore widens the Model dropdown immediately.

TIP

bin/console nice-translate:providers --test performs the same validation for each configured provider from the command line, and prints the quota where a provider reports one. See CLI commands.

DeepL

  1. Create a DeepL API account, API Free or API Pro: https://www.deepl.com/pro-api
  2. Copy your key from https://www.deepl.com/your-account/keys
  3. Paste it into Settings → Providers → DeepL, click Test connection, then click Save.

Notes:

  • API Free keys end in :fx. The extension detects that suffix and uses the free endpoint of DeepL by itself.
  • Formality (Provider default, More formal, Less formal) goes only to the target languages where DeepL supports it: German, French, Italian, Spanish, Dutch, Polish, Brazilian Portuguese, European Portuguese, Japanese and Russian. The other target languages translate without it.
  • Model type has three options: Prefer quality-optimised (recommended), Quality-optimised only and Latency-optimised (faster). For each option, the extension sends DeepL the "prefer" variant, which also translates a language pair that does not offer that model type.
  • DeepL is the built-in fallback. If no default provider and no per-language mapping apply, the extension uses DeepL.

Google Translate

  1. In the Google Cloud console, create or select a project.
  2. Enable the Cloud Translation API: https://console.cloud.google.com/apis/library/translate.googleapis.com
  3. Create an API key under APIs & Services → Credentials: https://console.cloud.google.com/apis/credentials
  4. Recommended: restrict the key to the Cloud Translation API.

Notes:

  • The card contains the API key only. It offers no model choice and no formality choice.
  • Google Translate does not distinguish between British and American English, and it translates both as generic English. The wizard gives this warning before a run with the target en-GB or en-US.
  • The extension maps the locale variants that Google expects, which include pt-PT and pt-BR, Simplified Chinese and Traditional Chinese, and Norwegian Bokmål.

OpenAI (ChatGPT)

  1. Create a secret key at https://platform.openai.com/api-keys
  2. Set up billing for your organization: https://platform.openai.com/settings/organization/billing
  3. Select a Model on the card.

Curated models:

ModelTier
gpt-5.6-luna (default)Budget — ideal for bulk
gpt-5.6-terraBalanced
gpt-5.6-solFlagship — top quality
gpt-5.5Previous generation
gpt-5.4-miniPrevious generation

The live list contains the gpt- text models of OpenAI only. It excludes the audio, image, embedding, moderation, search and code variants.

Anthropic Claude

  1. Create a key at https://console.anthropic.com/settings/keys
  2. Select a Model on the card.

Curated models:

ModelTier
claude-opus-5 (default)High quality
claude-fable-5Flagship — top quality
claude-sonnet-5Balanced
claude-haiku-4-5Budget — ideal for bulk
claude-opus-4-8Previous generation

A dated model id from the live list (<model>-YYYYMMDD) takes the tier and the price of the curated model that it belongs to.

Google Gemini

  1. Create an API key in Google AI Studio: https://aistudio.google.com/apikey
  2. Select a Model on the card.

Curated models:

ModelTier
gemini-flash-lite-latest (default)Budget — ideal for bulk
gemini-3.6-flashHigh quality
gemini-3.1-proHigh quality
gemini-3.5-flashPrevious generation
gemini-3.1-flash-litePrevious generation

The extension migrates the retired ids gemini-2.5-flash-lite and gemini-3.5-flash-lite to gemini-flash-lite-latest automatically. The live list offers only the Gemini models that can generate content, and it excludes the image, audio, embedding and vision variants.

Mistral

  1. Create a key at https://console.mistral.ai/api-keys
  2. The default model is mistral-small-latest (Balanced).

The live list excludes the embedding, OCR, moderation, transcription, audio and code models.

Curated and live model lists

A provider card with the API key field, the model dropdown and the note about the standard model list

Each AI provider comes with a curated list: some models that the extension knows by display name, quality tier and price. The dropdown shows them as Name · Tier · $x.xx input / $y.yy output per 1M tokens.

The extension requests the current model list of the provider after you store a key, and immediately after a successful Test connection. It then merges that list over the curated data:

  • The models that the extension already knows keep their name, tier and price, and stay at the top of the list.
  • The extension adds the other models from the provider at the end of the list, without a tier and without a price (pricing: see provider website).
  • The merged list has a maximum of 30 entries.

The hint under the dropdown names the list that you see: Model list loaded live from the provider, or Standard model list — with a valid API key the current list is loaded directly from the provider and may contain additional models. If the live request fails, the card keeps the curated list.

A model that you already saved stays selectable, even when the live list exposes only a variant of it with a different name.

WARNING

The provider bills a model without a listed price in the usual way. The extension has no price for that model, therefore its calculated cost on the usage dashboard is an indication only. Read the price list of the provider before you start large jobs on such a model.

Feature support

ProviderHTMLFormal or informal addressGlossary terms sent to the provider
DeepLYesYes, with the Formality setting on the DeepL cardNo
Google TranslateYesNoNo
OpenAI (ChatGPT)YesYes, with Tone of voiceYes
Anthropic ClaudeYesYes, with Tone of voiceYes
Google GeminiYesYes, with Tone of voiceYes
MistralYesYes, with Tone of voiceYes
modernice All-in-OneYesYes, with Tone of voiceYes

Two settings control the formal or informal address (German Sie against Du). The AI providers follow Tone of voice (Settings → Providers → General). DeepL uses its own Formality setting, and only in the languages where DeepL supports formality. Google Translate offers no control over the address.

The last column shows only whether the extension sends the glossary terms to the provider as instructions. Keep mode operates with each provider: the extension locks the keep terms before the request and puts them back afterwards. For replace terms, the extension also post-processes the returned text. That post-processing can replace the source term only while the term is still recognisable in the output. DeepL and Google Translate receive no glossary instruction at all, therefore replace terms stay advisory for them. Use keep mode when a term must be protected in each language. See Glossary.

A provider per target language

Under Settings → Providers → Providers by target language you assign a provider to each target language. A language that stays on Use default provider follows the general setting.

The extension resolves a provider in this order:

  1. The provider that Providers by target language maps to that target language.
  2. The Default provider from the General card.
  3. DeepL, as the built-in fallback.

Two cases bypass this mapping:

  • Manual translations use the provider that you select in the wizard or in the quick-translate dialog.
  • Automation follows the mapping only while Settings → Automation → Provider stays on Use language mapping / default. If you select a provider there, that provider applies to each target language. See Automation.

A mix of providers is a practical way to control the cost: send the high-volume languages to a cheap machine-translation provider, and keep an AI model for the languages where the wording is important. See Cost & usage.

Where your content goes

With your own API keys, the requests go directly from your server to the provider that you configured, under your own contract with that provider. With modernice All-in-One, the requests go through modernice. The managed pool operates under zero data retention, therefore the provider that serves each request keeps no copy of the text. On your own key, zero retention is a separate agreement between you and each provider. The Data protection page describes both cases and the retention. Document the mode that you enable in your own privacy information.

modernice extensions for Shopware 6. Shopware is a trademark of shopware AG — this documentation is not affiliated with shopware AG.