check-links –fix now runs automatically after import and translate (opt out with –no-fix-links)
New wp polyglot doctor — one-screen health-check: locale config, master/shadow drift (orphans, status parity), hreflang uniqueness, exchange-rate coverage/freshness, and per-locale feed endpoints (–quick to skip HTTP). –format=json, non-zero exit on failure.
New wp polyglot lint — translation QA per master/shadow: names the exact links a shadow is missing (resolving localized slugs) or has in excess, plus missing shortcodes/placeholders (fail), image/heading/length drift, residual French and stale src_hash (warn). Grouped table view; –format=json carries the missing/extra lists per finding. –locale to scope.
Admin: the translations metabox is now a cross-locale switcher shown on shadow edit screens too (jump to the master or any sibling locale in one click); the language-column badge links to the master.
2.2.0
Flat-file write API: wp polyglot write (stdin → JSON) applies one flat file to the DB under an optimistic lock (etag compare-and-swap)
Frontmatter flat format (YAML-ish front matter + HTML body) replaces the TSV — one file per locale per entity
Terms (taxonomy) adopt the same model: term-{taxonomy}-{id}/{locale}.html, body = description
import is now flat-driven and etag-locked (–force to override); translate –payload gains –if-match