translations/get-bundle opens one bundle up: every text domain it defines, whether each has a POT template, and which locales already have a translation.
It accepts the bundle id, handle or slug, because all three appear in Loco’s own screens and people copy whichever they are looking at.
At a glance
| Ability | translations/get-bundle |
| 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
Make this the call before any write. Addressing a text domain that does not exist is the commonest failure in this suite, and it is entirely avoidable.
Whether a domain has a POT template matters more than it sounds. Without one, translations/create-translation-file has nothing to seed from and translations/sync-translations falls back to scanning source code.
The locale list tells you whether you are starting a translation or continuing one — a distinction that decides between creating a file and updating strings.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
bundle | string | Yes | Bundle id, handle or slug — all three appear in Loco’s own screens. Use core for WordPress itself. |
What comes back
| Name | Type | What it is |
|---|---|---|
bundle | object | The bundle: name, type, text domains, POT presence per domain, and existing locales. |
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 text domains does WooCommerce define, and which languages do we already have?
It resolves to one call:
{
"ability": "translations/get-bundle",
"parameters": {
"bundle": "woocommerce"
}
}Worth knowing
- Id, handle and slug all work. Use whichever Loco showed you.
- No POT template means no seed —
translations/extract-stringsbuilds one. - A bundle with several text domains needs
domainpassed explicitly on every later call.
Related abilities
- List Translation Bundles — find the bundle first
- Create Translation File — start a locale it lacks
- Extract Strings To Template — build the POT it has no template for
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category