How to customize content based on language
You will learn
Learn how to collect someone's preferred language, and how to use it so more of your audience can read your messages.
With Smart Translations, 1 campaign or flow message can reach each recipient in their own language across email, text message, mobile push, and WhatsApp. You can also use the language you collect in segments, for example to target campaigns or sign-up forms.
New to Smart Translations? Check out About Smart Translations to learn what it translates and how it works.
Collect someone's preferred language
Smart Translations reads each recipient's language from 1 profile property. By default, this is the Locale property. Some integrations, such as Shopify (with Shopify Markets) and PrestaShop, fill in Locale for you. Klaviyo does not detect someone's language from the language they use on your website.
If your profiles don't have language data yet, the best time to ask is when people first sign up for email or text messages. You can also collect language through consent pages, CSV imports, profile links, or the API. Learn more about each method in How Smart Translations picks the recipient's language.
Choose a property and values
Before you add a language question to a form, decide where to save the answer:
- Property - Save answers to Locale (
$locale), the property Smart Translations reads by default. If you store values that aren't BCP-47 codes, such as language names, use a custom property instead (e.g.,Language). - Values - Locale needs BCP-47 codes as values (e.g.,
en,fr,es-MX). Language names such asFrenchwork only in a custom property, and only codes can select a regional variant, such as Canadian French (fr-CA). For every supported code, see Supported languages and locale codes.
Add a language question to a sign-up form
To add a language question to an existing sign-up form:
- Navigate to Sign-up forms.
- Click the name of the form where you want to ask for language. If the form's analytics page opens, click Edit form.
- Click Add blocks.
- Drag a Radio buttons or Dropdown block into the form.
- In the left sidebar, turn on Show label in form.
- Enter a label (e.g., "What's your preferred language?").
- Select Required input.

- Under Profile property, select Locale under Klaviyo properties. To use a custom property instead, select it. If you don't have one yet, enter
Language, then select Create Language. - Add an option for each language. For each option label, enter the language name as your audience reads it (e.g., English, Français, Español).
- For each option's value, enter its BCP-47 code (e.g.,
enfor English,frfor Français).

- Click Publish or schedule, select Publish now, then click Publish now.

If a form only shows on 1 language version of your site, you can add a hidden property with a fixed value instead of asking (e.g., fr on your French site).
What happens after you add the question
- New sign-ups - When someone submits the form, Klaviyo saves the option they selected to your language property.
- Existing profiles - Profiles that signed up before you added the question don't get a value from the form. Until they have one, Smart Translations sends them the message's default language. If you use a custom property, it can use their Locale instead.
- The form itself - Smart Translations does not translate sign-up forms. The form shows in the language you built it in. To ask people in their own language, create 1 form per language and set the language property from each one.
Send messages in each person's language with Smart Translations
You need a paid Klaviyo account. Only Owners, Admins, and Managers, or custom roles with permission to edit account settings, can change Smart Translations settings.
Smart Translations sends 1 campaign or flow message in each recipient's language. You don't need a separate segment, campaign, or conditional split for each language.
Choose the language property
If you saved answers to a custom property, such as Language, set Smart Translations to read it. If you save answers to Locale, skip to the next section. If Smart Translations isn't turned on yet, follow How to set up Smart Translations first.
To choose the language property:
- Navigate to Settings > Translations in your account. It opens on the Enablement page.
- In the How to determine preferred language section, select your property (e.g., Language).
- Review Use default profile locale when preferred language property is missing. When it's selected, profiles with no value in your property use their Locale instead. When it's cleared, they get the message's default language.
- Click Save.
Smart Translations reads the property at the moment of send. If someone's value changes, their next message uses the new value. Learn how Smart Translations matches each value to a translation, including regional codes and the default language, in How Smart Translations picks the recipient's language.
If someone gets the wrong language, that article also lists the common causes and how to fix each one.
Translate your messages
Turning on Smart Translations or choosing a property does not translate any messages. You choose languages and translate each message from its editor. Follow the steps for your channel:
Channel | Campaigns | Flows |
|---|---|---|
How to create a multilingual email campaign using Smart Translations | How to create a multilingual email flow using Smart Translations | |
Text message | How to create a multilingual SMS campaign using Smart Translations | |
Mobile push | How to create a multilingual push notification campaign using Smart Translations | How to create a multilingual push notification flow with Smart Translations |
How to create a multilingual WhatsApp campaign using Smart Translations |
To translate Klaviyo-hosted subscribe, unsubscribe, and preference pages, see How to translate consent pages into different languages.
Target by language with segments
Use language segments when you want to send each language its own message, for example with different content or a different layout. You also need segments for content Smart Translations does not translate, such as sign-up forms, or if you don't have a paid Klaviyo account.
Segment by language preference
At least 1 profile must have the property before you can select it in a segment, flow filter, or conditional split.
For example, to create a segment of profiles who prefer French, use this condition:
- Properties about someone > Locale equals
fr

Create a similar segment for each language your form offers. Learn more in Getting started with segments. You can then:
- Target a separate campaign to each language segment, written in that language.
- Use the language property in a conditional split, with a branch for each language in a flow.
- Target a sign-up form to a language segment.
Each segment needs its own campaign or flow branch, so the number of messages you maintain grows with every language you add. If you have a paid Klaviyo account and don't need different content per language, we recommend Smart Translations instead. You edit 1 message, and each recipient gets it in their language.
Use location to estimate language
If you haven't collected language yet, a profile's location can give you an estimate. Klaviyo can estimate location from an IP address when one is available. Integrations can also add location, or you can enter it directly. Some profiles have no location, and an IP-based estimate can be wrong.
For example, this segment estimates which profiles speak English. Add a Properties about someone > Country equals condition for each of these countries: United States, Canada, United Kingdom, Ireland, Australia, and New Zealand. Join the conditions with OR.
This segment includes people in those countries who prefer another language. It also misses English speakers in other countries. When you need to target people reliably, collect their preferred language directly.
Additional resources
- About Smart Translations
- How Smart Translations picks the recipient's language
- How to set up Smart Translations
Learn how to enable Smart Translations for messages so you can send campaigns and flows in multiple languages based on the language preferences of your audience. Klaviyo can translate email content to 60+ languages.
- Supported Languages and Locale Codes
- Getting started with segments
Learn how to create and use segments in Klaviyo, which are a powerful tool for understanding your audience and sending targeted messages.
- How to create a location-based segment
Learn how to use location-based segments to send campaigns by region, target forms to customers in a particular area, or better understand a subset of your customers. Note that Klaviyo determines a profile's location when syncing a billing address for that contact or, if they have not yet purchased, by tracking their IP geolocation. Learn more about how location is set on Klaviyo profiles.
- Advanced segmentation reference
Learn effective advanced segmentation strategies that provide insights into your customer base and create highly personalized experiences for your subscribers.
- Basics: multinational SMS sending with Klaviyo
Learn tips for using Klaviyo to send SMS in multiple different countries.