Checkout Translations
All tenants must migrate to this Checkout Translations system by End of October, 2025. See the Migration Guide for details and instructions.
SCAYLE's in-house translation management system allows tenants to manage Checkout localization with near real-time updates, flexible overrides, and default translations for 22+ locales.
Key Features
Tenants can access and update all checkout-related translations through the SCAYLE Panel. This includes both default translations and tenant-specific overrides.
- New translation keys, introduced through upcoming features, are automatically included in the system with default translations. A notification will be triggered in the SCAYLE Panel whenever a new translations is available.
- Changes saved through the SCAYLE Panel are reflected in the respective environments almost immediately – typically visible after the checkout frontend is refreshed (e.g., on a full page reload)
Translations must be configured separately for each environment (e.g., prev
, test
, and live
).
Default Translations
The checkout includes built-in default translations for the following locales. No manual publishing or configuration is needed — these translations are available out of the box:
Country | Locale Code | Language |
---|---|---|
🇩🇪 Germany | de_DE | German |
🇸🇪 Sweden | sv_SE | Swedish |
🇹🇷 Turkey | tr_TR | Turkish |
🇸🇰 Slovakia | sk_SK | Slovak |
🇸🇮 Slovenia | sl_SI | Slovenian |
🇷🇴 Romania | ro_RO | Romanian |
🇵🇱 Poland | pl_PL | Polish |
🇵🇹 Portugal | pt_PT | Portuguese (Portugal) |
🇳🇴 Norway | nb_NO | Norwegian (Bokmål) |
🇳🇱 Netherlands | nl_NL | Dutch |
🇱🇹 Lithuania | lt_LT | Lithuanian |
🇱🇻 Latvia | lv_LV | Latvian |
🇭🇺 Hungary | hu_HU | Hungarian |
🇮🇹 Italy | it_IT | Italian |
🇫🇷 France | fr_FR | French |
🇪🇪 Estonia | et_EE | Estonian |
🇫🇮 Finland | fi_FI | Finnish |
🇺🇸 United States | en_US | English (US) |
🇪🇸 Spain | es_ES | Spanish |
🇬🇷 Greece | el_GR | Greek |
🇩🇰 Denmark | da_DK | Danish |
🇧🇬 Bulgaria | bg_BG | Bulgarian |
🇨🇿 Czech Republic | cs_CZ | Czech |
Don’t see your shop’s country in the default list? No problem! Check the Locale Overrides section below for a detailed example on how to set up translations for shops in countries not covered by the default locales.
The locale code (e.g., de_DE
) refers exclusively to the language and regional formatting, not to the physical location of the shop. For example, it is perfectly valid to use the de_DE
locale for a shop operating in Austria if it serves German-speaking customers. The country component (DE
in this case) is part of the standard locale naming convention and does not restrict the shop to that country.
Fallback behavior
The checkout uses multiple layers of translations, loaded in a specific order. If a translation is missing in one layer, the system automatically falls back to the next one. Here is how it works:
Layer Name | Hierarchy | Description |
---|---|---|
Panel Translations | 1 - Highest priority | These are custom translations made by tenants directly in the SCAYLE Panel. If a translation key is defined here, it will always be used. |
Locale-Specific Defaults | 2 - Medium priority | For example, if a shop is configured with de_DE , the default German translations are loaded automatically—no extra setup required. |
Global Default (en_GB) | 3 - Lowest priority | This is the fallback language. If no translation is found in any of the layers above, the system uses the English (UK) default (en_GB ).If customers see English text, it usually means that a translation is missing in their local language. |
All these layers are merged together using a fallback logic: If a key is missing from the top layer, the system checks the next one—until it finds a match.
This setup ensures both consistency and flexibility across markets, enabling centralized control with local customization.
Practical example is outlined here.
Translation Overrides & Locale-Specific Defaults
To keep your checkout fast and smooth, only change translations if they really need to be different from the default ones provided. Every time you add an override in the SCAYLE Panel, it’s stored separately and loaded on top of the default translations. If unnecessary overrides are added, the size of the translation file is increased, which may slightly impact loading speed.
In practice, users will hardly notice the difference—but depending on the size of the override file, it could add, for example, around 100ms to the checkout loading time.
How to Use Locales Effectively in SCAYLE Panel
We provide default translations for the most common locales, tenants are encouraged to use these standard options wherever possible.
🔍 Example 1 - Shop Country Not in Default Locale List
Case 1: Let’s say you have a shop targeting customers in Ireland. While Ireland isn’t listed in the default locale table, you can still setup the existing en_GB
(English) locale.
Case 2: However, let's say you are running a shop in Croatia, and no specific hr_HR
(Croatian) locale is available. For newly created shops, the checkout will fall back to the default English (en_GB
) translations, since we do not provide built-in support for Croatian yet. To display the checkout in Croatian, you should upload, publish and manage the hr_HR
translations manually via the SCAYLE Panel.
Case 3: Both Germany and Austria use the German language. If de_AT
is not part of the default locale list, the system will default to en_GB
. To enable full German translations, you can manually switch the locale to de_DE
in the SCAYLE Panel.
🔍 Example 2 - Multi-Locale Shops in One Country
Suppose you have just created three dedicated shops for Switzerland, each serving a different language group:
- Switzerland shop, German language (e.g.: Shop ID 101)
- Switzerland shop, French language (e.g.: Shop ID 102)
- Switzerland shop, Italian language (e.g.: Shop ID 103)
Since we do not have a Switzerland-specific locale, the new shops will receive each our default en_GB
. To configure the respective locales using our existing defaults:
Shop ID | Shop Country | Targeted Language | Default Locale |
---|---|---|---|
101 | Switzerland | German | de_DE |
102 | Switzerland | French | fr_FR |
103 | Switzerland | Italian | it_IT |
You can still opt to use different locales such as ch_DE
, ch_FR
, ch_IT
, etc. However, as previously outlined, those locales will not receive automatic translation updates.
Let's say you decide to keep use such locale for the Switzerland shops. During checkout loading, the system attempts to resolve the best available match:
- First, checking for the exact custom locale (e.g.:
ch_IT
). - If it doesn't exist, the system tries to map by country component (we split
ch
andIT
and try to find in our defaults a language component that belongs toch
). In this case, since there is no component specific for Switzerland, no match will be found. - Next, the system defaults to English (
en_GB
).
As an outcome for the above example, the users may see a combination of translated keys in the custom language and fallback values in either English or a related default locale.
Since we always fallback to English language in case no match was found in the previous layers, there are no situations in which the checkout will display translation keys to the users.
🔍 Example 3 - Country-Specific Translations for Shared Locale:
Although the default translation setup includes general locale codes like de_DE
for German, country-specific variations can be handled through translation overrides in Panel. These overrides are applied at the shop level, meaning different shops can have different translations for the same key.
Suppose you want to configure different translations for the same shipping method key for Austria and Germany while using our default de_DE
. This can be configured by:
- Selecting each shop in the SCAYLE Panel
- Choosing the
de_DE
locale - Overriding the same translation key with shop-specific values
Shop ID | Shop Country | Default Locale | Translation Key | Default Translation | Override |
---|---|---|---|---|---|
101 | Germany | de_DE | shipping_method.dhl_express | "DHL Express" | "DHL Express (9,99€)" |
102 | Austria | de_DE | shipping_method.dhl_express | "DHL Express" | "DHL Express (14,99€)" |
The system ensures that these shop-level overrides are prioritized when translations are loaded in the checkout, allowing full flexibility even when the same locale is used across markets.
How to Manage Translations
For detailed steps on how to manage translations within the SCAYLE Panel, please refer to this guide.