Skip to content

Supported content

This page is the definitive list of what the extension translates. It applies to five surfaces: manual runs from the wizard, quick translate, the CLI, and both automation modes. All of them use the same engine.

The extension writes into the translation tables of Shopware. There is no parallel storage format. A translated field therefore behaves exactly like a field that you typed into the Administration yourself.

Content types and fields

You can select from eighteen content types: seventeen Shopware entities and storefront snippets. The list does not show content types that your shop did not install.

Technical nameAdministration labelTranslated fields
productProductsname, description, metaTitle, metaDescription, keywords, packUnit, packUnitPlural, customSearchKeywords, customFields, layout overrides
categoryCategoriesname, description, metaTitle, metaDescription, keywords, linkTitle, customFields, layout overrides
cms_pageShopping Experiencesname, customFields, the text in the elements of the layout
landing_pageLanding pagesname, metaTitle, metaDescription, keywords, customFields, layout overrides
product_manufacturerManufacturersname, description, customFields
property_groupPropertiesname, description, customFields
property_group_optionProperty valuesname, customFields
mediaMediaalt, title
mail_templateEmail templatessubject, description, contentHtml, contentPlain
product_cross_sellingCross-sellingname
delivery_timeDelivery timesname, customFields
unitUnitsname, customFields
countryCountriesname, customFields
salutationSalutationsdisplayName, letterName
currencyCurrenciesname, customFields
payment_methodPayment methodsname, description, customFields
shipping_methodShipping methodsname, description, customFields
snippetStorefront snippetsvalue

For media, one run writes both fields: the alt text and the media title.

The field list is an allowlist. The extension intersects that allowlist with the fields that your Shopware version declares as translatable. It drops a field that your installation does not have. It always excludes primary keys, computed fields, write-protected fields and foreign keys.

"Layout overrides" are the slot configuration that a product, a category or a landing page contains when it overrides a Shopping Experiences layout. The same walker processes these overrides and the Shopping Experiences themselves. Shopping Experiences and layouts describes that walker.

Storefront snippets

Shopware keeps storefront snippets in snippet sets. The extension therefore translates from one set into another set. Language translation rows have no function here.

  1. The source snippet set is the set whose ISO code agrees with the resolved source locale.
  2. The target snippet set is the existing set whose ISO code agrees with the target locale.
  3. The extension translates each snippet of the source set and writes it into the target set under the same translation key. It creates the snippets that the target set does not contain, and it updates the snippets that the target set already contains.
  4. Written snippets carry the author NiceTranslate. This author name separates them from your own overrides in the snippet administration of Shopware.

WARNING

The extension never creates snippet sets. A target language without a snippet set cannot receive snippet translations. Before the run, the wizard shows the warning No snippet set exists for "…". Storefront snippets cannot be translated into this language. Create the snippet set in Shopware first, then start the job again.

If several snippet sets have the same ISO code, the extension uses the oldest set. It uses that same set to enumerate and to write, therefore one run never mixes two sets.

Under the scope Only items without translation, a snippet counts as missing when the target set contains no entry for its translation key.

Snippets contain many placeholders (%name%, {0}, %s) and Twig fragments. The extension locks them before the translation and puts them back unchanged afterwards. If a provider damages one of them, the snippet fails and the extension writes nothing. See Safety mechanisms.

Translatable custom fields

The extension translates a custom field only when all of these conditions are true:

  • the definition of the custom field is active,
  • its type is text or HTML,
  • and its definition marks it as translatable (the Translatable option of the custom field).

The remainder of the same customFields payload stays byte-for-byte unchanged: numbers, dates, selects, switches, entity references, and text fields without the translatable flag. HTML custom fields go to the provider in HTML mode, and text custom fields go as plain text.

The surface that starts the run decides whether the run includes custom fields:

SurfaceBehaviour
WizardThe Include custom fields switch on the Products tile in step 1. The switch is on that tile, but it controls each selected content type of the run. It is on by default.
Quick translateCustom fields are always included.
Automation and CLICustom fields are included, because that is the default of a job configuration.
PermanentlyAdd customFields to a content type under Settings → Advanced → Excluded fields. The editor labels this entry (all custom fields).

Shopping Experiences and layouts

A generic walker over the slot configuration translates CMS content. The walker uses key names and value shapes to decide what to translate. Element types have no function in that decision, therefore the walker also covers compatible third-party CMS elements without knowledge of them.

The walker examines only the configuration entries whose source is static, that is, a literal value that you typed into the layout. It never rewrites an entry that is mapped to a product, a category or another dynamic source.

Among these static entries, a value counts as text when its key is content, text, title, subTitle, subtitle, description, label, buttonText, linkText, altText, placeholder, tagline, quote or author. Any other static string value with markup in it also counts as text. Values with an HTML tag go to the provider in HTML mode, and all other values go as plain text.

The walker excludes these items from each run:

  • Keys that contain references or presentation values: url, media, mediaId, mediaUrl, color, backgroundColor, cssClass, class, elementId, icon, iconName, videoId, navigationId, categoryId, productId, productStreamId, code.
  • Values with the shape of a URL (http://…, https://…, or the protocol-relative form //…).
  • Values with the shape of an identifier: a hexadecimal string of 32 characters.
  • Values that contain only digits, and values that start with #, because those are colours.
  • Short, CSS-like values under cssClass, class, verticalAlign, displayMode, boxLayout.
  • Empty values and values that contain only whitespace.

The walker makes the fill-missing decision for each text unit. A headline that already has a translation therefore does not stop the translation of the body text in the same element.

The extension cannot write the locked system layouts of Shopware, therefore each run excludes them. The item count of the wizard for Shopping Experiences also excludes them. The coverage matrix on the dashboard is the exception: its Total counts each live cms_page row, and it includes the locked layouts. See Coverage report.

WARNING

The walker judges each entry by its key name and its value shape, and it knows nothing about individual element types. This covers the standard elements and compatible third-party elements. An unusual custom data structure can still contain text where the heuristics do not expect it, or a technical value where they do expect text. Test a representative layout on a staging shop before a bulk run. Keep the translation history on, so that you can roll a run back field by field.

Landing pages

Landing pages are a first-class content type. A run translates name, metaTitle, metaDescription, keywords and the translatable custom fields, and also the layout overrides that the walker processes.

The coverage matrix on the dashboard does not include landing pages. It reports on products, categories, Shopping Experiences and storefront snippets only. See Coverage report.

What the extension never translates

Not translatedWhy
Content types outside the table above: orders, customers, documents, SEO URLs, and all othersThey are not in the registry of the extension. The extension never reads order data or customer data for translation.
Fields outside the allowlist of each content typeOnly the listed properties are eligible, even where Shopware declares more of them as translatable.
Primary keys, computed fields, write-protected fields, foreign keysThe extension excludes them structurally.
Fields that you list under Settings → Advanced → Excluded fieldsThis is a hard exclusion, in each job and each automation run.
Custom fields that are not text or HTML, not active, or not marked as translatableSee Translatable custom fields.
Media files, URLs, colours, CSS classes, element ids and entity ids in layoutsThe CMS walker excludes them.
Placeholders, Twig fragments and URLs inside a translated textThe extension locks them before the call and puts them back unchanged, therefore their content never changes.
Snippet sets and languagesThe extension writes into the existing ones and creates none.

An uninstall keeps each translation that the extension wrote, because those are native Shopware translations. The extension deletes only its own data (jobs, errors, history, glossary, usage and settings), and only if you do not keep the user data.

  • Translation wizard for the content types, the scope and the custom-field switch.
  • Safety mechanisms for the placeholder protection, the HTML rules, the manual-edit protection and the SEO length limits.
  • Translation history for the field-level rollback path when a run gives a wrong result.

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