A model gets most strings right. A native reader still spots the ones it got wrong. With suggestions, that reader fixes the wording on your site, you review it in Coroid, and the change reaches your repository as a normal pull request.
This is how Coroid maintains its own product in thirteen languages. The steps below assume the project is internationalised, as described in Internationalise a project. Everything here lives in the project's workbench under Localisation.
Enable contributions
Contributions need two things in .coroid/i18n.json: the project's suggestion
binding and an engine version that supports them. The Internationalisation
wizard adds both by default.
For a project set up without them, open Contributors and choose Propose enabling contributions. Coroid opens a task that adds both, and you merge its pull request. Until then, Contributors explains what is missing.
Invite contributors
Choose Invite contributor, enter an email address and the languages they can translate.
- Review. Keep Review suggestions before applying on for new contributors. With it off, a suggestion is approved at once, but only when its source text matches your synced repository.
- No seat. A contributor is not added to your organisation and does not use a member seat. Access covers only this project and the chosen languages.
- A Coroid account. The person accepts within seven days by signing in to Coroid with the invited address, or by creating a free account with it from the invitation. That account has a workspace of its own, not a place in yours.
Revoking access stops new suggestions and keeps the person's history.
The picker on your site
Contributors suggest from your site, where they see the text in context.
- Under Settings → Access and spend → Site origins, add each site address, one HTTPS origin per line, and enable it. New origins stay off until an owner or admin enables them.
- In Contributors, choose Prepare site integration task. The
task adds Coroid's picker package to your site. It loads only when the page
address contains
?coroid-translate=1, so ordinary visitors download nothing. - A contributor opens your site with that parameter, clicks a string, and the Coroid popup opens with the key, the source and the current translation.
Kostenloser Versand ab 50 € und 30 Tage Rückgabe.
Bestellung prüfen- Key
- ui · cart.checkout
- English source
- Proceed to checkout
- Current translation
- Weiter zur Kasse gehen
Keep the parts in braces and angle brackets exactly as they are.
A customer site in translation mode: the contributor clicks a heading and suggests a better German wording in the Coroid popup. Illustrative data.
The popup checks placeholders before sending. Contributors sign in to Coroid in the popup; your site never handles their credentials. Anonymous suggestions are not accepted.
Review
Suggestions lists every suggestion with its key, language, source, the current translation and the proposed one. Filter by status or language, then approve or reject each one. You can also reject several at once.
- World readinessCode that assumes one language
- CultureWhat each market expects
- OverviewWhere each language stands
- StringsEvery string in every language
- SuggestionsWaiting for a decision
- ExchangeFiles for other tools
- ContributorsWho may suggest wording
- AutomationsNightly and on-merge work
- SettingsLanguages, access and spend
cart.checkoutdeLena · German- en
- Proceed to checkout
- de
- Weiter zur Kasse gehen
- de
- Zur Kasse
ApproveRejectproduct.inStockfrHugo · French- en
- In stock
- fr
- En stock
- fr
- Disponible
ApproveRejectnav.dealsdeLena · GermanThe submitted source differs from the synced repository.
- en
- Weekly deals
- de
- Angebote
- de
- Angebote der Woche
ApproveReject
Suggestions in the workbench: corrections waiting for a decision, checked against the synced source. Illustrative data.
Coroid compares each suggestion's source with your synced default branch. If the source changed after the contributor saw it, approval is off and the row says so; reject it and the contributor can suggest again.
| Status | Meaning |
|---|---|
| Needs review | Waiting for a reviewer |
| Approved | Ready for the next correction task |
| Queued | A correction task is applying it |
| Applied | Written in a pull request; live once that merges and deploys |
| Source changed | The source text changed before it was applied |
| Invalid | It failed the engine's checks, for example a broken placeholder |
| Rejected | A reviewer turned it down |
Apply approved suggestions
There are two ways to turn approved suggestions into a pull request. Both use
the same correction task: it runs the pinned engine's apply-claim command,
checks each source again, writes only target catalogues, and reports what was
applied, what went stale and what was invalid.
- Now. In Suggestions, choose Prepare correction task, or Commit under Strings. One task takes up to 500 approved suggestions across the project, together with changes made in the workbench.
- Every night. The wizard installs nightly corrections by default; otherwise choose Install nightly corrections in Automations. The schedule runs at 02:00 UTC, makes no model call, and files a task only when something is approved. Pause or resume it from the schedule in the Factory.
Strings merged outside Coroid
People also change strings in pull requests Coroid did not write. The wizard
installs Translate strings merged outside Coroid by default; otherwise
install it in Automations. When such a pull request merges into your
default branch, Coroid reads the
Globalisation check it already ran on the pull request. If strings were left
missing or stale, it files one translation task for that merge. The task
translates only the strings that pull request added or changed (with
coroid-i18n 1.19.0 or later), so merges translated at the same time never
touch each other's strings, and it opens a pull request with them. If the check
blocked text or sentences in the code, it also files a task to internationalise
that code. If nothing is left to do, nothing happens. Strings a task leaves
behind wait for Translate the backlog nightly, installed in the same place:
each night it reads your default branch and files one task for whatever still
waits, and nothing when nothing does.
This needs the Globalisation check on pull requests and the Review every PR automation, so the check runs before the merge.
Moving settings to another organisation
Settings export and import carry the nightly schedule and the merged-strings automation. They arrive paused on the destination project, site origins arrive disabled, and contributors are not copied: invite them again in the new organisation.