One workflow. Every language on the same sprint.
Tonguesage sits between your repo and your translators: so the moment code changes, localization moves too.
From commit to localized release in one automated flow
Repo commit triggers Tonguesage
On every push, Tonguesage receives a webhook. It extracts string keys from any locale file format: JSON, YAML, PO, XLIFF, ARB.
Change diffing, not file diffing
Tonguesage computes a diff at the string level: not the file level. Changed keys, new keys, deleted keys. Only what actually moved.
Locale merge on approval
Translator approves in the diff view. Tonguesage writes the translated value back to the locale file and opens a PR or commits directly to the branch.
Precise change detection at the string level
When a developer updates a string, Tonguesage sees exactly which key changed, what the old value was, and what it became. It never re-queues strings that haven't changed: no translator busy-work.
Supports nested key paths, pluralization rules, and ICU message format out of the box.
# en.json, commit abc123f
{
"checkout.confirm": "Confirm order",
"checkout.confirm": "Confirm & pay",
"cart.empty_state": "Your cart is empty",
"shipping.estimate": "Est. 3-5 days"
}
# Tonguesage detected: 1 changed key
# checkout.confirm → queued for DE, FR, JA
Sub-second routing from commit to translator queue
The moment a push arrives, Tonguesage routes changed strings to the right translator. No polling, no cron jobs, no manual export step.
Translation memory deduplication runs automatically: if Tonguesage has seen a string before across any of your connected repos, it matches it before queuing a new translation job.
Translators see diffs, not dumps
The translator diff view shows only what changed: the string key, the source value, the previous translation, and an edit field for the new translation. No scrolling through 2,000-line CSV exports.
Context metadata (which page, which component, adjacent strings) is surfaced inline to improve translation quality without back-and-forth emails.
See it in action in five minutes.
Connect your first repo and watch the sync run.