Soft launch Dialecto is still in testing, and details on this site may change as we finish it.

The merge gate

Dialecto publishes up to two GitHub checks on a pull request: Dialecto/translations (completeness — is it translated?) and Dialecto/quality (an advisory quality score — is the translation good?). Both are configured per repo in your Dialecto repo settings — there is no config file to commit.

The completeness check: Dialecto/translations

The check asks whether the pull request leaves strings untranslated in your required locales and reports success, failure, or neutral on the PR’s head commit. To make it actually block a merge, add it as a required status check in the branch’s protection rules on GitHub — that step is GitHub’s, not Dialecto’s.

Scope: what counts against you

  • incremental (the default) — only gaps this pull request newly introduces fail the check. Pre-existing gaps on the base branch are subtracted, so adopting Dialecto on a half-translated catalog doesn’t turn every PR red. The delta needs the PR’s head branch to have been scanned; a PR whose branch hasn’t been scanned falls back to the current base catalog.
  • whole_catalog — the strict tier: the check fails while the repo’s required-locale coverage has any gap at all, regardless of who introduced it.

Fuzzy translations

Entries marked fuzzy sit between translated and missing. The gate_fuzzy setting decides how they count: warn (reported, doesn’t block) or block (counted as missing).

Fixing a failure

The check’s details link takes the PR author straight to the affected strings in Dialecto’s editor — translate them, ship the follow-up pull request, and the check re-publishes.

The quality check: Dialecto/quality

Where the completeness gate counts, the quality check reads: it scores only the translations a pull request introduces or changes in the locales you select. Three modes, set per repo:

  • off (the default) — never runs.
  • warn (advisory) — findings are published, the check concludes neutral, and nothing blocks. This is the mode we recommend starting in.
  • block — findings at or above your chosen blocking severity (major or critical) fail the check.

Each scored segment runs free deterministic pre-checks first (placeholders, plural shape, glossary terms); the model-based evaluation only runs when those pass, and if the evaluator is unavailable the deterministic findings stand alone. The evaluation model is a per-repo choice and runs local-first — see Translation aids for the model setup and Context & personas for how the score is grounded in your brand voice.

Settings reference

SettingValuesDefault
Required localesany of the repo’s localesnone (gate inactive)
Gate scopeincremental · whole_catalogincremental
Fuzzy handlingwarn · blockwarn
Quality checkoff · warn · blockoff
Quality blocking severitymajor · criticalcritical
Quality localesany of the repo’s localesnone

All of it lives in Repo → Settings in Dialecto and applies from the next check run.