Chameleon supports any text for any language available within modern browsers. 

However Chameleon does not offer automatic translations of content -- we find most teams that need multi-lingual support already have an established process for generating translations that they adhere to. 

👉 Looking for a translation tool? Google Translate might be the best option out there.

There are three ways to show an Experience with different content for different groups of people:

1. Using our Internationalization functionality

You can now download all the text content for one or multiple Experiences and upload a translated file. Then based on a property you specify or their browser language Chameleon Experiences will show the right language content to the right user.

This functionality is available on our Enterprise plan. You can learn more and get access to this here:

2. Creating separate Experiences

You can create multiple Experiences with different content and set the targeting such that it shows to users of that particular language. To do this: 

  • Create your Experience in your base language

  • Duplicate it for other languages

  • Adjust the text and targeting

Note: You can target based on default user attributes that we collect, such as Browser Language, or send your own user data to indicate the language of the user, and show the relevant Tour to them. 

3. Defining user variables

Alternatively, you can create a single Experience but show different content based on the user. For this, you will need to:

  • Create your basic Experience

  • Define user variables for each piece of content, e.g. {{tour1.step1.title}} and store these on each page of your app (you can find an example below).

  • Use these variables within the Experience to dynamically populate the content based on the user

Structuring and storing translations for later use:

window.chmlnI18n = { /* Example global variable name */
  welcome_tour: {    /* Example tour name */
    step1: {
      title: "Welcome to the App!",
      body: "Let's import your contact and save you $$$",
      cta: "Ok let's go!"
    step2: {

Embedding these translations in the Experience:

### {{global 'chmlnI18n.welcome_tour.step1.title'}}

{{global 'chmlnI18n.welcome_tour.step1.body'}}

Note: If you'd like to use this second method and you're facing any blockers, please email us for help. 📩


Did this answer your question?