Features
Everything below follows from one decision: Dialecto patches your translations and their call sites surgically, and touches nothing else. Here's what that unlocks — in the order it matters.
Domain-driven editing
Your translations are organized by domain — checkout, onboarding, emails — not one endless list. Browse, search, and edit a domain at a time, with the structure carrying the meaning. And it's full structural editing on your own files: reorder, rename, move strings between domains, add and delete — all of it landing as a clean diff, never a rewrite.
Surgical access — never your whole codebase
The scan sends only your translation files and the small usage snippets we need to be precise. A thin slice, never your whole repo. We take exactly what we need and not a stroke more — you keep the rest. That makes Dialecto the only vendor that doesn't ask you to hand over your codebase. EU-sovereign, with a local-model option, and self-hostable if you want it fully in your hands.
A faster way to edit
A real editor built for translating. Move through strings fast, see where each one is used without leaving your seat, and work in bulk when bulk is what's needed — find and replace, assign, approve. Every operation still produces a minimal diff and still goes through review. Fast, with a paper trail.
Validated before it ships
Nothing sloppy gets through. The completeness merge gate fails a pull request on strings it newly leaves untranslated — configurable per repo, with a "Fix in Dialecto" link straight to the offending strings. Placeholder parity, plural forms, glossary terms, and stale-base detection are checked on every change, and a human reviews every change besides. On top of that sits an advisory AI quality check that scores the translations a pull request adds or changes — it informs your review; blocking is your call to opt into.
AI with curated context
Bring your own AI or use ours — Dialecto is model-agnostic by design. What we own is the grounding: your domain, where each string appears, your brand voice (Dialecto drafts it with you from your own material), your audience personas — tone, formality, market — plus glossary and translation memory. The model sees exactly enough, never a firehose. And whatever it drafts is review-gated: autofill is a per-repo choice, and everything still lands through the pull-request flow.
The rest of the arsenal
-
Clean, minimal-diff pull requests
The engine never regenerates your files. It's byte-faithful across every gettext construct — wrapping, plurals, obsolete entries, every kind of comment, even the blank lines. One change, one line of diff. Your reviewers will notice.
-
Source call-site rewrite on rename
Rename a key and Dialecto rewrites the places your code calls it — in the same pull request. (The rewrite is computed in-product and applied by a CI action in your repo, so the change happens on your side of the fence.)
-
Collaboration, with a real review lifecycle
Organizations, teams, roles. Assign, submit, review, approve, batch, ship. Per-entry comments, an activity log, revision history with one-click revert, and notifications in-app and by email.
-
Branch-aware, start to finish
Scans understand branches, pull requests target them, and each branch gets its own editable overlay — so a feature branch localizes like a feature branch.
-
GitHub App
Fine-grained permissions, and commits attributed to the app. No personal tokens doing mystery work.
-
MCP server
Drive Dialecto from your editor or your agent over the Model Context Protocol — the same surgical context and the same editing operations, authenticated per user with an API token.
How it compares
Translation "platforms" own your strings and regenerate your files. The AI-native command-line tools regenerate them too — just faster. We tested their actual published file-loaders on valid gettext files: one collapsed a 104-line file to 23 broken lines and emptied the plural translations; another changed a live translation on a round trip that should have changed nothing. (We keep the receipts.)
| Dimension | Translation "platforms" | AI-native CLIs | Dialecto |
|---|---|---|---|
| What it asks for | Your strings, uploaded into their store | Your repo, with write access | A surgical slice: translation files + the usage snippets we need |
| Where your strings live | Their database | Your repo — regenerated on every run | Your repo, untouched except for the changes you made |
| What a change looks like | A regenerated file | A regenerated file, force-pushed | A one-line-per-change diff; comments and order preserved |
| How strings are organized | Flat lists, tags if you're lucky | Whatever the file had | Domains, first-class |
| Before anything merges | Varies | Autofill races ahead | Merge gate, validation checks, human review |
| Renames fix your code too | No | No | Yes — call-site rewrite, same pull request |