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 concludesneutral, and nothing blocks. This is the mode we recommend starting in.block— findings at or above your chosen blocking severity (majororcritical) 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
| Setting | Values | Default |
|---|---|---|
| Required locales | any of the repo’s locales | none (gate inactive) |
| Gate scope | incremental · whole_catalog | incremental |
| Fuzzy handling | warn · block | warn |
| Quality check | off · warn · block | off |
| Quality blocking severity | major · critical | critical |
| Quality locales | any of the repo’s locales | none |
All of it lives in Repo → Settings in Dialecto and applies from the next check run.