# Chameleon Translations > Localize Chameleon.io YAML translation files for in-app experiences. URL: https://store.crowdin.com/chameleon-translations Category: File Formats Type: App Author: Awesome Crowdin Translate Chameleon.io in-app experiences (Tours, Tooltips, Microsurveys, Embeddables, Launchers) in Crowdin using this app. ## How It Works 1. **Export** your YAML translation file from Chameleon's Localization page 2. **Upload** to Crowdin — the app extracts all translatable text fields 3. **Translate** — content is marked as Markdown, so longer texts are automatically segmented 4. **Download** and upload back to Chameleon — all original formatting and comments are preserved ## File Format Details | Attribute | Value | | --------- | ----- | | File Extension | .yml, .yaml | | [API Type](https://developer.crowdin.com/api/v2/#operation/api.projects.files.post) | chameleon-yaml | | Source can be edited in Crowdin | No | | Generating translated files via [Bundles](https://support.crowdin.com/bundles/) | [Search Crowdin Store](https://store.crowdin.com/tags/string-exporter) | | Supports pluralization | No | | WYSIWYG Preview in the editor | No | | Supported types of contextual information | Text comments, Screenshots, Live preview via SDK | | Custom attributes | No | | Existing translations import possibility | None | ## Sample File ```yaml ## # # Chameleon translations v1.0 for 1 Experience # - Exported at "2026-01-30 12:00:00 UTC" # - Exported by "localization-manager@example.com" # - Export history id: "000x000xxx000xx00000000x" # # Translation reference: https://help.chameleon.io/en/articles/5868890-internationalization # - Language code lookup property: ""; https://edit.chameleon.io/data/properties/profile # # To use this Translations file for another language: # 1. Copy this file and *rename* the language.code from "default" to the language code you're # translating to (picking from one the listed language.options). # 2. (optional) Use the supplied preview.url to see what each Experience/Step looks like # 3. Translate each of the requested members of the *translations* key (each translatable item has a # nested text key which is replaced with the translated text) # # See the Translation reference for examples # id: "000x000xxx000xx00000000x" language: code: "default" options: ["default","vi","tr","th","sv","es-ES","es","ru","ro","pt-PT","pt-BR","pt","pl","ko","ja","it","id","hu","he","el","de","fr-CA","fr","en-GB","nl","cs","zh-TW","zh-CN","zh","ar","da"] # # experiences: - # # An Embeddable can have one or more "Steps" that informs users or helps to guide them toward a specific action. # id: "000x000xxx000xx00000000y" kind: "embed" name: "Feature Update - Permissions" # steps: - id: "000x000xxx000xx00000000z" kind: "step" preview: # # Use this preview to see exactly what you're translating; viewable until 2026-03-30 # url: "https://edit.chameleon.io/accounts/000x000xxx000xx00000000x/captures/000x000xxx000xx00000000x.png?token=i18n-000x000xxx000xx00000000x" # translations: # body: # # The body is the main content of the Step; This provides all of the actionable # details needed to understand the purpose of this Step. # text: "[Granular permissions](https://help.example.com/articles/12345) are now available and will go live on February 24, 2026. If needed, consult your Account Manager to configure these permissions for your users." # ```