Help · Content & Design · Languages & Translation

Languages and Translation

Your store can sell in multiple languages. This guide shows you how to enable a language, where to translate specific texts, how to change fixed store texts in xoLanguage, and what DeepL translates for you. You’ll also learn which language is used for orders, emails, and receipts.

At a Glance

  • Languages: Go to Settings → Languages / Currencies → Languages. New stores come with 19 languages pre-configured, but only German is enabled by default. “Frontend Status” displays the language currently active in the store, while “Admin Status” provides the tabs for translation.
  • Content: You can manage products, categories, CMS pages, news articles, and email templates in separate tabs for each language.
  • Fixed store texts: You can change texts in the shopping cart and checkout, buttons, payment method names, and total line items under Tools → xoLanguage as “custom values.”
  • DeepL: With your own DeepL key, a button above the text fields translates the text of the default language. The automatic translation in the background is provided by the “Automatic Translation with DeepL” add-on module; XONIC Support will set it up for you.
  • Orders: Emails and receipts are sent in the language the customer used to place the order.

In this guide


Where Text Is Translated

Text is located in three places: in the data records (with one tab per language), in the language files, and in the forms of individual modules. The table shows where to find each item.

TextWhere to Translate It
Name, descriptions, and meta tags of a productin the article under Products → Categories / Products: Name in the “General” tab, descriptions in the “Description/Tabs” tab, meta tags in the “SEO” tab—each for each language
CategoriesProducts → Categories / Products, Edit Category, per language
Features and their valuesProducts → Product Attributes, one field per language
Product Extra FieldsProducts → Product Extra Fields: Each field belongs to a language; see What Happens When You Turn It On
CMS Pages and Modules such as the FooterCMS → CMS Manager; see CMS & Emails
News ArticlesCMS → News Articles, see News Articles
Email TemplatesCMS → Emails & Marketing / Automations, see CMS & Emails
Name and description of a shipping methodSettings → Checkout → Shipping Methods, Edit Shipping Method, tabs for each language
Texts for a payment method when selected, in the order summary, and in the order confirmationin the payment method screen under Settings → Checkout → Payment Methods, see Payment Methods
Name of a payment method, such as “Prepayment”Tools → xoLanguage, payment method section, such as “payment_moneyorder”
Total lines such as “Shipping Costs”Tools → xoLanguage, “order_total” section
Order StatusOrders → Order Status, one field per language
Titles and SEO names of static store pages such as Shopping Cart, Checkout, and ContactSettings → SEO / SEA → Titles & Meta Tags, see SEO & Redirects
Buttons, text in the Shopping Cart, Checkout, and Customer Account, error messagesTools → xoLanguage, see xoLanguage

Enable a language

You can manage languages under Settings → Languages / Currencies → Languages. New stores come with 19 languages pre-configured, including English, French, Italian, Spanish, and Dutch. Only German is enabled by default. For the pre-configured languages, the fixed store texts are largely already translated. Some newer texts are missing in certain languages; in such cases, they appear in the default language.

Each language has two toggles in the list. They function independently of one another:

SwitchEffect
“Frontend Status”The language appears in the store: in the language selection, with its own URLs, and as the destination for redirection based on the browser language.
“Admin Status”The language gets its own tab in the backend screens, appears in xoLanguage, and is available as a language option when logging into the backend.

Here’s how to proceed

  1. Enable “Admin Status” for the desired language in the list. The store will now create a version in the new language for products, categories, pages, email templates, and other areas—initially as a copy of the texts from the default language.
  2. Translate the texts: manually in the tabs for the new language, using the DeepL button, or with automatic translation (see DeepL).
  3. Enable“Frontend Status.” Only now will your customers see the language.
  4. Check the email templates, legal notices, and a test order; see the checklist.
Language list in the backend with the columns Name, Description, Code (ISO 639-1), Sort Order, Frontend Status, and Admin Status: German (default) and English are both active; French is active only under Admin Status; Italian, Spanish, and Dutch are inactive

Under Settings → Languages / Currencies → Languages, toggle “Frontend Status” and “Admin Status” separately for each language; French is currently enabled only in the backend. Click to enlarge.

Do not enable “Frontend Status” until the texts have been translated. Otherwise, customers and search engines will see the default language’s texts when accessing the new language’s URLs.

Default Language

The default language is marked with “(Default)” in the list. It cannot be disabled or deleted. DeepL uses this language for translations, and its URLs do not include a language code. Use “Set as Default” to make another language the default. This will change all of your store’s URLs. Therefore, please discuss any changes with us beforehand.

Frontend Only

A language can be visible in the store without having its own tab in the backend. The list will then show “Frontend Only – Maintenance is handled automatically via DeepL; no backend editing tab.” This is only suitable if DeepL automatically translates all texts. You cannot edit the texts for this language either in the forms or in xoLanguage. For newly created products and pages, the store generates the version in this language when someone opens the Languages page. As a rule, you should therefore enable both toggles.

Create Your Own Language

If a language is missing, create it using the “Insert” tab: “Name” (this is how it appears in the language selection), “Encoding” with two letters according to ISO 639-1, such as pt, “Sort Order,” both statuses, and “Duplicate language values from the following language.” The store copies all texts and language files for the selected language. The store’s fixed texts will still be available in this language afterward. You can delete languages you’ve created yourself, but you can only deactivate pre-installed ones.


What Happens When a Language Is Enabled

When a language is enabled—either in the frontend or backend—the store adds any missing versions for that language. To do this, it copies the texts from the default language. Anything that has already been translated remains as is.

Copy of the default language

Products, categories, attributes, CMS pages, news articles, email templates, shipping methods, order statuses, and other areas receive a copy of the German texts. The shop does not copy customer reviews: they appear only in the language in which they were written.

Product Extra Fields

An extra field always belongs to a specific language. Fields you created for German do not appear in the new language and are not copied. Create your own fields for the new language under Products → Product Extra Fields and fill them in for the product. “Language” = “All” creates one field per language with “Admin Status.”

Addresses

Pages in an additional language begin with /lng/ followed by the language code, such as /lng/en/. The copied German name appears immediately after that. Only after you translate the name will the URL also appear in the new language; see SEO Names.

Fixed Store Pages

If a static store page, such as the checkout page, lacks a name in the new language, the store uses the German name with the language code appended, such as kasse-en. This ensures that every URL remains unique. Translate the names under Settings → SEO / SEA → Titles & Meta Tags.


Changing Languages in the Store

As soon as more than one language has “Frontend Status,” the store displays a language selector in the header. Switching languages takes you to the same page in the other language.

At the top is the shop's header section with the globe icon between the search bar and the customer account; below that is the same category page with the "Language" window open on the right-hand side and the options DE – German (selected) and EN – English

Clicking the globe icon in the header opens the language selector on the right-hand side. Click to enlarge.

Language Selection

Show or hide this feature via Settings → Design → Header → Show/Hide Language Selection in Header; enabled by default. The order of the languages is determined by the “Sort Order” setting.

Addresses by Language

The default language uses addresses without abbreviations; other languages begin with /lng/en/, /lng/fr/, etc. The store permanently redirects old links starting with ?language=en to the new format.

Based on browser language

With Settings → General → Basic Settings → “Adapt store language to browser language ” (off by default), the store directs visitors to the version in their browser language upon their first visit, provided that language is enabled in the store. Visitors who switch languages themselves afterward retain their selection. The store does not redirect search engines.from 4.9.47

Shopping Cart

After a language change, the shopping cart displays the selected attributes in the new language, and they will appear that way in the order as well. If the name of an attribute is missing in that language, the shop uses the namefrom the default language.from 4.9.33

Changing the language does not change the currency; see “Currency by Country.”


Translate Content by Language

Products, categories, CMS pages, news articles, email templates, and many other data records have their own tab or field with the language code for each language with “Admin Status.”

An empty field creates a copy

If you leave a field for another language blank, the store will copy the text from the default language into it when you save. If you later change the German text, the copied text remains unchanged. You can then maintain both languages or let the automatic translation handle it.

Translate with DeepL

If a DeepL key is configured, the “Translate via DeepL” button—or simply “DeepL”—appears to the right of each text field in the tabs for the other languages. It translates the text from the default language field exactly as it appears in the form. Save as usual afterward.

Links in the Text

Link to pages in your store using the editor’s link dialog, for CMS pages via the “CMS Links” drop-down list, or with an address without a domain, such as store-cms.php?cID=<ID>. The store will then construct the address in the visitor’s language. It will retain a complete address with https:// unchanged; it always leads to the same language version.

Product Detail Page, Description Tab, Language Tab (EN) with a brief English product description and product description; above each field on the right is the "Translate with DeepL" button

In the EN tab, “Translate via DeepL” translates the text from the German field into the field below it; then save as usual. Click to enlarge.

Good to Know

  • ContentEditor: Finish building the page in the default language before translating; see ContentEditor.
  • Manufacturer: The automatic translation does not translate manufacturer texts. Use the DeepL button in the screen under Products → Manufacturer.
  • Customer reviews remain in the author’s language. There is no translation available.

Modify fixed store texts: xoLanguage

Texts that do not belong to any product or page are located in the language files: buttons, texts in the shopping cart, checkout, and customer account, error messages, as well as the names of payment methods and total lines. You can edit them under Tools → xoLanguage.

  1. Under “Framework,” select “Frontend.” This contains the shop’s text; “Backend” contains the backend text.
  2. Under “Section,” select the page where the text appears (see table below). Use the arrows next to the selection or the arrow keys on your keyboard to navigate to the previous or next section. Sections highlighted in red contain texts that are still missing in a particular language.
  3. Find the text using your browser’s search function (Ctrl+F,Cmd+F on a Mac). There is no search function that covers all sections.
  4. Click “Custom Value” in the row and enter the new text for each language in the additional row.
  5. Click“Update” and reload the store page.
xoLanguage with the Frontend framework and the order_total section, including (with the remaining keys in the section omitted) the row MODULE_ORDER_TOTAL_PACKAGING_COSTS_TITLE with “Packaging Costs” and “Packaging costs,” as well as the yellow-highlighted row containing its own value with “Verpackungspauschale” and “Packaging fee”

Enter your own value for each language in the yellow row below the provided text—in this case, “Flat-rate shipping fee” instead of “Shipping costs” (excerpt). Click to enlarge.

Always enter your change as a “custom value.” The store saves your custom values in a separate file that won’t be overwritten by any updates. The top line with the default text, on the other hand, is overwritten by every update; it is locked for regular administrators anyway. If a custom value is already saved, it appears in yellow directly below the key.

Which section belongs to which page

Where the text appearsSection
On all pages: header, footer, buttons, text in emails, salutationdefault
Shopping Cartstore-checkout-cart
Login and registration, including on the way to checkoutcustomer-login
Checkout: Shipping, payment, review order, complete ordercheckout-step2, checkout-step3, checkout-step4, checkout-step6
Customer account, such as address book and personal informationcustomer, customer-address, customer-edit and others with customer-
Product pagestore-products
Total lines such as packaging costsorder_total
Add-ons to shipping methods such as “Ship to”shipping
Name and description of a payment methodpayment_ and the module name, such as payment_moneyorder for prepayment
Error messages in formsform-errors

Examples

Rename packaging costs

"order_total" section, key MODULE_ORDER_TOTAL_PACKAGING_COSTS_TITLE (default: "Verpackungskosten"). Enter your own value for each language, such as "Verpackungspauschale" and "Packaging fee."

Renaming a payment method

For prepayment: “payment_moneyorder” section, key MODULE_PAYMENT_MONEYORDER_TEXT_TITLE. The other payment methods each have their own section prefixed with payment_.

Login and Registration

“customer-login” section, for example TEXT_AUTH_LOGIN_HEADING (“Welcome back”), TEXT_AUTH_REGISTER_HEADING (“Create an account”), and TEXT_AUTH_GUEST_NOW (“Order as a guest”).

Note in the shopping cart

“store-checkout-cart” section, such as TEXT_INFO_SHIPPING_ESTIMATOR (“Any discounts or credits will not be applied until you proceed to checkout!”) or the notice regarding out-of-stock items OUT_OF_STOCK_CAN_CHECKOUT. The same key is often also found in a checkout step section; be sure to change it there as well.

“Address Book”

The heading “My Address Book” appears in the “customer-address” section. The word also appears in “customer-address-change,” “checkout-step2,” and “checkout-step3.” A piece of text often appears in multiple sections; be sure to check every page after making changes.

Good to Know

  • Which languages: xoLanguage displays one column per language with “Status Admin.”
  • Missing text: If text is missing in a language, the store displays the text from the default language.
  • DeepL in xoLanguage: If a DeepL key is configured, a “DeepL” button appears below empty fields. “Custom DeepL” translates your own values for the section from the German value into the empty fields of the other languages. Then click “Update.” The automatic translation does not update the language files.
  • Red message regarding max_input_vars: xoLanguage requires the PHP setting ` max_input_vars ` to be set to at least 100,000. If this setting is missing, the page displays this message instead of the text; your hosting provider must increase the value.

Shipping Methods, Payment Methods, Statuses, and Emails

You can edit some texts directly in the module’s interface, with a separate tab or field for each language.

Shipping Methods

Edit the shipping method under Settings → Checkout → Shipping Methods. The tabs for each language contain “Name” and “Description.” If the “Name” field is left blank, it will default to the name in the default language when saved. See Shipping & Delivery for instructions on how to create shipping methods.

Payment Methods

The text displayed during selection, in the order summary, and in the order confirmation is entered in the payment method screen below the fields, with a separate tab for each language. You can change the name itself—such as “Prepayment”—in xoLanguage. See Payment Methods for details.

Order Status

Under Orders → Order Status, each status has one field per language. In the customer account, the customer sees the status in the language they are currently using to browse the store; in the status email, it appears in the language of the order.

Email Templates

Under CMS → Emails & Marketing / Automations, each template has a tab for each language, with DeepL buttons for the subject line and text. Review each template in the new language; see CMS & Emails.

Edit the "Shipping Method 1" shipping method under Settings → Checkout → Shipping Methods, on the EN language tab, with the name "Standard shipping" and the description "Delivery in 2–3 business days"

You can edit the name and description of the shipping method in its settings screen, with a separate tab for each language. Click to enlarge.


Switching the Store to the "Du" Form

There is no pre-made “Du” version of the German texts. The provided texts use the formal “Sie” form. To switch to the informal “Du” form, edit the texts at these points.

  1. Fixed store texts in xoLanguage are stored as separate values for each section. Start with “default,” “store-checkout-cart,” “customer-login,” and the checkout sections “checkout-step2” through “checkout-step6,” followed by the customer account sections.
  2. Salutation in emails: In the email templates, replace the placeholder {SALUTATION} (“Dear Ms. Sample”) with {SALUTATION_INFORMAL} (“Hello Erika”). The salutation formulas are located in xoLanguage, “default” section, keys SALUTATION_FORMAL … and SALUTATION_INFORMAL ….
  3. Rewritethe email templates and CMS pages in the respective tabs, as well as the texts for payment methods and shipping options.
  4. Click through the entire store: shopping cart, login, checkout, customer account, and place a test order to trigger all emails.

Set up DeepL

DeepL translates text from the default language into your other languages in the backend. To do this, you’ll need your own DeepL account with access to the application programming interface (API), either free or paid.

  1. Copy the API key from your DeepL account.
  2. Under Settings → Interfaces → Translation Tools → DeepL, enter the key in the “DeepL Authkey” field.
  3. Selectthe “DeepL API Mode” that matches your account: free for the free account, paid for the paid account. After that, the store will send its requests to the appropriate address at DeepL.
  4. Save. From now on, the DeepL buttons will appear in the forms.
Settings → Interfaces → Translation Tools → DeepL, with the fields "DeepL Authkey" (placeholder key consisting of zeros), "DeepL API mode" set to "paid," and "DeepL Tag Handling Version" left blank

The key and API mode must match your DeepL account: “paid” for the paid account, “free” for the free account. Click to enlarge.

Switch to Pro

Enter the key for the paid account and set “DeepL API Mode” to paid. The key and mode must match; otherwise, translations will fail. If you’re using automatic translation, please let us know in advance: Your background task depends on the key and must be adjusted accordingly.

Logging in to DeepL

The shop sends the key in the header of each request to DeepL, not in the URL. This is how XONIC 4 has worked from the start. Due to changes in DeepL’s login procedures, you do not need to make any adjustments.

Quota

DeepL charges by character. Once the quota is used up, the button displays “DeepL quota used up …” and leaves the field unchanged. Automatic translation pauses and resumes on the next run. If the key is incorrect, the message “DeepL: Authentication failed…” appears.

Tag Handling Version

Leave “DeepL Tag Handling Version” blank. In that case, the settings from your DeepL account will apply. Set a version only if your account definitely supports it.


Automatic Translation with DeepL

Instead of translating field by field, the store can translate your content regularly in the background. This automatic translation is provided by the XONIC Premium add-on module : Automatic Translation with DeepL. After you sign up, XONIC Support will set it up for you. We’ll work with you to determine which languages and which sections will be translated. You can use the DeepL button above the text fields even without the add-on module.

What gets translated

Categories, products (name, descriptions, checkout description, meta tags, image titles), product tabs, attributes and values, CMS pages and boxes, email templates, news articles and news categories, FAQs, sliders, shipping methods and shipping profiles, pickup locations, coupons, order statuses, product badges, text blocks, as well as the title and description of the homepage. Translations are performed into all enabled languages unless we specify otherwise.

What Is Not Translated

The language files—including your own values from xoLanguage—as well as manufacturer texts, product extra fields, and customer reviews. You translate these texts yourself, in xoLanguage and in the forms using the DeepL button.

When translation occurs

Each run translates anything that DeepL has never translated before, as well as anything whose text in the default language has changed since the last run. It doesn’t matter if a field is empty in the target language: the run will overwrite even a filled field—such as the copy of the German text or your own translation—as long as DeepL hasn’t translated the data record yet.

Order and Duration

The shop translates up to 100 records per run and section. Smaller sections such as categories, CMS pages, and email templates are processed first, while the product catalog is processed last. A large catalog therefore requires multiple runs.

Before the first run: The first run translates everything that DeepL has never translated before, overwriting existing translations in the target languages in the process. It uses a corresponding number of characters from your quota. Let Support know in advance which sections you have translated yourself; these can be excluded.

If you change the German text

  • If you save a record with modified text in the default language, the next run will retranslate it into all target languages—including all fields in the record. It will overwrite any corrections you’ve made in a target language. Therefore, make corrections only after the run is complete.
  • If you save without changing the text—for example, after a price or inventory change—the shop will not retranslate anything.
  • If DeepL translates a name anew, the address in the target language may change. The store will redirect to the old address; see SEO names.
  • Without automatic translation, click “Translate via DeepL” again in the tabs for the other languages and save.

Under Tools → Server Info & Health Check, the shop will notify you if DeepL is set up, if texts are waiting to be translated, and if nothing has been translated for the past two days. This means the task is no longer running in the background; please contact us.from 4.9.139


Save Costs, Protect Sections, Glossary

Content that isn’t sent to DeepL doesn’t count toward your quota. And once something has been translated, the shop will only retranslate it if the source text changes.

Protect sections

The shop does not send anything in the source text between <!-- xo:notranslate --> and <!-- /xo:notranslate --> to DeepL. It replaces this section with a short placeholder before sending and inserts it back unchanged afterward. Place these two markers in the editor’s source code view around code, size charts, or embedded content.

Already protected

Scripts and style specifications, embedded videos, audio, and iFrames; elements containing translate="no"; placeholders such as {STORE_NAME} or %s; and the Content Editor’s “Code,” “Video,” “Form,” “Countdown,” and “Product List” blocks are not sent to DeepL as text.

No duplicate translations

The store remembers the status of each record and language that DeepL has translated. Saving without changing the text, imports with unchanged text, and synchronizations from the inventory management system do not trigger a new translation. Only Support can trigger a complete reset of this status; after that, the translation process will translate everything anew.

Limit languages and sections

We can specify the target languages and exclude individual sections or fields. For products, this can be done separately for individual products, main products, and variants—for example, translating only the names of the variants.

Glossary for Fixed Terms

Terms that DeepL should always translate the same way—such as product names or technical terms—are stored in a glossary for each language pair. For German to English, this is located at DE_EN. There is exactly one translation per term.

  • The glossary takes effect for automatic translation starting with the next run. The “Translate with DeepL” button in the forms does not use it.
  • A glossary only specifies the translation of the terms entered. It does not account for paraphrases. Check important pages after the run.
  • Terms with multiple meanings should not be included in the glossary; otherwise, DeepL will translate them the same way everywhere.

Order Language and Customer Language

Every order and every customer account has a language. Emails and receipts are based on this.

Order in the Store

The order language is the language in which the customer placed the order. Order confirmations and status emails are sent in this language, and the store uses it to generate invoices and other documents. You can change it in the order editor in the “Customer Language” field; the languages available for selection are those marked “Status Admin”—see Orders.

Customer Account

Upon registration, the account is assigned the language the customer is currently using to shop. The customer can change it under “My Account,” “My Personal Data” in the “Language” field. You can change it in the customer’s profile under the “Customer Data” tab, in the “Customer Language” field. Emails regarding the account, such as password-related messages, are sent in this language.

Orders from Marketplaces and Interfaces

If an order is placed without going through the store’s checkout—for example, from a marketplace, via Billbee, or through the xoPort interface—it will be assigned this language:

  1. the language provided by the vendor for the order—such as Billbee, Galaxus, and the Mirakl marketplaces—or, in the case of xoPort, the language passed along;
  2. otherwise the language of the customer account,
  3. otherwise the store’s default language.

Only languages that are enabled in the store are taken into account. Amazon, eBay, Kaufland, and OTTO do not specify a language; orders from these platforms are processed in the language of the customer’s account or in the default language, even if they come from an international marketplace. from 4.9.135


Search Engines: Addresses, hreflang, Sitemap

Each language has its own URLs. To ensure search engines correctly map the language versions, the store handles most of this itself.

  • hreflang: Each page lists its versions in the other enabled languages and the default language as x-default. Settings for a multishop with one domain per marketplace can be found under SEO & Redirects: hreflang.
  • SEO Names: Translate the names so that the URLs appear in the respective language; see SEO Names.
  • Sitemap: Add the new language under Settings → SEO / SEA → SEO Settings → SEO Sitemaps Languages; see Sitemaps.
  • Disabling a Language: If you disable a language in the frontend, the store will permanently redirect its existing URLs for products, categories, CMS pages, and news articles to the version in the default language.

Currency by Country

Language and currency are separate. Changing the language does not change the currency.

Under Settings → Checkout → General → Automatic Currency Change: Destination Country (enabled by default), the currency changes based on the shipping country—for example, to CHF for Switzerland and to EUR for EU countries—provided you have set up the currency under Settings → Languages / Currencies → Currencies. The Prices & Customer Groups guide describes exchange rates and currency conversion based on IP address.


Checklist: Launching a New Language

Go through these steps in order before your customers see the new language.

  1. Enable “Status Admin,” but leave “Status Frontend” disabled for now.
  2. Translate content: manually, using the DeepL button, or with the add-on module for automatic translation.
  3. In xoLanguage, translate your own values for the new language and check the sections highlighted in red: text is missing in one of the languages there.
  4. Create and fill out product custom fields for the new language.
  5. Check email templates, legal texts, and payment method descriptions in the new language; see Legal Texts.
  6. Check names and SEO names, and add the language to the sitemap.
  7. Enable “Frontend Status” and check the language selection in the store.
  8. Place a test order in the new language and check the order confirmation, status email, and invoice.


Frequently Asked Questions

How do I enable an additional language in the frontend?

Go to Settings → Languages / Currencies → Languages, enable “Admin Status” for the language, translate the texts, and then enable “Frontend Status.” The language selector appears in the shop header as soon as two languages have “Frontend Status” enabled and “Show/Hide Language Selector in Header” is turned on. See all steps under “Enable Language.”

What happens to product fields and SEO URLs when I enable a new language?

The store copies the texts from the default language into the new language, including the SEO names. Therefore, the URLs will initially be /lng/en/ plus the German name until you translate the names. It does not copy product extra fields, as each extra field belongs to a specific language. Create them for the new language. See “What Happens When You Enable a Language” for details.

Where do I translate terms like the “packaging fee”?

Under Tools → xoLanguage, “Frontend” framework, “order_total” section, key MODULE_ORDER_TOTAL_PACKAGING_COSTS_TITLE. Click “Custom Value,” enter the text for each language, and click “Update.” The other total lines are in the same section.

How do I translate the names of shipping methods and payment methods?

Shipping methods: Go to Settings → Checkout → Shipping Methods, edit the shipping method, and enter the “Name” and “Description” in the language tab. Payment Methods: Enter the name in xoLanguage in the payment method section—for example, “payment_moneyorder” for prepayment—and enter the payment method texts in their respective fields for each language.

How do I find a text in xoLanguage, for example, “Address Book”?

Select the section of the page where the text appears. The section is named after the page; for the address book, it’s “customer-address.” UseCtrl+F to search the page. Text that appears on all pages is located in “default.” You can find the table of sections under xoLanguage.

Where do I change the note text in the shopping cart?

In xoLanguage, under the “store-checkout-cart” section. All the text for the shopping cart page is listed there, such as “ TEXT_INFO_SHIPPING_ESTIMATOR ” (“Eventuelle Rabatte oder Gutschriften werden erst berechnet, wenn Sie zur Kasse gehen!”) and the note about out-of-stock items (OUT_OF_STOCK_CAN_CHECKOUT). Enter your text as a “custom value.”

How do I rename the text for logging in and registering during checkout?

In xoLanguage, under the “customer-login” section. The page for logging in and registering is the same regardless of whether the customer is coming from the checkout or not. Examples: TEXT_AUTH_LOGIN_HEADING, TEXT_AUTH_REGISTER_HEADING, TEXT_AUTH_GUEST_NOW.

Are the German shop texts in the informal “du” form?

No. The provided texts use the formal “Sie” form. You can switch to the informal “Du” form by editing the texts in xoLanguage to your own values, using {SALUTATION_INFORMAL} instead of {SALUTATION} in the email templates, and rewriting CMS pages as well as payment method and shipping texts. The instructions are listed under “Du” instead of “Sie.”

Why does a link on a CMS page in one language open the wrong language version?

Usually, the text contains a full address with https://. The store adopts this unchanged, so it always leads to the same language. Set the link using the editor’s link dialog (“CMS Links”) or as an address without a domain, such as store-cms.php?cID=<ID>. Then the store will construct the address in the visitor’s language.

Why does a product attribute appear in the wrong language in the shopping cart after switching languages?

The shopping cart updates the product attributes to the new language when the language is changed. If a product attribute still appears in the default language, its name is missing in the selected language. Enter it under Products → Product Attributes.from 4.9.33

How do I enable automatic translation via DeepL?

Purchase the XONIC Premium add-on module : Automatic Translation with DeepL, and enter your DeepL key under Settings → Interfaces → Translation Tools → DeepL. XONIC Support will set up the background translation and work with you to define languages and areas. Be sure to read Automatic Translation first.

Does automatic translation cost extra?

Yes. Automatic background translation is part of the XONIC Premium add-on module : Automatic Translation with DeepL. You can use the DeepL button above the text fields without the add-on module. In both cases, DeepL bills you directly for the translated characters.

How do I enter my DeepL credentials and switch to the Pro plan?

Under Settings → Interfaces → Translation Tools → DeepL, enter the key in “DeepL Authkey” and select “DeepL API Mode”: free for the free account, paid for DeepL Pro. When switching to Pro, enter the new key and set the mode to paid.

Do I need to make any adjustments due to the change in how I log in to the DeepL API?

No. The store has always sent the key in the header of the request to DeepL. Just make sure the key and “DeepL API Mode” match your DeepL account.

How do I update translations if I change the German text?

With automatic translation: Save the modified German text. The next run will retranslate the data set into all target languages, overwriting any corrections you’ve made. Without automatic translation: Click “Translate via DeepL” again in the tabs for the other languages and save. Copies from empty fields won’t be updated automatically.

How do I prevent DeepL from translating already-translated items multiple times?

The shop handles this automatically: It only re-translates an item if the text in the default language has changed. Saving without text changes, inventory reconciliations, and imports with identical text are free of charge. Additionally, everything is re-translated when the saved status is reset; this is triggered only by Support.

How do I prevent HTML code from increasing DeepL costs?

Enclose code, tables with dimensions, or embedded content in the source text between <!-- xo:notranslate --> and <!-- /xo:notranslate -->. The store does not send these sections to DeepL. It already protects scripts, embedded videos, and the Content Editor’s code, video, form, countdown, and product list modules.

Why did DeepL overwrite my own translation?

The run translates every data record that DeepL has never translated before, even if the target language section is already filled. And it translates again as soon as the German text changes. Therefore, please make corrections only after the run is complete, and let us know which sections we should exclude.

Why do my own texts from xoLanguage remain in German in the new language?

The automatic translation does not include the language files. Enter your own value for each language. With a DeepL key, “Custom DeepL” in xoLanguage translates a section’s custom values from the German value into the empty fields of the other languages.

In which language does a customer receive the order confirmation and invoice?

In the language of the order—that is, the language in which they placed the order. You can change this in the order editor in the “Customer Language” field. Emails regarding the customer’s account are sent in the account’s language.

Why are orders from the French marketplace processed in German?

Amazon, eBay, Kaufland, and OTTO do not specify a language for the order. The order then defaults to the language of the customer’s account; otherwise, it uses the store’s default language. If French has “Admin Status,” you can change the language in the order editor.

Further Guides

We’ll set up your languages together with you

We’ll help you set up automatic translation, select the relevant sections, and manage the glossary—and if a text isn’t where you expect it to be.

Contact Support Now