Skip to main content
Localization is in BETA at the moment (Contact us to join) and available as an add-on to our Grown / Enterprise plans. The main Help page on this topic may be more helpful for a typical workflow.
  1. Download or from the various lists of Experiences.
  2. Translate
  3. Upload or from the Localization page.
  4. Set Experiences live

Downloading Translation files

HTTP Request

# Translation file for a single experience [A]
GET|POST https://api.chameleon.io/v3/edit/:kind/:id/i18n(.:format)

# Translation file for all experiences of a specific kind
GET|POST https://api.chameleon.io/v3/edit/:kind/i18n(.:format)

# Translation file for a mixture of many different experience types [B]
GET|POST https://api.chameleon.io/v3/edit/experiences/i18n(.:format)
param-description
kindstringoptionalOne of tour, survey, lanuncher, tooltip
idIDoptionalThe ID of a Chameleon Experience
formatstringrequiredOne of yaml, json
experiencesarray<Object>optionalEach member of this array has two keys kind and id examples
experiences.$.kindstringoptionalOne of tour, survey, lanuncher, tooltip
experiences.$.idstringoptionalThe ID of a Chameleon Experience

HTTP Response

Downloading into .yaml
# Example [A]
GET https://api.chameleon.io/v3/edit/tours/6f3c4232c712de665632a5f1/i18n.yaml
id: "6f3c4232c712de665632a419"

language:
  code: "default"
  options: ["default", "es", "fr"]

experiences:
  -
    id: "6f3c4232c712de665632a5f1"
    name: "01 Onboarding 🚧"
    steps:
      -
        id: "6f3c4232c712de665632a5f2"
        translations:
          title:
            text: "Hello and Welcome!"
          body:
            text: "The best place to get started is right here, Import your first 100 data points"
          dismiss_text:
            text: "not now"
          buttons:6f3c4232c5632a5f3712de66:text:
            text: "Show me"
      -
        id: "6f3c4232c712de665632a5f3"
        translations:
          body:
            text: "Drag and drop your data here"
Downloading into .json
# Example [A]
GET https://api.chameleon.io/v3/edit/tours/6f3c4232c712de665632a5f1/i18n.json
{
  "id": "6f3c4232c712de665632a419",
  "language": {
    "code": "default",
    "options": ["default", "es", "fr"]
  },
  "experiences": [
    {
      "id": "6f3c4232c712de665632a5f1",
      "name": "01 Onboarding 🚧",
      "steps": [
        {
          "id": "6f3c4232c712de665632a5f2",
          "translations": {
            "title": {
              "text": "Hello and Welcome!"
            },
            "body": {
              "text": "The best place to get started is right here, Import your first 100 data points"
            },
            "dismiss_text": {
              "text": "not now"
            }
          }
        },
        {
          "id": "6f3c4232c712de665632a5f2",
          "translations": {
            "body": {
              "text": "Drag and drop your data here"
            }
          }
        }
      ]
    }
  ]
}
Example with mixed Experiences
# Example [B]
POST https://api.chameleon.io/v3/edit/experiences/i18n.yaml
Request body
{
  "experiences": [
    { "kind": "tour", "id": "6f3c4232c712de665632a5ef" },
    { "kind": "survey", "id": "6312dfe6c4232c765632a5f0" },
    { "kind": "tour", "id": "62c7f3c42312de665632a5f1" },
    { "kind": "launcher", "id": "6de665632f3c4232c712a5f2" },
    { "kind": "tooltip", "id": "6f3c4232c712de665632a5f3" }
  ]
}

Uploading Translation files

HTTP Request

POST https://api.chameleon.io/v3/edit/i18n
param-description
fileFileoptionalA single file to process for translations
filesarray<File>optionalMultiple files to process for translations
Single file:
curl -X POST -H "X-Account-Secret: CHAMELEON_SECRET" https://api.chameleon.io/v3/edit/i18n \
  -F [email protected]

curl -X POST -H "X-Account-Secret: CHAMELEON_SECRET" https://api.chameleon.io/v3/edit/i18n \
  -F [email protected]
Multiple files:
curl -X POST -H "X-Account-Secret: CHAMELEON_SECRET" https://api.chameleon.io/v3/edit/i18n \
  -F 'files[]='@renamed-translation-file-in-ES.yaml -F 'files[]='@renamed-translation-file-in-FR.yaml