Set translations
set_translationsWrites translations for one language, as unsaved changes the user reviews and saves in Xodia (the same as typing on the canvas in that language). entries: page texts, each { text, value } with text exactly as get_translations gave it and value the translation ("" removes one); never put CMS item text here, it is translated with collection and items. collection with items: each item's translatable fields, its publish state in this language and its translated slug, written to the item's translation file; shared fields (dates, prices, images, references) are refused because they are the same in every language. Keep every numbered tag (<0>...</0>, <1/>) around the words it formats and every {0} {1} number placeholder exactly as in the text; translate the words between them. Translate for a website: natural wording, the brand and product names as they are, the site's tone. Each entry and item gets its own result (set, removed, unchanged or failed with why): fix and send only the failed ones again. Translate only when the user asks for it (a Translate with your AI request, or their own words); never on your own while building or editing. Languages past the site's allowance are refused (plan_limit).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"locale": "<locale>",
"projectId": "<projectId>"
},
"name": "set_translations"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | CMS item translations, up to 25 a call | |
| branch | No | Optional branch; default the branch the workspace has open | |
| locale | Yes | A language code from list_locales (not the default language) | |
| entries | No | Page texts (not CMS text), up to 100 a call | |
| projectId | Yes | Project id from list_projects | |
| collection | No | With items: the collection the items are in |