How to enable Smart Translations
You must have a paid Klaviyo account to use this feature. You also need permission to edit translation settings.
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.
Localizing your messages is great if you have or plan to expand to an international customer base. Sending emails in each subscriber’s preferred language allows you to reach a wider audience which can increase overall engagement.
What can be translated?
The following can be automatically translated:
- Text blocks
- Labels
- Alt text
- Email subject lines
- Email preview text
- Email sender names
The following can be manually changed per language:
- Links
- Images
The following content is not machine translated:
- Product feed content
If you use Shopify Markets, dynamic product blocks can display localized product information, pricing, and currency from your catalog. Configure catalog locale mappings below, then review the fallback catalog locale for each language in the Smart Translations editor.
Note: If you have Shopify Markets enabled, Static Product Blocks can be automatically localized independently of Smart Translations. A Localize for recipient setting in the product block will dynamically resolve product pricing and currency for each recipient based on their region. Learn more in How to add a product block to an email.
The content translation options above also apply to text blocks, labels, alt text, links, and images in universal and saved content you’ve added to the template.
Supported languages
Klaviyo supports Smart Translations for the languages listed in the table below. Use the BCP-47 code listed next to each language in the profile property selected under How to determine preferred language (such as Locale). Klaviyo also recognizes plain-text values such as English and French.
Language | BCP-47 code |
Afrikaans | af |
Albanian | sq |
Amharic | am |
Arabic | ar |
Armenian | hy |
Azerbaijani | az |
Bengali | bn |
Bosnian | bs |
Bulgarian | bg |
Catalan | ca |
Chinese (Simplified) | zh |
Chinese (Traditional) | zh-TW |
Croatian | hr |
Czech | cs |
Danish | da |
Dari | fa-AF |
Dutch | nl |
English | en |
Estonian | et |
Farsi | fa |
Filipino, Tagalog | tl |
Finnish | fi |
French | fr |
French (Canada) | fr-CA |
Georgian | ka |
German | de |
Greek | el |
Gujarati | gu |
Haitian Creole | ht |
Hausa | ha |
Hebrew | he |
Hindi | hi |
Hungarian | hu |
Icelandic | is |
Indonesian | id |
Irish | ga |
Italian | it |
Japanese | ja |
Kannada | kn |
Kazakh | kk |
Korean | ko |
Latvian | lv |
Lithuanian | lt |
Macedonian | mk |
Malay | ms |
Malayalam | ml |
Maltese | mt |
Marathi | mr |
Mongolian | mn |
Norwegian (Bokmål) | no |
Pashto | ps |
Polish | pl |
Portuguese (Brazil) | pt |
Portuguese (Portugal) | pt-PT |
Punjabi | pa |
Romanian | ro |
Russian | ru |
Serbian | sr |
Sinhala | si |
Slovak | sk |
Slovenian | sl |
Somali | so |
Spanish | es |
Spanish (Mexico) | es-MX |
Swahili | sw |
Swedish | sv |
Tamil | ta |
Telugu | te |
Thai | th |
Turkish | tr |
Ukrainian | uk |
Urdu | ur |
Uzbek | uz |
Vietnamese | vi |
Welsh | cy |
Some regional variations are supported. When machine translating, they use the machine translation language specified below.
Language | BCP47 | Machine Translation Language |
English (Australia) | en-AU | en |
English (Canada) | en-CA | en |
English (United Kingdom) | en-GB | en |
English (Ireland) | en-IE | en |
English (India) | en-IN | en |
English (New Zealand) | en-NZ | en |
English (South Africa) | en-ZA | en |
German (Austria) | de-AT | de |
German (Switzerland) | de-CH | de |
Spanish (Argentina) | es-AR | es-MX |
Spanish (Chile) | es-CL | es-MX |
Spanish (Colombia) | es-CO | es-MX |
Spanish (Peru) | es-PE | es-MX |
French (Belgium) | fr-BE | fr |
French (Switzerland) | fr-CH | fr |
Italian (Switzerland) | it-CH | it |
Dutch (Belgium) | nl-BE | nl |
If you add an unsupported country variant to a profile (e.g., fr-DE, de-NL), Klaviyo will ignore the country variant and translate to the supported language variant instead.
Enable translation
Before translating content, check that Smart Translations is enabled in your account settings.
- Click your organization name in the bottom left corner of your screen.
- Click Settings.
- Select Translations > Enable translations.
- If Translate messages is off, turn it on.

- Under How to determine preferred language, choose the profile property that stores your audience’s preferred language.
- Locale is used by default, but Country or Language can be used if present.
- If you select a property other than Locale, choose whether to keep Use default profile locale when preferred language property is missing checked. When checked, Klaviyo uses the profile’s Locale if the selected property has no value. When unchecked, it uses the message’s default language instead.
- Click Save for the Translate messages setting.
Configure languages and catalog locale mappings
After enabling the feature, add languages to use for your translations. Your account language will be added by default.
- On the Enable translations page, in the Languages section, open Select additional language and select a language. Repeat for each language you want to include.
- Under Default language, choose one of your added languages for recipients whose preferred language is unavailable or unknown.
- Click Save in the Languages section.
Catalog locale mapping is supported for the Shopify integration when Shopify Markets is enabled and localized catalog data has synced to Klaviyo.
- Select Catalog locale mapping in the Translations sidebar. Click Add mapping, then choose a language in the first dropdown and a catalog locale in the second. Repeat for each language you want to map.
- Click Save in the Catalog locale mapping section.

Languages added in the Languages section are included when setting up translations for templates, campaigns, flows, and universal content. Catalog locale mappings provide initial fallback catalog locales for each language when generating translations. Review or change the fallback catalog locale in the Smart Translations editor. Dynamic product blocks use that message’s catalog fallback when the recipient’s locale is unknown or unavailable in the catalog.
Collect preferred language property
By default, Klaviyo uses the profile’s Locale to determine its preferred language. Locale records a language and can include a region, such as en-US. It is not the profile’s estimated location. Shopify (via Shopify Markets) can populate Locale with the customer’s locale. Check that your profiles have a value, or collect a language preference directly from customers.
You can also collect a preferred language directly from customers. The Language property on someone’s profile does not have a value by default, but one can be collected using several different methods.
- Sign-up form with a preferred language field
- Manually import profile properties using a CSV import
- Links in an email to update a subscriber's profile
- Klaviyo’s Profiles API
After collecting language preferences, select that same property under How to determine preferred language in your translation settings.
When setting the locale property, we recommend using BCP-47 codes (e.g., en-GB, es-ES). Alternatively, you may use a country or language (e.g., English, France), but BCP-47 codes offer more control and dialect precision.
If Klaviyo cannot match a profile’s preferred language to a language included in the message, the profile receives the message’s default language. This can be the original language or one selected for translation. If you use a custom language property and it is missing, the profile’s Locale is checked first when the default-profile-locale option is enabled. For dynamic product blocks, an unknown or unavailable recipient locale uses the fallback catalog locale saved for that language in the message’s translations.
Do not translate
The Do not translate feature lets you specify terms, brand names, or phrases to exclude from machine translation.
Terms on this list stay in their original language when you generate translations.
To manage your terms, select Translations in your account settings, then select Do not translate.
- Click Add term and enter a term, brand name, or phrase you want to keep in its original language.
- Repeat for each term you want to exclude.
- Click Save.

Translate messages
Learn more about translating messages: