# Twilio Studio IVR > Twilio Studio IVR Localization URL: https://store.crowdin.com/twilio-studio Category: File Formats Type: App Author: Crowdin With this app you can translate Twilio Studio IVR in Crowdin and keep the app multilingual. ## File Format Details | Attribute | Value | | --------- | ----- | | File Extension | .json | | [API Type](https://developer.crowdin.com/api/v2/#operation/api.projects.files.post) | twilio-studio | | 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 | Yes | | Supported types of contextual information | WYSIWYG | | Custom attributes | No | | Existing translations import possibility | Key-value mapping (trivial) | ## Sample File ```json { "description": "A New Flow", "states": [ { "name": "Trigger", "type": "trigger", "transitions": [ { "event": "incomingMessage" }, { "next": "check-open", "event": "incomingCall" }, { "event": "incomingRequest" }, { "event": "incomingParent" } ], "properties": { "offset": { "x": 0, "y": 0 } } }, { "name": "check-open", "type": "run-function", "transitions": [ { "next": "split-open", "event": "success" }, { "event": "fail" } ], "properties": { "service_sid": "", "environment_sid": "", "offset": { "x": 120, "y": 180 }, "function_sid": "", "parameters": [ { "value": "#YOUR_BUSINESS_PLACE_ID#", "key": "PlaceId" } ] } }, { "name": "open", "type": "say-play", "transitions": [ { "event": "audioComplete" } ], "properties": { "voice": "alice", "offset": { "x": 460, "y": 750 }, "loop": 1, "say": "The business is open", "language": "en-US" } }, { "name": "closed", "type": "say-play", "transitions": [ { "event": "audioComplete" } ], "properties": { "voice": "alice", "offset": { "x": -50, "y": 780 }, "loop": 1, "say": "The business is closed", "language": "en-US" } }, { "name": "split-open", "type": "split-based-on", "transitions": [ { "next": "closed", "event": "noMatch" }, { "next": "closed", "event": "match", "conditions": [ { "friendly_name": "If value equal_to open", "arguments": [ "{{widgets.check-open.parsed.open.open_now}}" ], "type": "equal_to", "value": "false" } ] }, { "next": "open", "event": "match", "conditions": [ { "friendly_name": "If value equal_to open", "arguments": [ "{{widgets.check-open.parsed.open.open_now}}" ], "type": "equal_to", "value": "true" } ] } ], "properties": { "input": "{{widgets.check-open.parsed.open.open_now}}", "offset": { "x": 150, "y": 410 } } } ], "initial_state": "Trigger", "flags": { "allow_concurrent_calls": true } } ```