Localize experiences
Translate your experiences across different languages
Table of Contents
Add translated content to your experiences so users see the right language based on their language property value. Localization works the same way across Flows 2.0, Banners, Launchpads, Embeds, and NPS 2.0 surveys.
Prerequisites
- Languages configured in your account (see Configure languages below)
Configure languages
Before you can localize content, you need languages set up in your account. These are the languages available when localizing individual experiences. Languages are shared — once configured, they're available across all experience types.
- Open any experience in the builder.
- Click the language dropdown and select Localization settings.
- Click Manage languages.
- Click + Add language.
- Set the language name, the property used for the language, and the properties to include in the group.
- Click Save. The language is now available in the dropdown for all experiences.
You can also configure languages through your account's localization settings page directly.

Localize content manually
After configuring your target languages, you can translate any editable text directly in the builder.
- Click the language dropdown in the builder.
- Toggle on the languages you want to add.
- Switch to the target language in the dropdown.
- Edit the text fields directly in the builder. Your changes apply only to the selected language.

Upload translations with XLIFF files
Use XLIFF files to upload translations in bulk — especially useful if you work with a translation service like Smartcat or Lokalise. The file includes all editable text content in your experience.
Download the translation file
- Click the language dropdown in the builder.
- Select Localization settings.
- Click the gear icon next to the target language.
- Click Download .xliff.

Edit XLIFF files
For quick updates, you can edit an XLIFF file manually in any text editor (TextEdit, Notepad, Sublime, VSCode).
In the file, content is organized into trans-unit blocks. The <source> element contains the original text. The <target> element is where you add the translated text.
<trans-unit id="705d5b80-0ada-4e72-96ee-8dd5f50818ba">
<source>Scheduled maintenance will occur this coming Saturday</source>
<target>A manutenção programada ocorrerá no próximo sábado</target>
</trans-unit>
Upload the translated file
- Click the language dropdown in the builder.
- Select Localization settings.
- Click the gear icon next to the target language.
- Drag-and-drop or browse to upload your edited XLIFF file. The experience content updates with the translations from the file.
Translate with AI
Use AI localization to automatically translate your experience content into the target language.
- Click the language dropdown in the builder.
- Select Localization settings.
- Click the gear icon next to the target language.
- Select the AI translation option. The content is replaced with an automatic translation.
To manage AI features in your account, contact support@appcues.com.

Right-to-left (RTL) language support
RTL layout is handled automatically by the SDK. When a user's device is set to an RTL language, content alignment and component positioning flip automatically — right-aligned content moves to the left, and vice versa.
Use the RTL toggle in the builder to preview how your experience looks in an RTL layout.

Troubleshooting
Translations aren't showing for users
- Confirm the user's language property value matches one of your configured languages.
- Check that the language property is being sent correctly in your user data.
- Verify the translation was saved — switch to the target language in the builder and confirm the translated text is there.
XLIFF upload didn't update content
- Make sure the file you uploaded matches the language you selected.
- Open the XLIFF file and confirm the
<target>elements contain translated text (not copies of the source).
If it's still not working
Collect the following and contact support@appcues.com:
- Experience ID and User ID
- Target language and language property value
- Screenshot of the language configuration