Skip to content

Translator + Reviewer Workflow

Comvi supports a clean two-stage flow: translators write, reviewers approve, and your production CDN includes only Translated values. This recipe walks through configuring roles, filters, and publish settings so the workflow runs without babysitting.

Every translation moves through three statuses (see Translation Lifecycle):

  1. Not translated — empty
  2. Not reviewed — a translator or MT filled it, waiting for approval
  3. Translated — a reviewer approved it

Configure the production CDN status filter to include only Translated. Not reviewed drafts won’t leak into production unless you include them in that filter.

  • You use freelance translators and keep final approval in-house
  • You have internal translators plus a senior linguist who reviews their work
  • You want a clear “ready to ship” boundary before publish

If you trust contributors to publish directly, skip this recipe — the split only adds friction.

  1. Invite translators with the Translator role

    Translator can edit values but cannot set a value to Translated. Any edit they make lands as Not reviewed. See Team Management.

  2. Invite reviewers with the Editor role

    Editor can approve — their edits can land as Translated directly, and they can flip existing Not reviewed values to Translated.

  3. Restrict translators to specific languages (optional)

    If you have one translator per language, set their language restrictions in the member settings. A German translator sees only de columns. This prevents accidental edits to wrong locales and keeps the reviewer queue focused.

  4. Set the CDN status filter to Translated

    Settings → Content Deploy. Select only Translated in the publish status filter. Drafts won’t deploy.

  5. Enable notifications (optional)

    Connect a webhook on translation.updated events so reviewers are pinged in Slack or email when new drafts land. See Webhooks.

Translator:

  1. Open the Translations page, filter by their language + Not translated status.
  2. Work down the list. Use MT / TM suggestions in the side panel when helpful.
  3. Every saved value becomes Not reviewed.

Reviewer:

  1. Filter by their language + Not reviewed.
  2. Approve in place: open the cell, confirm or edit, set to Translated.
  3. For bulk approval of clean MT output, select the rows and use the bulk status action.

Result: The Translated count per language is the publishable surface. The CDN auto-deploys once the debounce window closes (see CDN Deployment).

A common pattern: translator (or project admin) runs bulk MT to pre-fill drafts, then reviewers go row-by-row.

  1. Select untranslated keys — filter by language + Not translated, then select all.
  2. Bulk translate — choose a provider, run. Every MT output lands as Not reviewed by design, never Translated (see Machine Translation).
  3. Reviewer flips through — use keyboard navigation (Tab / Enter), approve or correct.

This compresses a large translation project from weeks of typing to days of review.

When a reviewer (or anyone) edits a Translated value, it drops back to Not reviewed automatically. The value disappears from the CDN on the next deploy until re-approved. This is the intended guardrail — every change after approval gets a second pair of eyes.

  • Don’t give translators Editor role “just to unblock them”. You lose the review boundary. If a translator is trusted enough to approve, make them an Editor explicitly.
  • Don’t filter the CDN to include Not reviewed. Drafts will ship.
  • Don’t use the Viewer role for reviewers. Viewer is read-only — reviewers need edit access to approve.