# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Admin API V1 Translation Dictionaries API version: 1.0.0 extends: openapi/optimizely-translation-dictionaries-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 10 - target: $.paths['/api/v1/admin/TranslationDictionaries'].get update: x-apievangelist-phrasing: intent: List translation dictionary entries effect: read questions: - Which storefront labels have translations in my translation dictionary? - Can I filter translations to one language? - How many translation entries exist? instructions: - text: List all translation dictionary entries. - text: Find translation entries matching {filter}. slots: filter: query.$filter method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/TranslationDictionaries'].post update: x-apievangelist-phrasing: intent: Add a translation for a keyword effect: write questions: - How do I add a translated label for a storefront keyword? - Can I add a translation for a specific language? instructions: - text: Add translation {translation} for keyword {keyword} from source {source}. slots: translation: requestBody.translation keyword: requestBody.keyword source: requestBody.source - text: Create a {languageId} translation of {keyword} as {translation} with source {source}. slots: languageId: requestBody.languageId keyword: requestBody.keyword translation: requestBody.translation source: requestBody.source method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/TranslationDictionaries({id})'].get update: x-apievangelist-phrasing: intent: Get one translation entry effect: read questions: - What is the stored translation for a specific dictionary entry? - How do I look up one translation record by ID? instructions: - text: Get translation entry {id}. slots: id: path.id - text: Show dictionary entry {id} with {expand} expanded. slots: id: path.id expand: query.$expand method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/TranslationDictionaries({id})'].put update: x-apievangelist-phrasing: intent: Replace a translation entry effect: write questions: - How do I overwrite a translation entry's keyword, source and text together? - Can I fully replace a translation dictionary record? instructions: - text: Replace translation entry {id} with keyword {keyword}, source {source}, translation {translation}. slots: id: path.id keyword: requestBody.keyword source: requestBody.source translation: requestBody.translation - text: Overwrite the whole translation record {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/TranslationDictionaries({id})'].delete update: x-apievangelist-phrasing: intent: Delete a translation entry effect: destructive questions: - How do I remove one translation from the dictionary? - Can I delete a translation only if the ETag still matches? instructions: - text: Delete translation entry {id}. slots: id: path.id - text: Delete translation {id} if its ETag is {ifMatch}. slots: id: path.id ifMatch: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/TranslationDictionaries({id})'].patch update: x-apievangelist-phrasing: intent: Fix the text of a translation effect: write questions: - Can I correct just the translated text of an existing entry? - How do I change the language on one translation record? instructions: - text: Change the translated text of entry {id} to {translation}. slots: id: path.id translation: requestBody.translation - text: Set the language of translation entry {id} to {languageId}. slots: id: path.id languageId: requestBody.languageId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/TranslationDictionaries/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get the default translation entry template effect: read questions: - What default values does a new translation entry start with? - Is there a blank translation dictionary template? instructions: - text: Fetch the default translation entry template. - text: Get default values for a new dictionary entry. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/translationdictionaries/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete translation entries effect: destructive questions: - How do I delete many translations at once? - Can I remove several dictionary entries by passing their IDs? instructions: - text: Bulk delete translation entries {ids}. slots: ids: query.ids - text: 'Remove all these translations in one call: {ids}.' slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/translationdictionaries({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property of a translation entry effect: read questions: - How do I read a custom property on a translation entry? - Can I fetch one custom field from a dictionary record? instructions: - text: Get custom property {custompropertyKey} of translation entry {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Show custom field {custompropertyKey} on dictionary entry {key}. slots: custompropertyKey: path.custompropertyKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/translationdictionaries'].get update: x-apievangelist-phrasing: intent: Look up storefront translation entries effect: read questions: - How do I find the translated text for a storefront label in another language? - Can I search translation dictionaries by keyword and language code? instructions: - text: Search translations for keyword {keyWord} in language {languageCode}. slots: keyWord: query.parameter.keyWord languageCode: query.parameter.languageCode - text: List translation dictionary entries from source {source}. slots: source: query.parameter.source method: generated generated: '2026-10-01'