Translation Workflow
PerfLocale’s optional Workflow layer turns translations into trackable assignments with owners, priorities, deadlines, email notifications, and an approval gate. It’s off by default - single-admin sites don’t need it. Turn it on at Settings → Translation → Workflow once you have more than one person writing or reviewing translations.
Workflow statuses
When Workflow is enabled, every translation picks up a workflow status alongside its WordPress post_status:
- Unassigned - no translator picked yet. Default for newly-created translations.
- In Progress - a translator has been assigned and is working.
- Review - translator marked it done; awaiting an editor / manager’s sign-off.
- Approved - reviewer accepted. Ready to publish.
- Published - live on the site. Terminal state.
- Rejected - reviewer sent it back. Translator picks up again.
Assignments admin page
PerfLocale → Assignments is the team’s shared queue. Every assignment row shows: Content, Language, Status, Priority (Urgent / High / Normal / Low), Assignee, and Deadline. Filter the queue by status + assignee; sort by Status, Priority, or Deadline; search by title; paginate.
Translators only see assignments they’re on; managers see everything. Each translator also gets a personal queue via the admin bar shortcut.
Assigning work
From any translation’s edit screen, the PerfLocale sidebar has a Workflow panel. Fields:
- Assignee - a WP user with the
perflocale_translatecapability (granted by default to the custom Translator role; see Permissions & Roles). - Priority - Normal by default; raise for time-sensitive content.
- Deadline - date-only; surfaces in the sorted queue.
- Notes - optional free-text for the translator.
Email notifications
When an assignment is created, re-assigned, or its status changes, PerfLocale can send an email to the affected user(s). Toggle at Settings → Translation → Workflow → Email notifications. Subject + body are templated with placeholders ({post_title}, {language}, {deadline}, etc.) that you can customise. Falls back to wp_mail() by default; route through SMTP via any standard SMTP plugin.
Publish gate
Optional: require status = Approved before a translation can be Published. Enable Settings → Translation → Workflow → Require approval before publish. When on, saving a translation as Published is blocked with an admin notice if Workflow status isn’t yet Approved. Useful for regulated industries.
Related
- Permissions & Roles - the Translator role + capability map.
- Content Translation - the underlying translation model.
- Hooks Reference - workflow events you can extend (
perflocale/workflow/status_changed, etc.).