consent/set-languages sets which languages the banner is offered in, and which one it falls back to. It refuses without confirm: true.
It is destructive because the list is not just a list — it is what the per-language text hangs off.
Before you run it
Removing a language discards every cookie description and category name stored for it. That text is not archived anywhere and cannot be recovered from this suite. Read consent/list-categories and consent/list-cookies first if any of it matters — a translation nobody kept a copy of is gone the moment this returns.
At a glance
| Ability | consent/set-languages |
| Toolset | CookieYes — toolset/cookieyes |
| Group | CookieYes › Configuration |
| Requires | CookieYes, active on the site |
| Capability | manage_options |
| Safety | Destructive — removing a language discards the banner text stored for it, and it refuses to run without confirm: true. |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
How it works
Every cookie description and every category name is stored per language against this list. Take a language off it and the text stored for that language goes too. Not hidden, not archived — discarded.
That makes shortening the list a content deletion wearing the clothes of a settings change, which is exactly the kind of operation that gets run casually. Hence the confirmation.
Adding languages is safe in the sense that nothing is lost, but it is not free: each new language starts blank everywhere, and a blank language renders an empty banner to the visitors who get it.
The default must be one of the selected languages. It is the fallback, so it cannot point at something not on the list.
You supply the whole list, not a change to it. Whatever you send is what the banner will be offered in.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
selected | array | Yes | The complete list of language codes to offer, for example ["en", "de"]. This replaces the current list. |
default | string | No | The language to fall back to. Must be one of the selected languages. |
confirm | boolean | Yes — must be true | The irreversibility gate. Without it the call is refused before anything is touched. |
What comes back
| Name | Type | What it is |
|---|---|---|
languages | array | The languages the banner is built for. |
rendered | object | The size of the built banner, per language. |
pending_rebuild | boolean | Whether the banner is still waiting to be rebuilt. True after a write means the change is stored but not yet being served. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Offer the cookie banner in English and German only.
It resolves to one call:
{
"ability": "consent/set-languages",
"parameters": {
"selected": ["en", "de"],
"default": "en",
"confirm": true
}
}Worth knowing
- Export the text you care about before shortening the list.
- The list is replaced wholesale. Include the languages you are keeping.
- New languages start blank everywhere and render an empty banner until filled in.
- The default must be in the selected list.
Related abilities
- List Banner Languages — read the current list
- List Declared Cookies — save the text before you remove a language
- List Consent Categories — the other half of the text
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category