All guides
·6 min read

Which language must the EU guarantee notice appear in?

The harmonised notice must reach the consumer in their own Member State language — which means your theme's locale is the wrong signal to key it on. A German-market shopper browsing your English theme must still see the German notice.

Quick Answer

Short answer: the notice must reach the consumer in the language of the Member State they're buying into. The trap on Shopify is keying that off the theme locale, which reports the language of the UI a shopper happens to be browsing — not the market they're buying in. Match the market/language selection instead, and fall back to the theme only when there's nothing better.

From 27 September 2026, Regulation (EU) 2025/1960 requires the harmonised legal guarantee notice on B2C sales of physical goods in the EU. Most of the coverage so far focuses on whether you show it. This guide is about the part that quietly goes wrong in production: which language version you show, and how you decide.

The Commission publishes 24 versions for a reason

The official notice artwork exists in all 24 official EU languages:

bg hr cs da nl en et fi fr de el hu ga it lv lt mt pl pt ro sk sl es sv

That set isn't decorative. Consumer-information rules across the EU consistently require that mandatory pre-contractual information reach the consumer in a language they can actually understand, and the Commission produced 24 official renderings so a trader selling across borders can serve the right one without redrawing anything.

The regulation also requires the artwork be used unaltered and in colour when shown online. You don't get to typeset your own translation — you serve the Commission's file for that language.

Serving English everywhere is the default failure

English satisfies Ireland and Malta. It does not satisfy a consumer buying into Germany, France, Italy, Spain, or Poland. If your store sells into the EU at all, an English-only notice is the single most likely way to be technically showing a notice and still not be compliant.

Why the theme locale is the wrong signal

Here is the scenario that breaks naive implementations.

A shopper in Germany lands on your store. Your theme's default language is English and they haven't switched the UI — plenty of people shop in English by preference. But they're buying into your German market: EUR pricing, German shipping, German consumer law.

If you key the notice off the theme locale, you serve the English notice. The theme is telling you "en", and it's telling you the truth about the UI. It's just answering a different question from the one the regulation asks.

The legally relevant fact is the market the sale happens in, not the language the buttons are in.

The resolution order that actually works

This is the priority chain we implement, strongest signal first:

Note what that ordering implies: falling back to English should be a rare event, not the steady state. A quick way to sanity-check your own setup is to count how often the English notice renders versus your EU market mix. If they don't roughly agree, the market signal isn't reaching the notice.

Locale resolution is two-letter, not full tags

One small implementation detail that causes avoidable misses: locale inputs arrive in many shapes — de-DE, de, DE_at, fr-BE. The notice set is keyed on the two-letter language, so normalise before matching: lower-case, take the first two characters, then check membership in the supported set.

A de-AT shopper (German language, Austrian market) gets the German notice, which is correct — the notice is published per language, not per country. Austria and Germany share de; Belgium draws on nl and fr depending on the shopper.

What this means if you sell through Shopify Markets

Markets is exactly where this bites, because Markets is what decouples "language of the UI" from "market of the sale". If you run one storefront across several EU markets:

  • Confirm the notice reads your market language, not the theme default.
  • Test with the UI language and the market deliberately mismatched — that's the failure case, and it's invisible if you only test them aligned.
  • Remember that a language switcher changes the buyer-facing signal. Switching to English shouldn't silently drop a German-market shopper onto the English notice if their market is still DE.

Test the mismatch, not the match

Almost every store tests with the theme and market aligned, where every implementation looks correct. The bug only appears when they diverge. Set your storefront to English, select a German market, and check which notice renders.

How we handle it

Our app resolves the notice language through the chain above — merchant override, then market/language, then theme, then English — and serves the Commission's official artwork for the resolved language, unaltered.

We keep the official files under integrity hashes checked in CI against the Commission's published vectors, so an accidental edit to the artwork fails the build rather than shipping a non-compliant notice to your storefront.

Frequently asked questions


Next: which products need the notice at all, and what the durable-medium requirement means for your order emails.

This guide is written by the team behind an EU guarantee compliance app for Shopify. It's a practical implementation guide, not legal advice — for a definitive read on your obligations, talk to a lawyer in your market.

EU Warranty Label does this automatically

The mandatory notice renders in the shopper's own EU language on every product page, GARAN labels render where a producer guarantee qualifies, and you can export a dated compliance proof. The notice is free for unlimited products.

More guides