Title: SlyTranslate &#8211; AI Translation Abilities
Author: Timon
Published: <strong>April 29, 2026</strong>
Last modified: August 20, 2026

---

Search plugins

![](https://ps.w.org/slytranslate/assets/icon.svg?rev=3549733)

# SlyTranslate – AI Translation Abilities

 By [Timon](https://profiles.wordpress.org/timonf/)

[Download](https://downloads.wordpress.org/plugin/slytranslate.1.11.1.zip)

 * [Details](https://sa.wordpress.org/plugins/slytranslate/#description)
 * [Reviews](https://sa.wordpress.org/plugins/slytranslate/#reviews)
 *  [Installation](https://sa.wordpress.org/plugins/slytranslate/#installation)
 * [Development](https://sa.wordpress.org/plugins/slytranslate/#developers)

 [Support](https://wordpress.org/support/plugin/slytranslate/)

## Description

SlyTranslate wires AI translation into WordPress at three different levels: the 
admin UI, the Gutenberg editor, and from external LLM tools via MCP. Whichever level
you work at, the same language plugin integrations and translation quality controls
apply.

It works with any LLM available through a WordPress AI connector and natively supports
Polylang, WP Multilang, WPGlobus, and TranslatePress Multilingual.

**What it does**

 * Translates posts, pages, and custom post types into any language managed by your
   active language plugin
 * Translates selected text or entire Gutenberg blocks inline, without leaving the
   editor
 * Exposes the same functionality as MCP abilities, so external LLM tools (Claude
   Code, Codex, and others) can drive translations programmatically
 * Carries SEO metadata (title, description) through the same translation workflow
   as the post content
 * Translates custom fields from ACF (including ACF blocks and options pages), Meta
   Box, and Pods automatically — no configuration required when the field plugin
   is active
 * Handles long and structured content with chunking and output validation
 * Supports model-specific profiles that tune prompt style and retry behavior for
   known model families

#### Workflow 1 — Admin UI translation (posts & pages overview, side panel)

Translate full posts or pages directly inside WordPress admin — either one at a 
time from the editor side panel or in bulk from the list view.

**Requirements:** language plugin + configured AI Connector

From the **post/page list**, select one or more items and choose a translation action
from the bulk-actions menu. A dialog lets you pick target language, model, and whether
to overwrite existing translations. Progress updates live while the translation 
runs, and you can cancel at any time.

From the **editor side panel**, the same controls appear alongside the post you 
are currently editing. TranslatePress users get an equivalent panel inside the TranslatePress
visual editor on `?trp-edit-translation` pages.

The language plugin (Polylang, WP Multilang, WPGlobus, or TranslatePress) handles
the translated post as it normally would — SlyTranslate creates or updates the translated
entry and lets the language plugin own the relationship.

#### Workflow 2 — Inline Gutenberg translation (block or selected text)

Translate content while writing, without touching a language plugin or a full-post
workflow.

**Requirements:** configured AI Connector

Select any text in a Gutenberg block and the block toolbar gains a **Translate**
button. The selected text is replaced with the translation in place. When no text
is selected, the button translates the entire block.

This workflow is self-contained: it does not require a language plugin and does 
not create or modify translated post entries. It is useful for one-off corrections,
translating imported content on the fly, or working in a single-language site where
you just need AI rewriting in another language.

#### Workflow 3 — LLM wrapper via MCP (Claude Code, Codex, and others)

Drive WordPress translations from inside your LLM tool of choice.

**Requirements:** language plugin + WordPress application password (token) + WordPress
MCP Adapter plugin

When a WordPress MCP Adapter is active, SlyTranslate registers its abilities over
MCP. Any MCP-capable LLM client — Claude Code, Codex, custom agents — can then discover
and call them.

In this workflow **the LLM wrapper provides the translation itself**. SlyTranslate’s
MCP abilities handle the WordPress side: reading content structure, checking translation
status, writing translated entries, and coordinating with the language plugin. No
WordPress AI Connector is needed because translation is performed by the external
model, not by WordPress.

A typical agent session:

 1. Call `ai-translate/get-languages` to find valid target language codes.
 2. Call `ai-translate/get-translation-status` on the source post to read `source_language`
    and `single_entry_mode`.
 3. Translate the content using the agent’s own LLM.
 4. Call `ai-translate/translate-content` to write the translated entry.

This is the right workflow for automating bulk site migrations, integrating translation
into a CI/CD pipeline, or building a custom translation agent that uses a model 
not available as a WordPress AI connector.

#### Internal flow

    ```
    ┌──────────────────┐   ┌───────────────────┐   ┌────────────────────────┐
    │    Admin UI      │   │    Gutenberg       │   │   LLM Wrapper          │
    │  (panel / list)  │   │ (block / toolbar)  │   │ (Claude Code, Codex…)  │
    └────────┬─────────┘   └────────┬──────────┘   └──────────┬─────────────┘
             │ REST                 │ REST                     │ MCP
             └──────────────────────┴──────────────────────────┘
                                            │
                                 ┌──────────▼──────────────┐
                                 │  SlyTranslate  Ability  │
                                 │  (REST / MCP endpoint)  │
                                 └──────────┬──────────────┘
                                            │
                                ┌───────────▼───────────┐
                                │     AI Connector      │  ← UI/block workflows
                                │  (wp_ai_client_prompt)│    only
                                └───────────┬───────────┘
                                            │
                                ┌───────────▼───────────┐
                                │   LLM (any provider)  │
                                └───────────┬───────────┘
                                            │
                                ┌───────────▼───────────┐
                                │  Chunk + Validate     │
                                └───────────┬───────────┘
                                            │
                                ┌───────────▼───────────┐
                                │   Language Plugin     │
                                │  Polylang / TP / …    │
                                └───────────┬───────────┘
                                            │
                                ┌───────────▼───────────┐
                                │   WordPress Post      │
                                └───────────────────────┘
    ```

In the MCP workflow the LLM Wrapper acts as the translation engine — the AI Connector
and LLM steps inside WordPress are bypassed.

#### Abilities reference

    ```
    ai-translate/get-languages — List languages exposed by the active language plugin

    ai-translate/get-translation-status — Show translation status for a content item, including `source_language` and `single_entry_mode`

    ai-translate/set-post-language — Change the language assignment of an existing content item (Polylang only)

    ai-translate/get-untranslated — Find content still missing a target translation

    ai-translate/translate-text — Translate arbitrary text

    ai-translate/translate-blocks — Translate serialized Gutenberg blocks

    ai-translate/translate-content — Create or update one translated post/page/CPT entry

    ai-translate/translate-content-bulk — Bulk-translate multiple entries (set `background=true` to queue the batch via Action Scheduler/WP-Cron and poll it with `get-progress`)

    ai-translate/translate-terms — Bulk-translate taxonomy terms and link them as translations (Polylang only)

    ai-translate/get-translatable-fields — Introspect which meta fields a translation would translate or clear, with source attribution (manual/SEO/ACF/default/filter)

    ai-translate/get-progress — Return live progress for a running translation or a queued background job (`job_id`)

    ai-translate/cancel-translation — Cancel a running translation or a queued background job (`job_id`)

    ai-translate/get-available-models — List models from configured connectors

    ai-translate/save-additional-prompt — Save per-user additional instructions

    ai-translate/configure — Read or update persistent plugin settings
    ```

**MCP call sequence**

For reliable results in agent workflows:

 * Call `get-languages` first when the correct target language code is unknown.
 * Call `get-translation-status` before `translate-content` to read `source_language`,`
   single_entry_mode`, and whether a translation already exists.
 * Omit `source_language` unless you intentionally pin a source variant.
 * Set `overwrite=true` only when status or prior context confirms a target-language
   entry already exists.
 * `translated_post_id` equals `source_post_id` in single-entry adapters (WP Multilang,
   WPGlobus, TranslatePress). In multi-post adapters (Polylang) the translated item
   has a sibling post ID.

#### Supported plugins

**Language plugins**

 * Polylang
 * WP Multilang
 * WPGlobus
 * TranslatePress Multilingual

**Field plugins** (custom fields translated alongside content)

 * Advanced Custom Fields (ACF) — Free and Pro, including Repeater and Flexible 
   Content, ACF blocks in Gutenberg, and options pages
 * Meta Box (metabox.io)
 * Pods

**SEO plugins** (metadata translated alongside content)

 * Genesis SEO
 * Yoast SEO
 * Rank Math
 * All in One SEO
 * The SEO Framework
 * SEOpress
 * Slim SEO

#### Supported model profiles

Any LLM available through a WordPress AI connector works without configuration. 
The following model families have dedicated built-in profiles that tune prompt style,
chunking, and retry behavior:

 * **TranslateGemma** — dedicated runtime with `chat_template_kwargs` support via`
   direct_api_url`
 * **TowerInstruct / Salamandra** — bilingual framing, conservative chunking, stricter
   retries
 * **Nvidia Nemotron** — system-prompt-aware, reasoning-disable, provider-parameter
   forwarding
 * **Qwen 3.x / GLM-4.6v / Gemma 4 / Phi-4** — thinking-aware profiles
 * **EuroLLM / Llama 3.1-8B / SauerkrautLM** — conservative chunking tuned for European
   languages
 * **Ministral-3 / Ministral-8B** — optimized for the Ministral model family

Additional profiles can be registered via the `slytranslate_model_profiles` filter.

## Screenshots

[⌊Side panel in post/page editor⌉⌊Side panel in post/page editor⌉[

Side panel in post/page editor

[⌊Inline text translation⌉⌊Inline text translation⌉[

Inline text translation

[⌊Gutenberg block translation⌉⌊Gutenberg block translation⌉[

Gutenberg block translation

[⌊Post/page list with bulk translation action⌉⌊Post/page list with bulk translation
action⌉[

Post/page list with bulk translation action

[⌊Translation UI overview⌉⌊Translation UI overview⌉[

Translation UI overview

[⌊TranslatePress visual editor addon⌉⌊TranslatePress visual editor addon⌉[

TranslatePress visual editor addon

## Installation

**Via WordPress Plugin Directory (recommended)**

 1. Ensure WordPress 6.9+ and PHP 8.1+ are running.
 2. In wp-admin, go to Plugins > Add New and search for “SlyTranslate”.
 3. Install and activate SlyTranslate.
 4. Install and configure an AI connector in Settings > Connectors.
 5. Optional for content translation: install and activate Polylang, WP Multilang, 
    WPGlobus, or TranslatePress Multilingual.
 6. Optional for local llama.cpp models: install AI Provider for llama.cpp.
 7. Optional for other OpenAI-compatible local/self-hosted endpoints: install Ultimate
    AI Connector for Compatible Endpoints.
 8. Optional for MCP discovery: install and activate WordPress MCP Adapter.

**Manual installation**

 1. Ensure WordPress 6.9+ and PHP 8.1+ are running.
 2. Copy the `slytranslate` directory to `/wp-content/plugins/`.
 3. Activate SlyTranslate in wp-admin.
 4. Configure an AI connector in Settings > Connectors.
 5. Optional steps same as above.

## FAQ

### Do ACF fields get translated automatically?

Yes. When Advanced Custom Fields (Free or Pro) is active, SlyTranslate automatically
detects `text`, `textarea`, and `wysiwyg` fields on the post being translated and
includes them in the translation — no settings to configure. Fields of other types(`
image`, `number`, `url`, `select`, relationships, etc.) are left untouched.

This includes Repeater and Flexible Content layouts: each leaf field with a translatable
type is picked up individually, regardless of nesting depth.

To extend which field types are translated, add a filter to your theme’s `functions.
php` or a site-specific plugin:

    ```
    add_filter( 'slytranslate_acf_translatable_field_types', function ( $types ) { $types[] = 'url'; return $types; } );
    ```

To exclude fields there are three options: enable the “Exclude from AI translation”
toggle in the ACF field editor, add the meta keys to the `meta_keys_exclude` setting(
via the `configure` MCP ability), or use the `slytranslate_translate_meta_key` filter,
which has the final say:

    ```
    add_filter( 'slytranslate_translate_meta_key', function ( $translate, $meta_key ) { return $meta_key === 'my_field' ? false : $translate; }, 10, 2 );
    ```

### Are ACF blocks and options pages covered?

Yes. Field data stored inside `acf/*` Gutenberg blocks is translated automatically
along with the post content, including repeater sub-fields. ACF `link` fields translate
only the link title — URL and target are never sent to the model.

ACF fields on options pages are translated through the `ai-translate/translate-options`
MCP ability. With WPGlobus or WP Multilang the translated variant is merged into
the option value; TranslatePress needs no separate step (its string table already
translates option output). Polylang has no language-aware option storage — opt in
to per-language storage via the `slytranslate_acf_options_post_id` filter.

### Do Meta Box or Pods fields get translated automatically?

Yes. Translatable field types (`text`, `textarea`, `wysiwyg` for Meta Box; `text`,`
paragraph`, `wysiwyg` for Pods) are detected through each plugin’s field registry.
The type lists are extensible via the `slytranslate_metabox_translatable_field_types`
and `slytranslate_pods_translatable_field_types` filters.

### Does this work without a language plugin?

Yes, for inline text and block translation. Content translation workflows (full 
post/page) require a supported language plugin.

### Where are API keys configured?

In WordPress Settings > Connectors, not inside SlyTranslate.

### Can I run bulk translation from the post/page list?

Yes. Select items in wp-admin, pick the bulk translation action, choose language
and model, and confirm.

### Can bulk jobs run in the background?

Yes. Call `ai-translate/translate-content-bulk` with `background=true` and the batch
is queued with one post per scheduled action — via Action Scheduler when available(
bundled by WooCommerce), otherwise via WP-Cron. Poll with `get-progress` (`job_id`)
and cancel with `cancel-translation` (`job_id`). Jobs survive closed browser tabs
and PHP timeouts. Without a working cron the browser-driven mode keeps working as
before.

### Are taxonomy terms (categories, tags) translated?

With Polylang, enable `translate_terms` in `ai-translate/configure`: terms without
a target-language translation are then created and linked automatically during post
translation instead of being dropped. For existing sites, `ai-translate/translate-
terms` bulk-translates whole taxonomies (use `dry_run=true` to preview).

### Are image alt texts translated?

Yes. Alt texts embedded in the content are translated with the content. The attachment
meta alt text (`_wp_attachment_image_alt`) is translated by default, and with Polylang’s
media translation enabled, duplicating a media item also translates its alt text,
caption, and description.

### Can I protect brand names or enforce fixed terminology?

Yes. Configure the `glossary` setting via `ai-translate/configure`: entries with`
mode=keep` are never translated; entries with `mode=translate` always use your fixed
per-language translation.

### Can new posts be translated automatically on publish?

Yes. Enable `auto_translate_new` in `ai-translate/configure`. Publishing a post 
in the source language queues draft translations for all missing target languages
in the background — they are never auto-published, so editorial review stays in 
place.

### Does this work inside the TranslatePress visual editor?

Yes. On pages opened with `?trp-edit-translation=true`, SlyTranslate adds a sidebar
panel with the same model, overwrite, progress, and cancel controls used elsewhere.

### How does overwriting existing translations work?

In the list-table dialog, overwrite is off by default. If a translation already 
exists you must enable it and confirm before the translation starts.

### Can I change a post’s language without re-translating?

Yes, when using Polylang. Call `ai-translate/set-post-language` with `post_id` and`
target_language`. Use `force` to bypass conflict checks and `relink=true` to rewrite
translation relations. Not available in WP Multilang mode.

### How do I control the prompt and translation style?

Use the settings page (Settings  SlyTranslate) or `ai-translate/configure` for persistent
defaults — both write through the same backend. Pass `additional_prompt` on any `
translate-*` call for per-request instructions.

### Why does execute-ability fail even when discovery looks correct?

Some external WordPress MCP adapter wrappers expose a flatter `execute-ability` 
signature. If `discover-abilities` shows the correct SlyTranslate schema but `execute-
ability` still errors about a missing `parameters` wrapper, investigate the external
adapter layer — SlyTranslate controls ability names, descriptions, and schemas, 
not the wrapper surface.

### Which model-specific profiles are supported?

Any LLM from a WordPress AI connector works without configuration. Built-in dedicated
profiles exist for: TranslateGemma, TowerInstruct, Salamandra, Nvidia Nemotron, 
Qwen 3.x, GLM-4.6v, Gemma 4, Phi-4, EuroLLM, Llama 3.1-8B, SauerkrautLM, Ministral-
3, and Ministral-8B. Additional profiles can be registered via the `slytranslate_model_profiles`
filter.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“SlyTranslate – AI Translation Abilities” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Timon ](https://profiles.wordpress.org/timonf/)

[Translate “SlyTranslate – AI Translation Abilities” into your language.](https://translate.wordpress.org/projects/wp-plugins/slytranslate)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/slytranslate/), check
out the [SVN repository](https://plugins.svn.wordpress.org/slytranslate/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/slytranslate/) by
[RSS](https://plugins.trac.wordpress.org/log/slytranslate/?limit=100&mode=stop_on_copy&format=rss).

## Meta

 *  Version **1.11.1**
 *  Last updated **2 weeks ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.9 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.1 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/slytranslate/)
 * Tags
 * [abilities-api](https://sa.wordpress.org/plugins/tags/abilities-api/)[AI](https://sa.wordpress.org/plugins/tags/ai/)
   [polylang](https://sa.wordpress.org/plugins/tags/polylang/)[translation](https://sa.wordpress.org/plugins/tags/translation/)
 *  [Advanced View](https://sa.wordpress.org/plugins/slytranslate/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/slytranslate/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/slytranslate/reviews/)

## Contributors

 *   [ Timon ](https://profiles.wordpress.org/timonf/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/slytranslate/)