---
title: "Multi-language support"
canonical: "https://ingrid-support.refined.site/space/KB/743768066/Multi-language%20support"
format: markdown
---
Ingrid presents your delivery experience in your shopper's own language — in the checkout, on the tracking page, in the returns portal, and in delivery notifications. You do not translate Ingrid's own wording; that ships with the product. What you translate is the wording you invented yourself.

> ⚠️ **Language coverage is not the same across products.** A language available in the Checkout widget is not automatically available in Tracking, Returns, or Notifications. The table below is the authoritative list.

## How it works

1. You pass a **locale** when you create a checkout session — for example `sv` or `de-at`.
2. Ingrid matches it to the closest supported language for that product.
3. Content configured in the Ingrid Merchant Platform is shown in that language.
4. **If a translation is missing, Ingrid falls back to your default language** rather than showing an empty value.

The fallback is why an unsupported locale never breaks a checkout — but it does mean a shopper sees your default language instead of their own, silently. If a market matters to you, check it in the table rather than relying on the fallback.

## What's translated for you, and what you translate

This is the part most teams get wrong, so it is worth being precise:

| What | Who provides it | Example |
| --- | --- | --- |
| **Ingrid's own interface wording** | Ingrid — built in, no setup | Buttons, field labels, error messages, "estimated delivery" |
| **Your delivery content** | You — set up per language | Delivery category names, custom text, warning text, category labels |

So "multi-language support works out of the box" and "you need to add translations" are both true, of different things. Ingrid's wording is translated the moment you pass a supported locale. Your own delivery category names appear in whatever language you typed them in, until you add a translation for each language you serve.

Adding translations for delivery categories is covered in [Setting up translations](https://support.ingrid.com/space/KB/14614543/Setting+up+translations).

## Supported languages

✓ = available. Where two codes are shown, the second is the Ingrid Returns format — **Ingrid Returns runs on a separate back office and uses uppercase codes with underscores**. Use the code that matches the product you are integrating.

| Language | Code | Checkout, upsell, product page | FAQ widget | Tracking | Returns | Notifications |
| --- | --- | --- | --- | --- | --- | --- |
| Bengali | `BEN` |  |  |  | ✓ |  |
| Bulgarian | `bg` / `BG` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Chinese (simplified) | `zh-Hans` / `ZH` | ✓ | ✓ | ✓ | ✓ |  |
| Croatian | `hr` / `HR` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Czech | `cs` / `CS` | ✓ | ✓ | ✓ | ✓ |  |
| Danish | `da` / `DA` | ✓ | ✓ | ✓ | ✓ |  |
| Dutch | `nl` / `NL` | ✓ | ✓ | ✓ | ✓ |  |
| Dutch (Belgium) / Flemish | `nl-be` / `NL_BE` | ✓ | ✓ | ✓ | ✓ |  |
| English | `en` / `EN` | ✓ | ✓ | ✓ | ✓ |  |
| English (Australia) | `en-au` | ✓ | ✓ | ✓ |  |  |
| English (Canada) | `en-ca` | ✓ | ✓ | ✓ |  |  |
| English (Ireland) | `en-ie` | ✓ | ✓ | ✓ |  |  |
| English (UK) | `en-gb` |  | ✓ |  |  |  |
| English (US) | `en-us` | ✓ | ✓ | ✓ |  | ✓ |
| Estonian | `et` / `ET` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Finnish | `fi` / `FI` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Finnish (Swedish) | `fi-se` | ✓ |  | ✓ |  |  |
| French | `fr` / `FR` | ✓ | ✓ | ✓ | ✓ | ✓ |
| French (Belgium) | `fr-be` / `FR_BE` | ✓ | ✓ | ✓ | ✓ |  |
| French (Canada) | `fr-ca` | ✓ | ✓ |  |  |  |
| French (Switzerland) | `fr-ch` | ✓ | ✓ |  |  |  |
| French (Luxembourg) | `fr-lu` | ✓ | ✓ |  |  |  |
| German | `de` / `DE` | ✓ | ✓ | ✓ | ✓ | ✓ |
| German (Austria) | `de-at` / `DE_AT` | ✓ | ✓ | ✓ | ✓ | ✓ |
| German (Belgium) | `de-be` | ✓ | ✓ |  |  |  |
| German (Switzerland) | `de-ch` | ✓ | ✓ | ✓ |  | ✓ |
| German (Luxembourg) | `de-lu` | ✓ | ✓ |  |  |  |
| Greek | `el` / `EL` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Hindi | `HI` |  |  |  | ✓ |  |
| Hungarian | `hu` / `HU` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Icelandic | `is` | ✓ | ✓ | ✓ |  |  |
| Indonesian | `ID` |  |  |  | ✓ |  |
| Irish | `GA` |  |  |  | ✓ |  |
| Italian | `it` / `IT` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Italian (Switzerland) | `it-ch` | ✓ | ✓ |  |  |  |
| Japanese | `ja` / `JA` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Korean | `ko` / `KOR` | ✓ | ✓ | ✓ | ✓ |  |
| Latvian | `lv` / `LV` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Lithuanian | `lt` / `LT` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Luxembourgish | `lb` | ✓ | ✓ | ✓ |  | ✓ |
| Malay | `ms` | ✓ | ✓ |  |  |  |
| Maltese | `MT` |  |  |  | ✓ |  |
| Norwegian | `no` / `NO` | ✓ | ✓ | ✓ | ✓ |  |
| Norwegian (Bokmål) | `nb` | ✓ | ✓ | ✓ |  | ✓ |
| Norwegian (Nynorsk) | `nn` | ✓ | ✓ | ✓ |  |  |
| Polish | `pl` / `PL` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Portuguese | `pt` / `PT` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Romanian | `ro` / `RO` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Russian | `ru` | ✓ | ✓ | ✓ |  |  |
| Serbian | `sr` |  |  |  |  | ✓ |
| Serbian (Serbia) | `sr-rs` | ✓ | ✓ | ✓ |  | ✓ |
| Slovak | `sk` / `SK` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Slovenian | `sl` / `SL` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Spanish | `es` / `ES` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Swahili | `SW` |  |  |  | ✓ |  |
| Swedish | `sv` / `SV` | ✓ | ✓ | ✓ | ✓ | ✓ |
| Swedish (Finland) | `sv-fi` | ✓ | ✓ | ✓ |  |  |
| Thai | `th` | ✓ | ✓ |  |  |  |
| Turkish | `tr` | ✓ | ✓ |  |  |  |
| Vietnamese | `vi` / `VIE` | ✓ | ✓ |  | ✓ |  |

**Totals:** Checkout, upsell and product page widgets 52 · FAQ widget 52 · Tracking 42 · Returns 36 · Notifications 26

## Good to know

- **The three delivery widgets share one language set.** The Checkout, upsell, and product page widgets support the same 52 languages. The FAQ widget also supports 52, but not quite the same ones — it adds English (UK) and does not include Finnish (Swedish).
- **Notifications has the narrowest coverage.** If you rely on delivery notification emails or SMS in a specific market, check it in the table first — several languages available elsewhere in Ingrid are not available for notifications.
- **Returns uses its own codes.** Because Ingrid Returns runs on a separate back office, its locale codes are uppercase and use underscores (`NL_BE`, not `nl-be`). Sending a widget-style code to Returns will not match.
- **A missing translation never breaks checkout** — it falls back to your default language.
- **Adding a language to your setup is not the same as it being supported.** The table shows what Ingrid can display. What your shoppers actually see also depends on the translations you have entered for your own delivery categories.

## Related

- [Setting up translations](https://support.ingrid.com/space/KB/14614543/Setting+up+translations) — how to add translations for your delivery categories
- [Customizing the look of Ingrid widgets](https://support.ingrid.com/space/KB/670564353/Customizing+the+look+of+Ingrid+widgets) — branding and display options across the same widgets