Localization is available as an add-on to our Growth / Enterprise plans. The main Help page on this topic may be more helpful for a typical workflow.
Workflow overview
- Download a translation file for your Experiences (or export from the Experience list).
- Translate the content into your target languages using your preferred translation tool or service.
- Rename the file to include the language code (e.g.,
translation-es.yaml,translation-fr.json). - Upload the translated file(s) via the API or from the Localization page.
- Publish the Experiences to make translations live.
Supported file formats
How language targeting works
Chameleon determines the user’s language from thebrowser_l property (the browser’s Accept-Language header). The language.options array in the translation file shows all configured language codes for your account.
"default"is always the primary language (your original Experience content).- Language codes follow BCP 47 format (e.g.,
"es","fr","pt-BR").
Merge tags in translations
Translations fully support Handlebars merge tags. You can use merge tags in your translated content:Downloading Translation files
HTTP Request
HTTP Response
Downloading into .yaml
GET
Downloading into .json
GET
Example with mixed Experiences
POST
Request body
Uploading Translation files
Upload one or more translated files. Each file should be a renamed copy of the downloaded translation file with translated text values. Important: Thelanguage.code in the uploaded file must be changed to the target language code (e.g., "es", "fr"). If it remains "default", it will overwrite your primary language content.
HTTP Request
POST
Example: Translating a Tour to Spanish
Step 1: Download the translation file:language.code from "default" to "es":
Uploading multiple files at once
Upload translations for several languages in a single request:Translation file structure
The translation file contains a nested structure:Only thetextvalues withintranslationsshould be changed. Do not modifyidfields or the structure of the file.

