A practical, debt-aware way to add localization checks to pull requests — without blocking adoption on every existing hardcoded string.
The naive localization gate is simple: scan the repository and fail if any untranslated string exists. It's also the fastest way to make a team disable the check.
Real codebases already have localization debt. A useful pull-request check answers a narrower question first: did this change make things worse? Answer that well and you can adopt the check today — and get stricter whenever you're ready.
A differential check compares your PR against its base and sorts findings into three buckets:
Existing debt stays visible, but it isn't the author's problem on every unrelated PR. New strings are.
With Polyglot, the open GitHub Action runs this on any plan, from a workflow your repo owns:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: polyglot-i18n/polyglot-action@v1
with:
check-mode: differential
That's the whole setup. No API key required — the Action runs in guest mode.
Don't make an unfamiliar signal a required check on day one. A rollout that sticks looks like this:
Nobody's merge gets blocked until you decide it should.
Polyglot Automation — in early access for Team and Scale — picks up where the check leaves off. When new strings land, it keeps your catalogs in sync, generates translations, and holds them for human review. Once someone approves, Polyglot verifies the change against a pristine base — your own checks have to pass on both — and opens a catalog-only pull request.
A few design decisions worth knowing before you install anything:
Generated translations aren't approved changes. Review is on by default: someone sees the source string, the context, and the exact diff before anything ships. If verification fails on the candidate, the PR doesn't open.
That's the whole idea. The check stops regressions where they start, and translations ship the way the rest of your code does — as a pull request someone reviewed.
Add the open Action today. The rest is there when your team wants it.
Start in your terminal
Install the CLI, run a scan, and see exactly what you're missing. Free, no account required.