WPMMCC ATS Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
WPMMCC ATS is a multilingual content translation manager for WordPress. It scans your installed plugins to discover translatable fields, builds translation rules, and provides a manual translation editor in the WordPress admin.
All features are free and fully functional. No license key, trial period, or payment is required to use any feature of this plugin.
Project links
- Project website: https://www.wpmm.cc/
- Documentation and usage help (English / 简体中文): https://www.wpmm.cc/docs/
- This plugin on WordPress.org: https://wordpress.org/plugins/wpmmcc-ats/
- Plugin source code: https://github.com/wpmmcc/wpmmcc-ats
- Optional companion translation client: https://github.com/wpmmcc/wptsall-client
Key Features
- Automatic Field Discovery — Scans WordPress post types, taxonomies, custom fields, and third-party plugin data (WooCommerce, Elementor, Yoast SEO, ACF, and more) to find all translatable content.
- Translation Rule Engine — Classifies fields into translate, sync, ID-mapping, compute, and skip categories automatically.
- Manual Translation Editor — Two-panel editor in wp-admin: source content on the left, translation input on the right.
- Site relations — Link a source language to a target language. A virtual site gets its own URL prefix (for example
/en_us/). A network subsite can be the target as well. - Translation Memory — Remembers previous translations to suggest matches for repeated content.
- Gettext/String Translation — Translates plugin and theme UI strings via the gettext filter.
- Client API — Optional. An administrator can let the separate WPTSALL Client call this site, collect source text, and write translations back. This plugin does not call a translation vendor.
Optional: Standalone Translation Client
This plugin can expose a REST API on your own WordPress site so an optional standalone translation client (a separate program you install) can pull work and push translations back. The plugin does not call www.wpmm.cc or any other remote host for this flow. Communication is only between the client and your site.
- Client download and documentation: usage help at https://www.wpmm.cc/docs/, source code at https://github.com/wpmmcc/wptsall-client, signed installers and kits at https://github.com/wpmmcc/wptsall-client-releases
- Linux/macOS: install script — review it, then run:
bash install.sh(WebUI) or follow Desktop install notes in the same repository - Windows: installation guide
- Linux/macOS: install script — review it, then run:
- The client’s local web UI listens on 127.0.0.1:8977 by default (loopback only, on the machine where you run the client). The Desktop app listens on 127.0.0.1:8978 and stays on this computer. Port 8977 is unregistered and uncommon, so conflicts are rare; if another program has taken it, the WPTSALL_WEB_UI_PORT environment variable selects a different port for the web UI.
The client is NOT required. All plugin features work for manual translation without it.
External services
This plugin does not contact www.wpmm.cc, wpmm.cc, or any other third-party remote server by itself. There is no hard-coded outbound HTTP request from the plugin to WPMMCC servers (language packs, license checks, telemetry, or similar).
The only optional network communication is between your WordPress site and an optional third-party program (the standalone translation client) that you install and run. In that case the client calls REST endpoints hosted on your site; the plugin only answers those requests. The plugin never initiates a connection to the client or to www.wpmm.cc.
Optional translation client (third-party program)
What it is and what it is used for:
An optional self-hosted client can automate translation. When you enable the Client API in plugin settings and configure the client with your site URL, route secret, and client token, the client uses WordPress REST API routes under:
/wp-json/wptsall/v2/{route_secret}/client/...
{route_secret} is a site-generated path segment that obscures the client routes. All client routes require the header `X-WPTSALL-Client-Token` (token generated in wp-admin). Optional headers used by some routes: `X-WPTSALL-Protocol-Version`, `X-Client-Version`, `Idempotency-Key`, and (media upload only) media metadata headers listed below.
Communication happens only when:
1. An administrator enables the Client API and has a client token, AND
2. The optional client is running and configured to call this WordPress site.
What is not done by this plugin:
* No requests to www.wpmm.cc / wpmm.cc.
* No download of language packs from any remote host.
* No transmission of site content to WPMMCC or any translation service.
* This plugin does not call Google, DeepL, OpenAI, or any other translation API. If you configure such a provider in the optional client, that program sends the claimed source text to the endpoint you chose, with the API key you stored in the client. The provider’s own terms of service and privacy policy apply to that request. This plugin does not store that API key.
Terms of use / privacy for the optional client product distribution and related documentation (not used as an outbound API by the plugin):
* Terms of Service: https://www.wpmm.cc/terms
* Privacy Policy: https://www.wpmm.cc/privacy
Client REST API: data sent and received
Base path: /wp-json/wptsall/v2/{route_secret}/client
Auth on every route below (unless noted): request header X-WPTSALL-Client-Token (and standard WordPress REST request metadata such as User-Agent / Accept).
-
GET
/ping- Client sends: auth header only.
- Plugin responds: JSON
{ success, data: { plugin_version, encryption_supported, sync_execution_mode, local_executor_enabled } }.
-
GET
/validate-token- Client sends: auth header only.
- Plugin responds: JSON
{ success, data: { site_url, site_domain, plugin_version, site_status, max_relations, token_status, encryption_supported, active_relations_count, sync_execution_mode, wordpress_version } }.
-
GET
/site-relations- Client sends: auth header only.
- Plugin responds: JSON list of active site relations, including relation id, source/target site ids, source/target languages, status, linked models (model id, plugin slug/name, post types, taxonomies), and i18n-related relation config flags used for discovery.
-
GET
/rules- Client sends: auth header; query args
relation_idand/ormodel_id(at least one required); optional headerX-Client-Version. - Plugin responds: JSON translation rules for the models (field keys, translate/map/skip capabilities, related taxonomies, content_format where applicable), or an error if the client version is unsupported / relation inactive.
- Client sends: auth header; query args
-
GET
/content- Client sends: auth header; query args
relation_id(required),data_type(post|term|language_pack|option),subtype,include_resync,page,per_page, optionalinclude_ids(comma-separated object ids). - Plugin responds: JSON page of items needing translation. Each item typically includes object type/id, subtype, and
complete_data(source post/term field values, or language-pack entry fields such as msgid/msgctxt/reference/text_domain, depending on data_type), plus totals/pagination.
- Client sends: auth header; query args
-
POST
/content/claim- Client sends: auth header; JSON body
{ relation_id, data_type, items: [ { object_id, post_type|taxonomy|subtype, ... } ] }(for language packs, items identify entry ids). - Plugin responds: JSON
{ success, claimed_count, claimed_items }(or error). Marks items claimed so other workers avoid double work.
- Client sends: auth header; JSON body
-
POST
/translation-callback- Client sends: auth header; optional
Idempotency-Key; JSON body including at least:- Common:
client_task_id,relation_id,business_line(e.g. post_content, taxonomy_content, custom_model, theme_i18n, plugin_i18n). - Content lines:
object_type,object_id,source_lang,target_lang,translated_fields,translated_meta, optionalmedia_mappings. - i18n lines:
entriesarray of{ entry_id, msgstr }(and related entry fields as provided by the client).
- Common:
- Plugin responds: JSON success/error, including idempotent replay when the same client_task_id or Idempotency-Key was already processed; may include result id / counts. On success, translated values are stored in WordPress (posts/terms/meta/template entries) and sync write-back may run according to site settings.
- Client sends: auth header; optional
-
POST
/media-upload- Client sends: auth header; headers
X-WPTSALL-Filename(required), optionalX-WPTSALL-Task-ID,X-WPTSALL-Source-ID,X-WPTSALL-Relation-ID; raw binary body of the media file (allowed media MIME types only; executable/script types rejected). - Plugin responds: JSON success with new attachment id / mapping info, or an error. Creates a WordPress media attachment on this site and may record a media mapping for later URL rewrite.
- Client sends: auth header; headers
-
GET
/tasks- Client sends: auth header; query args
status(pending|retry),limit. - Plugin responds: JSON list of claimable task records for the client worker (task id, type/business context, language pair, payload/meta needed to perform the task, lease/claim fields). Claiming updates task status on the site.
- Client sends: auth header; query args
Summary of direction
- Client Plugin (this WordPress site): authentication token; discovery query parameters; claim bodies; translation results; media binaries.
- Plugin Client: only HTTP responses to those requests (site/relation metadata, rules, source content to translate, task queue data, success/error). The plugin does not push data to the client unsolicited and does not call www.wpmm.cc.
Privacy Policy
This plugin does not collect or store personal user data on external servers. All plugin data stays in your WordPress database on your hosting.
This plugin does not contact www.wpmm.cc. It does not download language packs from external servers.
If you use the optional translation client, that program talks only to your WordPress site via the Client API above. Any call from the client to a third-party translation provider is configured by you in the client, not by this plugin.
Optional product documentation links (for the separate client distribution, not plugin outbound APIs):
* Terms of Service: https://www.wpmm.cc/terms
* Privacy Policy: https://www.wpmm.cc/privacy
Credits
This plugin bundles no third-party libraries. It is plain PHP built on WordPress core APIs (REST, WPDB/dbDelta, cron, gettext), and its admin pages use vanilla JavaScript plus jQuery as shipped with WordPress core.
Interface translations use the WordPress.org translation system (translate.wordpress.org, GlotPress).
For field discovery the plugin reads data from third-party content plugins — WooCommerce, Elementor, ACF, Yoast SEO and more. Those projects are not bundled or modified. The plugin coexists with the multilingual plugins WPML and Polylang; no code from either project is used.
Screenshots
No screenshots provided

