Create language versions of your public Posts and Pages without a translation-service account or API key. Enter translated title, excerpt and HTML content, save a private draft, review it, then publish its locale-prefixed URL, such as /fr/about/.
There is no background automatic translation, direct provider connection, tracking, registration, paid unlock or mandatory credit link. Optional connected assistants can translate approved text on your explicit request; their accounts, processing and charges are separate. New installations suggest English (unless it is the source), Spanish, German, Japanese, French and Portuguese (Brazil) as targets; administrators can change the selection before publishing.
This release translates the title, excerpt and manually authored HTML/core block markup of public, unprotected Posts and Pages. It does not translate menus, archives, theme/plugin strings, builder metadata, custom post types, ecommerce data or private/password-protected content. Use a separate translation for each target language.
Pretty permalinks are required for localized routes. An existing Post or Page using a locale root path, such as /fr/, takes precedence; resolve that collision before using that language’s routes. Network activation is unsupported; activate separately on each multisite site.
Saved previews render allowed HTML without executing shortcodes or dynamic blocks, and do not reproduce theme styling. Review source markup and dynamic content carefully before publishing. Excerpts and content can deliberately be empty in drafts; publication requires nonempty translated content. Each field has a technical 1 MiB safety limit.
Canonical integration supports WordPress core and the tested Yoast SEO and Rank Math configurations. Do not enable multiple SEO canonical generators together. The plugin does not provide translated sitemaps, localized slugs, machine translation or automatic language redirects. Translated responses request no caching; configure any full-page cache/CDN to bypass locale-prefixed routes and purge old entries when source visibility or publication changes.
The interface is translation-ready and includes a current translation template. This first release bundles no translated interface locale files; untranslated interface text uses English. The page-content languages you create are separate from interface translations.
For MCP, open Plugins > Add Plugin, search for “MCP Adapter”, choose the plugin by WordPress.org, click Install Now, then Activate. Directory: https://wordpress.org/plugins/mcp-adapter/ . This installs the transport, not an AI client or its authentication. Manual translation and native Abilities do not require the adapter.
On WordPress 6.9+ with the native Abilities API, enable AI/SI assistant translation in Settings and use the picker to select up to 20 public original Posts/Pages. Access is off by default. The connected WordPress user must have edit permission on each selected original; private, password-protected, draft, trashed, unsupported-type and content outside the chosen access scope is denied. The manual editor remains fully functional on WordPress 6.9+ without this integration.
Connect a compatible authenticated client directly to the native Abilities REST API, or install the optional official WordPress MCP Adapter separately and use its client/authentication instructions: https://github.com/WordPress/mcp-adapter . Its default endpoint is /wp-json/mcp/mcp-adapter-default-server. This plugin does not install dependencies, provide an OAuth server or accept Site Manager relay tokens on that separate endpoint. For the verified native authentication path, go to Users > Profile > Application Passwords, enter a client name, click Add Application Password and copy the generated password immediately (it is shown once). In a compatible MCP client, configure HTTP Basic authentication over HTTPS with your WordPress username and that Application Password. It is not a bearer token or OAuth login. Store it privately in your client, never in URLs or prompts, and revoke it from Profile when no longer needed. The plugin does not create or store these credentials.
The assistant discovers vwml/get-translation-context and vwml/save-translation-draft, reads one allowed original/target, translates the returned unit text and saves the exact unit map with its short-lived context token. The server assembles source-owned HTML and saves only a draft. Open the returned review URL, reload any old editor tabs, inspect the preview and publish manually when ready. Existing published translations stay unchanged. Expired, stale, wrong-user/site or revoked contexts fail; reread before retrying.
The lightweight connector path accepts Classic HTML and common static core blocks. It preserves markup, link/image attributes, code, URLs and text containing shortcodes/template placeholders; review these untranslated areas manually. Unknown/dynamic blocks use the manual editor. Technical safety bounds are one original per call, 32 KiB source, 100 text units, 8 KiB per unit and 128 KiB assembled draft. Nothing is silently truncated. There is no in-admin AI-provider Translate button, scheduled AI job or remote publication ability.
Prompts can name an original URL, slug/page path, exact title or ID. The read ability accepts exactly one selector plus the target locale, with optional post_type (post or page). Lookup stays within approved content; duplicate matches require a URL/ID or clarification. It never fetches a supplied URL or grants new access. Returned source identity lets the assistant confirm its match.
Author-wide connector access is optional and off by default. It replaces the selected-ID list and allows only public, unprotected Posts/Pages authored by the authenticated WordPress account (including future content). Test selected originals first. Abilities resolve one allowed original and save private drafts only. Use Review translations to find drafts awaiting publication or check published versions by publication date. AI/SI labels mean artificial intelligence / super intelligence and do not certify any client capability.
The plugin stores configured languages, translation drafts/public snapshots, revisions with editor user IDs and timestamps, and a bounded local administration activity history. It makes no external service requests, records no visitor metrics, and sets no tracking cookies. Optional AI/SI assistants can request allowed source text only after administrator opt-in and WordPress authorization; their processing is covered by their own service policies. Export is administrator-only and checks edit permission on each source; credentials and visitor data are excluded.
If upgrading an earlier development build, existing provider credentials and legacy operational tables are retained but unused. They are never contacted or included in translation exports. The explicitly confirmed uninstall deletion option removes both current and legacy plugin data. Keep sensitive server configuration outside the plugin folder.
The plugin makes no external service requests itself. The optional official MCP Adapter operates on your WordPress site and is documented at https://github.com/WordPress/mcp-adapter . When you request translation through a connected assistant, allowed original text is returned to that client; its configured AI provider may process the text and charge for it. The client/provider is chosen and configured by you, not selected or contacted by this plugin. Review that service’s processing, privacy policy, terms and costs before connecting; disabling access stops subsequent translator ability calls. The plugin does not collect or store their keys, register an account, send telemetry or share visitor data.