Targeting

Multilingual Popups: Show Every Visitor the Right Language

An English popup on a French product page is worse than no popup at all — it tells the visitor the site was translated by a machine and abandoned. Here is how to run one campaign per language, route each one by URL, and keep the whole set in sync as your offers change.

📅 Updated August 2026 ⏱ 12 min read ✍️ By ChilliPopup
Designing a multilingual popup in the ChilliPopup editor, ready to be duplicated and translated for each market

Your site is translated. Your checkout is translated. Then a popup slides up in English over a German product page and quietly undoes all of it. Multilingual popups are the piece of localisation that gets forgotten most often, because popups usually live in a separate tool from the rest of the site.

The fix is not a translation setting — it is a routing decision. Build one campaign per language, then use the targeting rules you already have to make sure each one only ever appears on its own pages. This guide covers exactly how, on all three ways a site can separate its languages.

Key Takeaways

  • One campaign per language. Never two languages inside one popup.
  • Route on the URL, not on the browser: URL paths, subdomains and country domains are all targetable, and they always match what the visitor is reading.
  • Add the inverse rule to your master campaign or the English one keeps showing everywhere alongside the translations.
  • Translate the small strings too — placeholders, consent line, thank-you screen, decline link. That is where English leaks.
  • Read results per market. A blended conversion rate hides the one language that is failing.

Why a translated popup is not optional

A popup is the most interruptive thing on the page, so it is also the most closely read. An untranslated one costs you three separate things:

The cheapest possible version of this project: translate the one popup that runs on your highest-traffic market, ship it, and measure. You do not need all nine languages to find out whether this matters for your site.


Step one: find out how your site separates languages

Every multilingual site uses one of three URL shapes, and that shape decides which rule you use. Look at the address bar on a translated page and match it against this table.

Three ways a multilingual site separates languages — URL subfolder, language subdomain and country domain — and the ChilliPopup targeting rule that matches each

Find your URL shape in the left column; the rule you need is on the right. That is the entire routing decision.

URL shape Example Rule to use Setting
Subfolder (most common) shop.com/fr/produits Page targeting contains/fr/
Subdomain fr.shop.com/produits Domain field fr.shop.com
Country domain shop.fr/produits Domain field shop.fr
Query parameter shop.com/produits?lang=fr Page targeting containslang=fr

Page targeting supports six conditions — contains, does not contain, is exactly, is not, starts with and ends with — which is enough to describe any language routing scheme you are likely to have. The domain field matches against the host of the page the pixel is running on, so one workspace can serve several storefronts and keep each campaign on its own.

Watch the slashes. A rule of contains /fr will also match /france-shipping and /frames. Always include the trailing slash — /fr/ — or use starts with against the full path prefix. This is the single most common multilingual targeting bug.


Step two: build the master, then duplicate

Do not build five popups in parallel. Build one — in your primary language — and get everything right: the layout, the offer, the image, the triggers, the frequency, the conversion gate. Then duplicate it once per language from the campaign list and translate each copy.

Two reasons this order matters:

Name them so the list stays readable: Welcome 10% — EN, Welcome 10% — FR, Welcome 10% — DE. You will thank yourself in three months when the offer changes and you have to find all five.

A set of multilingual popup campaigns — English, French and German — each with the page-targeting rule that restricts it to its own language URLs

One master, three duplicates, four rules. Note the inverse rule on the master — without it, English shows everywhere.


Step three: the rule everyone forgets

Adding contains /fr/ to the French campaign does not stop the English one from firing on French pages. Unless you tell it otherwise, your master campaign still matches every URL on the site — so French visitors now get two popups, or worse, whichever one wins the race.

Fix it in one of two ways:

  1. Exclude explicitly. Give the English campaign does not contain rules for each translated prefix: /fr/, /de/, /es/.
  2. Include explicitly. Give the English campaign its own positive rule — does not contain is unnecessary if English lives under /en/ and you can simply target that.

The second is cleaner if your site puts every language behind a prefix, including the default one. The first is what you need on the very common setup where English sits at the root and translations sit in folders beneath it.

Remember that every enabled rule is an AND gate. Device, page targeting, audience, frequency, date window, schedule — each one you switch on narrows the campaign further. Multiple page rules within page targeting are how you list several prefixes; other rule groups stack on top.


What to translate (the list that catches the leaks)

Everyone translates the headline. English leaks through the parts nobody looks at. Work down this list for every campaign:

Element Usually forgotten? Note
Headline and bodyNoGerman runs roughly 30% longer than English — recheck the layout, not just the words.
Button labelSometimes"Get my code" is idiomatic; a literal translation often is not.
Input placeholderYesThe most common leaked string on the entire web.
Consent / small printYesUntranslated consent is weak consent. See the GDPR guide.
Thank-you screenYesIt is a separate screen, so it is missed constantly.
Decline linkYes"No thanks" is short, visible, and always in English when it is wrong.
Error messagesSometimesType an invalid email into each translated popup and read what comes back.
Prices and currencyYes"$10 off" in a euro store reads as an error, not an offer.
Images with text on themYesA banner with baked-in English defeats the whole exercise.

Localise the offer, not only the sentence

Free shipping thresholds differ by market. So do holidays: a Black Friday campaign lands differently in countries where the date means nothing, and a Mother's Day promotion runs on a different date in half of Europe than it does in the US. Because every campaign has its own date window — with a GMT offset — and its own weekday-and-hour schedule, you can run the same idea on the right day in each market without touching the others.


Fonts, scripts and layout

A translated popup can be word-perfect and still look broken. Three things to check before you publish:

Preview with the real string. Not "Lorem ipsum", not the English placeholder — paste the actual translated sentence into the editor and look at it. Every layout problem in this section is invisible until you do.


A worked example: one offer, three markets

A homeware store sells at shop.com (English), shop.com/fr/ and shop.com/de/. It wants a welcome discount everywhere.

Campaign Page targeting Headline Offer
Welcome 10% — EN does not contain /fr/
does not contain /de/
"First order? Have 10% on us." Free delivery over £40
Welcome 10% — FR contains /fr/ "Première commande ? 10 % pour vous." Livraison offerte dès 45 €
Welcome 10% — DE contains /de/ "Erste Bestellung? 10 % geschenkt." Versandkostenfrei ab 45 €

Everything else — exit intent on desktop, 50% scroll on mobile, new visitors, frequency capped, "show again after conversion" off — is identical across the three, because they were duplicated from one finished master. The German popup is 40 px taller than the English one, because the headline is longer and someone checked.

Run every market from one dashboard

Duplicate a campaign, translate it, point it at a URL — popups, forms, surveys, quizzes and games, all from one pixel. Plans from $15/month with a 14-day free trial.

Start your free trial →

Testing before you publish

Ten minutes, and it catches almost everything:

  1. Visit one URL per language and confirm exactly one popup appears — not zero, not two.
  2. Check the root URL and any page that sits outside the language folders. This is where a missing inverse rule shows up.
  3. Complete the flow in each language: submit, read the thank-you screen, check the error message on a bad email.
  4. Open one translated page on a phone. Longer strings break mobile layouts first.
  5. Read the decline link and the placeholder in every language, out loud. That is where the English will be.

Reading the results per market

Per-campaign popup analytics used to compare conversion rates across multilingual popup campaigns

Each language is its own campaign, so each one reports its own views, submissions and conversion rate. That separation is the point.

Because every language is a separate campaign, you get a separate conversion rate for free — and that is far more useful than one blended number. Read it like this:

Do not average across languages when deciding what to change. Two markets improving and one collapsing looks like "roughly flat" in a blended figure, and you will never find the collapse.


Seven mistakes with multilingual popups

  1. Forgetting the inverse rule on the master. Every visitor now gets English as well.
  2. Using /fr without the trailing slash. It matches /frames too.
  3. Two languages in one popup. Twice the height, half the clarity.
  4. Machine-translating the button. Buttons are idiom, and a wrong one reads as spam.
  5. Leaving the currency alone. The wrong symbol invalidates the whole offer.
  6. Never retiring a translation. A stale French sale is worse than no French popup.
  7. Judging all markets on one blended number. The average always hides the failure.

Related reading

Frequently asked questions

How do I show a popup in a different language for each country?

Build one campaign per language and restrict each with a targeting rule that matches only the URLs for that language. On a site where languages sit on URL paths, a page rule of "contains /fr/" is all it takes. On subdomains or separate country domains, set the campaign's domain field to that host instead. There is no automatic browser-language rule, so the URL is what you route on — which is also what your visitors and Google see.

Can one popup hold several languages at once?

You can, and you should not. Stacking two languages inside one popup doubles its height, halves the readability and forces every visitor to skip past text that is not for them. One campaign per language is easier to write, easier to measure and easier to retire.

Does ChilliPopup detect the visitor's browser language automatically?

No — targeting is done on the URL, the device, the operating system and browser, the date window and a weekday-and-hour schedule. In practice URL routing is the more reliable signal anyway: browser language often disagrees with the language a visitor is actually reading, whereas the page they are on never does.

What about right-to-left languages like Arabic or Hebrew?

Write the copy in the language and set the block text alignment to the right so it reads naturally. The editor positions each block on a canvas rather than flowing them, so there is no automatic mirroring of the layout — you place the elements where an RTL reader expects them, which in practice means mirroring the design once and saving it as that language's campaign.

Which font should I use for non-Latin scripts?

One that actually contains the glyphs. A font chosen for a Latin headline may have no Cyrillic, Greek, Arabic or CJK coverage at all, and the browser will silently substitute something that does not match your brand. Pick from the font catalogue in the editor, or upload the exact family you use elsewhere as a workspace custom font, and preview the real translated string before publishing.

How many languages is too many?

As many as you genuinely maintain. Each campaign is a thing that has to be updated whenever the offer changes, and a French popup still advertising last season's sale does more damage than no French popup. Start with the two or three markets that produce real revenue and add the rest when the process is boring.