# Dialogflow > Dialogflow Agents Localization URL: https://store.crowdin.com/dialogflow Category: File Formats Type: App Author: Crowdin With this app you can translate Dialogflow Agents in Crowdin and keep the app multilingual. ## File Format Details | Attribute | Value | | --------- | ----- | | File Extension | .json | | [API Type](https://support.crowdin.com/developer/api/v2/) | dialogflow | | 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 [ { "id": "55229989-af70-474c-a2ab-94f9c3849be2", "data": [ { "text": "alarms list", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "ad914120-0278-4b28-bf3e-7768104a0be7", "data": [ { "text": "is my ", "userDefined": false }, { "text": "weekly", "meta": "@recurrence", "alias": "recurrence", "userDefined": true }, { "text": " alarm set", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "a63882bb-52a9-4623-8188-f144bae5539e", "data": [ { "text": "check my alarm for ", "userDefined": false }, { "text": "6 am", "meta": "@sys.time", "alias": "time", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "fedced40-f70d-46c9-9364-a2436bd5725f", "data": [ { "text": "what time did you set the alarm for", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "05552845-8595-4db8-8026-885fd4cde36c", "data": [ { "text": "what time is my alarm set for", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "de65cc80-805e-4669-b7cc-76db5552bd9d", "data": [ { "text": "show my alarms", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "207593e3-df26-4cb8-a81a-ee6175ebfc4a", "data": [ { "text": "did you set that alarm for ", "userDefined": false }, { "text": "6:30", "meta": "@sys.time", "alias": "time", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "330d1078-64bd-4477-974c-b75da7fec13e", "data": [ { "text": "I\u0027d like to see my alarms", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "5edd5d4d-eae8-4fe1-9a38-888f963fc8fb", "data": [ { "text": "how many alarms do I have for ", "userDefined": false }, { "text": "tomorrow morning", "meta": "@sys.time-period", "alias": "time-period", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "a82a4396-f1a7-4f1f-ae3b-d3aca3072c23", "data": [ { "text": "at what time do you wake me up on ", "userDefined": false }, { "text": "Mondays", "meta": "@recurrence", "alias": "recurrence", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "1d6f3f51-790f-46e2-a657-4c97da56a7ae", "data": [ { "text": "my alarms", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "27bf01f2-e8b5-40fe-8117-e5d6511e0e0e", "data": [ { "text": "check alarms at ", "userDefined": false }, { "text": "9:30 pm", "meta": "@sys.time", "alias": "time", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "ae78b2ea-aff8-4990-8229-a1a8233720d7", "data": [ { "text": "do I have any alarms set", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "08a967f4-2e3f-46ca-aa2d-d340e899fce6", "data": [ { "text": "show my alarms for ", "userDefined": false }, { "text": "tomorrow", "meta": "@sys.date", "alias": "date", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "2e917e11-3d6b-4995-a3a2-b1fb6b3088c2", "data": [ { "text": "do I have any alarms set for ", "userDefined": false }, { "text": "June 22", "meta": "@sys.date", "alias": "date", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "f13fb3b1-519c-40bb-b53c-0a19133ec04c", "data": [ { "text": "check ", "userDefined": false }, { "text": "all", "meta": "@all", "alias": "all", "userDefined": true }, { "text": " my alarms", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "81f7cc85-4daf-43ae-9c03-9270b4dd1bbc", "data": [ { "text": "my alarms set for ", "userDefined": false }, { "text": "8 am", "meta": "@sys.time", "alias": "time", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "65cfe1f7-f90a-4ae1-a9a2-842c37153588", "data": [ { "text": "is my ", "userDefined": false }, { "text": "daily", "meta": "@recurrence", "alias": "recurrence", "userDefined": true }, { "text": " alarm set for ", "userDefined": false }, { "text": "10 am", "meta": "@sys.time", "alias": "time", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "ee0ff6ea-396b-4595-92d6-74ce8a5631b2", "data": [ { "text": "is my alarm set", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "667c0457-8a33-4181-b437-ecea278bb583", "data": [ { "text": "all", "meta": "@all", "alias": "all", "userDefined": true }, { "text": " my alarms", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "3b512b00-e0f7-4feb-94ae-b2280447b281", "data": [ { "text": "is my ", "userDefined": false }, { "text": "Work", "meta": "@sys.any", "alias": "alarm-name", "userDefined": true }, { "text": " alarm on", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "bdea5cd3-4a9a-44f9-a18b-1df88806f9fb", "data": [ { "text": "for what time do I have my alarm set", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "5758e0f1-6cad-403c-8ea1-b30b52da2705", "data": [ { "text": "I\u0027d like to see my ", "userDefined": false }, { "text": "daily", "meta": "@recurrence", "alias": "recurrence", "userDefined": true }, { "text": " alarms", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "1a8da6ef-246a-4bed-bff6-b303588fb18c", "data": [ { "text": "show me ", "userDefined": false }, { "text": "all", "meta": "@all", "alias": "all", "userDefined": true }, { "text": " my alarms", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "f01a2e47-9780-4a6f-935e-6396baa64ec2", "data": [ { "text": "show my alarm called ", "userDefined": false }, { "text": "Gym", "meta": "@sys.any", "alias": "alarm-name", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "91f4be1a-e892-4f1d-a0c1-8d58005f214b", "data": [ { "text": "do I have any alarms ", "userDefined": false }, { "text": "tomorrow", "meta": "@sys.date", "alias": "date", "userDefined": true }, { "text": " at ", "userDefined": false }, { "text": "9", "meta": "@sys.time", "alias": "time", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "4ea87643-b099-4aa7-b4ee-29d0498d0313", "data": [ { "text": "alarms list for ", "userDefined": false }, { "text": "next week", "meta": "@sys.date-period", "alias": "date-period", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "c1cce334-2e4a-47c2-93ef-e3e8e8a2fe8d", "data": [ { "text": "did you set the alarm for ", "userDefined": false }, { "text": "10 am", "meta": "@sys.time", "alias": "time", "userDefined": true } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 }, { "id": "ce5b471d-f7cf-4af7-972a-3a796bb02c48", "data": [ { "text": "pull up the list of ", "userDefined": false }, { "text": "all", "meta": "@all", "alias": "all", "userDefined": true }, { "text": " my alarms", "userDefined": false } ], "isTemplate": false, "count": 0, "lang": "en", "updated": 0 } ] ``` ## Translating Dialogflow **Notes** - Make sure to configure the proper export patterns for your Dialogflow files you upload to Crowdin. When downloading you should receive files named like "alarm.check_usersays_en.json", "alarm.check_usersays_fr.json". It's recommended to use Crowdin CLI or CVS integration to get translated package ready for import to the Dialogflow. - Every entry in Intent files woul require langauge code. This langauge code will not be set automatically, either you or a translators should put proper values using Crowdin Editor. If you enable automatic duplicates translation in your project settings, this action can be done once per every target language.