Locale tags are unforgiving. de_DE works, de-DE does not, and de is a different thing again.
translations/list-locales gives you the ones this site actually uses, the ones WordPress has language packs for, and the site default — so a locale can be chosen rather than guessed.
At a glance
| Ability | translations/list-locales |
| Toolset | Loco Translate — toolset/loco-translate |
| Group | Loco Translate › Discovery |
| Requires | Loco Translate, active on the site |
| Capability | manage_options |
| Safety | Read-only — changes nothing |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
How it works
The three lists answer different questions. site_locale is what visitors see by default. installed is what WordPress itself has packs for. in_use is what already has at least one PO file on this site.
A locale in in_use but not installed is a hand-made translation with no official pack behind it — worth knowing before anyone runs translations/fetch-translations expecting it to be maintained upstream.
Pass bundle to narrow the in-use list to one plugin or theme.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
bundle | string | No | Restrict the in-use list to one bundle. Omit for the whole site. |
What comes back
| Name | Type | What it is |
|---|---|---|
site_locale | string | The locale the site runs in. |
installed | array | Locales WordPress has language packs for. |
in_use | array | Locales that already have at least one PO file. |
in_use_count | integer | How many locales are in use. |
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:
What languages is this site already translated into?
It resolves to one call:
{
"ability": "translations/list-locales",
"parameters": {}
}Worth knowing
- Copy a tag from here rather than typing one. Loco refuses malformed tags outright.
- In use but not installed means somebody translated it by hand. Nothing upstream will update it.
- The site default is not necessarily in use for every bundle.
Related abilities
- Create Translation File — start a new locale
- List Available Languages — what WordPress.org publishes
- Get Translation Bundle — locales for one bundle
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category