{"id":301990,"date":"2026-04-29T11:33:34","date_gmt":"2026-04-29T11:33:34","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/slytranslate-ai-translation-abilities\/"},"modified":"2026-04-29T11:30:19","modified_gmt":"2026-04-29T11:30:19","slug":"slytranslate","status":"publish","type":"plugin","link":"https:\/\/as.wordpress.org\/plugins\/slytranslate\/","author":13775390,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.6.1","stable_tag":"1.6.1","tested":"6.9.4","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"SlyTranslate","header_author":"Timon F\u00f6rst","header_description":"AI translation abilities for WordPress using native AI Connectors as a core feature, plus the AI Client and Abilities API for text and content translation.","assets_banners_color":"","last_updated":"2026-04-29 11:30:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/slytranslate\/","header_author_uri":"https:\/\/github.com\/SlyBase\/wordpress-slytranslate","rating":0,"author_block_rating":0,"active_installs":0,"downloads":205,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq"],"tags":{"1.6.1":{"tag":"1.6.1","author":"TimonF","date":"2026-04-29 11:30:19"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3518350,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3518350,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3518350,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.6.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3518350,"resolution":"1","location":"assets","locale":"","width":3018,"height":1950},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3518350,"resolution":"2","location":"assets","locale":"","width":3018,"height":1950},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3518350,"resolution":"3","location":"assets","locale":"","width":3018,"height":1950},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3518350,"resolution":"4","location":"assets","locale":"","width":1336,"height":582},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3518350,"resolution":"5","location":"assets","locale":"","width":3018,"height":1950}},"screenshots":{"1":"Panel UI in page\/post","2":"Inline translation","3":"Gutenberg block translation","4":"Page\/post translation and bulk action","5":"Translation UI overview"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[256265,2353,10601,2333,261398],"plugin_category":[48],"plugin_contributors":[248563],"plugin_business_model":[],"class_list":["post-301990","plugin","type-plugin","status-publish","hentry","plugin_tags-abilities-api","plugin_tags-ai","plugin_tags-polylang","plugin_tags-translation","plugin_tags-wp-multilang","plugin_category-language-tools","plugin_contributors-timonf","plugin_committers-timonf"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/slytranslate\/assets\/icon.svg?rev=3518350","icon":"https:\/\/ps.w.org\/slytranslate\/assets\/icon.svg?rev=3518350","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/slytranslate\/assets\/screenshot-1.png?rev=3518350","caption":"Panel UI in page\/post"},{"src":"https:\/\/ps.w.org\/slytranslate\/assets\/screenshot-2.png?rev=3518350","caption":"Inline translation"},{"src":"https:\/\/ps.w.org\/slytranslate\/assets\/screenshot-3.png?rev=3518350","caption":"Gutenberg block translation"},{"src":"https:\/\/ps.w.org\/slytranslate\/assets\/screenshot-4.png?rev=3518350","caption":"Page\/post translation and bulk action"},{"src":"https:\/\/ps.w.org\/slytranslate\/assets\/screenshot-5.png?rev=3518350","caption":"Translation UI overview"}],"raw_content":"<!--section=description-->\n<p>SlyTranslate brings practical AI translation to WordPress. It is built for teams that need translation directly in editing workflows and also want the same workflows available through REST and MCP automation.<\/p>\n\n<p><strong>Why this plugin?<\/strong><\/p>\n\n<p>Use SlyTranslate when you need one consistent translation workflow for:<\/p>\n\n<ul>\n<li>page\/post translation in wp-admin<\/li>\n<li>inline selected-text translation in Gutenberg<\/li>\n<li>Gutenberg block translation<\/li>\n<li>bulk translation from list-table actions<\/li>\n<li>SEO title\/description translation in the same process<\/li>\n<\/ul>\n\n<p><strong>Internal flow (short):<\/strong><\/p>\n\n<ul>\n<li>Uses native WordPress AI connectors through <code>wp_ai_client_prompt()<\/code>.<\/li>\n<li>Registers translation workflows as WordPress Abilities.<\/li>\n<li>Exposes abilities over REST (<code>\/wp-abilities\/v1\/<\/code>) and MCP discovery.<\/li>\n<li>Supports long\/structured content with chunking and output validation.<\/li>\n<li>Optional <code>direct_api_url<\/code> supports OpenAI-compatible endpoints for model-specific payload needs.<\/li>\n<li>In WP Multilang mode, translation state is detected from language-specific content so placeholder titles do not count as completed translations.<\/li>\n<li>List-table translation now includes an explicit overwrite option with a confirmation step.<\/li>\n<\/ul>\n\n<p><strong>Abilities:<\/strong><\/p>\n\n\n\n\n  Ability\n  Purpose\n\n\n\n\n  <code>ai-translate\/get-languages<\/code>\n  List languages exposed by the active language plugin\n\n\n  <code>ai-translate\/get-translation-status<\/code>\n  Show translation status for a content item, including <code>source_language<\/code> and <code>single_entry_mode<\/code>\n\n\n  <code>ai-translate\/set-post-language<\/code>\n  Change the language assignment of an existing content item (only exposed when supported, e.g. Polylang)\n\n\n  <code>ai-translate\/get-untranslated<\/code>\n  Find content still missing a target translation\n\n\n  <code>ai-translate\/translate-text<\/code>\n  Translate arbitrary text\n\n\n  <code>ai-translate\/translate-blocks<\/code>\n  Translate serialized Gutenberg blocks\n\n\n  <code>ai-translate\/translate-content<\/code>\n  Create or update one translated post\/page\/CPT entry (call <code>get-translation-status<\/code> first; optional <code>source_language<\/code> + <code>overwrite<\/code>)\n\n\n  <code>ai-translate\/translate-content-bulk<\/code>\n  Bulk-translate multiple entries (supports optional <code>source_language<\/code> and <code>overwrite<\/code>)\n\n\n  <code>ai-translate\/get-progress<\/code>\n  Return live progress for a running translation\n\n\n  <code>ai-translate\/cancel-translation<\/code>\n  Cancel a running translation\n\n\n  <code>ai-translate\/get-available-models<\/code>\n  List models from configured connectors\n\n\n  <code>ai-translate\/save-additional-prompt<\/code>\n  Save per-user additional instructions\n\n\n  <code>ai-translate\/configure<\/code>\n  Read or update persistent plugin settings\n\n\n\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>WordPress 6.9+<\/li>\n<li>PHP 8.1+<\/li>\n<li>An AI connector configured in WordPress (Settings &gt; Connectors)<\/li>\n<li>A supported language plugin (Polylang or WP Multilang) for content-translation workflows across posts\/pages\/CPTs<\/li>\n<li>WordPress MCP Adapter if you want MCP discovery<\/li>\n<\/ul>\n\n<p><strong>Supported plugins:<\/strong><\/p>\n\n<ul>\n<li>Language plugin: Polylang, WP Multilang<\/li>\n<li>SEO plugins: Genesis SEO, Yoast SEO, Rank Math, All in One SEO, The SEO Framework, SEOpress, Slim SEO<\/li>\n<\/ul>\n\n<p><strong>Supported model profiles:<\/strong><\/p>\n\n<p>Any LLM available through a WordPress AI connector works out of the box \u2014 no special configuration needed. The following model families additionally have dedicated built-in profiles that tune prompt style, chunking, and retry behavior for better results:<\/p>\n\n<ul>\n<li>TranslateGemma: dedicated runtime with <code>chat_template_kwargs<\/code> support through <code>direct_api_url<\/code><\/li>\n<li>TowerInstruct \/ Salamandra: bilingual framing, conservative chunking, stricter retry behavior<\/li>\n<li>Nvidia Nemotron: system-prompt-aware with reasoning-disable and provider-parameter forwarding<\/li>\n<li>Qwen 3.x \/ GLM-4.6v \/ Gemma 4 \/ Phi-4: thinking-aware profiles<\/li>\n<li>EuroLLM \/ Llama 3.1-8B \/ SauerkrautLM: conservative chunking tuned for European languages<\/li>\n<li>Ministral-3 \/ Ministral-8B: optimized for the Ministral model family<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Ensure WordPress 6.9+ and PHP 8.1+ are running.<\/li>\n<li>Install and configure an AI connector in Settings &gt; Connectors.<\/li>\n<li>Optional for content translation: install and activate Polylang or WP Multilang.<\/li>\n<li>Optional for local llama.cpp models: install AI Provider for llama.cpp.<\/li>\n<li>Optional for other OpenAI-compatible local\/self-hosted endpoints: install Ultimate AI Connector for Compatible Endpoints.<\/li>\n<li>Optional for MCP discovery: install and activate WordPress MCP Adapter.<\/li>\n<li>Upload the <code>slytranslate<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate SlyTranslate.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20without%20a%20language%20plugin%3F\"><h3>Does this work without a language plugin?<\/h3><\/dt>\n<dd><p>Yes, for text and block translation (<code>translate-text<\/code>, <code>translate-blocks<\/code>, inline selected-text workflow). Content translation workflows require a supported language plugin (Polylang or WP Multilang).<\/p><\/dd>\n<dt id=\"where%20are%20api%20keys%20configured%3F\"><h3>Where are API keys configured?<\/h3><\/dt>\n<dd><p>In WordPress Settings &gt; Connectors, not inside SlyTranslate.<\/p><\/dd>\n<dt id=\"can%20i%20use%20bulk%20translation%20from%20post%2Fpage%20lists%3F\"><h3>Can I use bulk translation from post\/page lists?<\/h3><\/dt>\n<dd><p>Yes. Use <code>translate-content-bulk<\/code> through abilities or the wp-admin list-table translation UI.<\/p><\/dd>\n<dt id=\"how%20does%20overwriting%20existing%20translations%20work%3F\"><h3>How does overwriting existing translations work?<\/h3><\/dt>\n<dd><p>In the list-table dialog, <strong>Overwrite existing translation<\/strong> is off by default. If a translation already exists, you must enable overwrite and confirm before the translation starts.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20language%20assignment%20of%20an%20existing%20post%20without%20running%20translation%3F\"><h3>Can I change the language assignment of an existing post without running translation?<\/h3><\/dt>\n<dd><p>Yes, when the active language plugin supports language mutation (currently Polylang). In that case <code>ai-translate\/set-post-language<\/code> is exposed and can be called with <code>post_id<\/code> and <code>target_language<\/code>. By default language conflicts fail with <code>language_conflict<\/code>; use <code>force<\/code> to opt in, and pass <code>relink=true<\/code> when translation relations should be rewritten. In WP Multilang mode this ability is not exposed.<\/p><\/dd>\n<dt id=\"how%20do%20i%20control%20prompts%20and%20style%3F\"><h3>How do I control prompts and style?<\/h3><\/dt>\n<dd><p>Use <code>ai-translate\/configure<\/code> for persistent defaults and <code>additional_prompt<\/code> on <code>translate-*<\/code> abilities for per-request instructions.<\/p><\/dd>\n<dt id=\"which%20model-specific%20profiles%20are%20supported%3F\"><h3>Which model-specific profiles are supported?<\/h3><\/dt>\n<dd><p>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 <code>slytranslate_model_profiles<\/code> filter.<\/p><\/dd>\n\n<\/dl>","raw_excerpt":"AI translation abilities for WordPress using native AI Connectors, the AI Client and Abilities API for automated text and content translation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/301990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=301990"}],"author":[{"embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/timonf"}],"wp:attachment":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=301990"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=301990"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=301990"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=301990"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=301990"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=301990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}