Git-style branches for i18n
Translations that follow your feature branches.
Every branch gets its own translations. Your CI pushes new keys the moment you write them, translators work without stepping on each other, and merging brings across only what changed.
Free tier, no card Nested JSON · flat JSON · ARB · XLIFF GitLab · GitHub · Gitea
$ mergua sync --branch checkout-redesign
↑ 12 new keys pushed to checkout-redesign
↓ nothing to pull yet — 0 of 12 translated
- checkout.pay.label
- Jetzt bezahlen
- checkout.pay.spinner
- Wird verarbeitet…
- checkout.pay.error
Translate with AI
# branch merged — the build pulls what shipped
$ mergua pull
Branches
Your translations live on the same branch your code does.
Every other tool gives you one shared pool of keys. Rename a key on a feature branch and someone else's build breaks, so the safe move is to stop translating until the merge lands. Mergua branches instead — isolate, translate, merge, exactly like git.
A graph of the branch checkout-redesign leaving the main branch, gaining 12 keys, then translations in de, fr, es, then a review, before merging back into main.
01
Isolate
Branch off
mainand add the keys your feature needs. Nothing you do there reaches anyone else's build.02
Translate
Translators see the branch's keys, not the thousands already shipped. Reviewers approve before anything can merge.
03
Merge
See the diff before you commit to it. Merge, and the sync script pulls the new locales into your next build.
In the product
Three ways to look at a locale.
Panel view
Source and target side by side, one key at a time, keyboard-driven.
Branch diff
Added, changed and removed keys, before you merge them into main.

AI translate a locale
One click, whole locale. Neighbouring keys go in as context.
Features
And everything else your team needs.
Translation editor
Panel, inline and table view. The source text stays on screen in all three, status shows per key, and the shortcuts keep your hands on the keyboard.
AI translation
One key or a whole locale. Mergua sends the keys around it as context, so "Open" on a button and "Open" in a status do not come back the same. Output lands unreviewed until a human signs it off.
Multiple JSON files per language
common.json, errors.json, one per area — the split Transloco, i18next and vue-i18n already expect. The files go in as they are, one editor works across all of them, and they come back in the same shape.
XLIFF handoff
A language goes out to a translation agency as one .xlf document and comes back as the same one, statuses and notes intact. Your repository keeps its JSON — the handoff never touches what your build loads.
Webhooks
Your pipeline pulls; this is Mergua pushing. One POST to a URL of yours when translations change or a branch is merged, so the build starts on the change instead of on a schedule. Signed, filtered to the branch you name — and an import of four hundred keys arrives as one call, not four hundred.
What arrives, and whenTeam & review
Invite a freelance translator without handing them the project. Roles that actually restrict, approve or reject per key, and comments on the key they are about.
CLI & REST API
One script in your pipeline pushes new keys and pulls finished ones. Project-scoped keys, branch-aware, nested or flat JSON.
Setup guideProgress & validation
Completion per locale at a glance. A missing {count} is caught on the way out, not in a runtime error, and every change is in the history.
Developer-first
One line in your pipeline.
The sync script reads the locale files already in your repo, pushes keys Mergua has not seen, writes finished translations back, and notices when a branch was merged — on the branch the pipeline is running.
Read the CLI reference# once, in CI
$ curl -sSL api.mergua.com/v1/mergua.sh | sh
# or pull a single locale by hand
$ curl -H "X-API-Key: $MERGUA_KEY"
api.mergua.com/v1/$PROJECT/translations/de?branch=checkout-redesign
- Which frameworks does Mergua support?
- Mergua works with any SPA that uses JSON-based translation files. It has first-class support for Angular with Transloco, but works equally well with React (i18next, react-intl), Vue (vue-i18n), and other frameworks.
- Do I need to install anything?
- No. Mergua is a web application — just sign up and start managing translations in your browser. For CI/CD integration, you only need curl to pull translations in your pipeline.
- Do Mergua branches sync with my Git branches?
- When you use Pipeline Sync, Mergua can automatically match your Git branch to a Mergua branch with the same name. This way, each feature branch gets the right translations during CI builds.
- What happens when I merge a branch?
- Merging applies all translation changes from the branch to main. If there are conflicts (the same key was changed on both sides), Mergua shows a diff so you can resolve them before merging.
Pricing
Start on the free tier. Grow when the keys do.
What changes between plans is how much of the workflow you get, not which product you get. Every plan reads and writes the same files.
Free
One project, a small team, and the editor in full. Enough to translate a real app before you decide anything.
Paid plans
Branches Branches and merge diffs API access and the sync script Review workflow A monthly AI translation allowance
The numbers
Seats, projects, keys, locales and the AI allowance per plan — with the current prices.
See pricing
Put your next feature branch in three languages.
Free tier, no credit card, and the sync script is one curl away.
Create your account