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
CI · .gitlab-ci.yml

$ curl -sf https://api.mergua.com/v1/mergua.sh | sh -s -- sync

↑ 12 new keys pushed to checkout-redesign

↓ nothing to pull yet — 0 of 12 translated

checkout-redesignde · 9 / 12MK
checkout.pay.label
Jetzt bezahlen
checkout.pay.spinner
Wird verarbeitet…
checkout.pay.error
Translate with AI

# branch merged — the build pulls what shipped

$ curl -sf https://api.mergua.com/v1/mergua.sh | sh -s -- pull

de, fr, es → src/assets/i18n

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.

  1. 01

    Isolate

    Branch off main and add the keys your feature needs. Nothing you do there reaches anyone else's build.

  2. 02

    Translate

    Translators see the branch's keys, not the thousands already shipped. Reviewers approve before anything can merge.

  3. 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.

The same keys in three views, because reviewing 400 strings and writing one careful sentence are not the same job. Switch whenever you like; the source stays on screen in all three.

Read the docs

Panel

One key at a time, its note and placeholder check beside it. For the string you have to think about.

Inline

Every key under the next, the source beside the field. For writing a whole screen in one pass, and the editor on a phone.

Table

Every language side by side, one row per key. For bulk work across locales.

Features

And everything else your team needs.

All features

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.

check compares the keys your code uses with the ones Mergua holds — with --strict, a key the code uses and Mergua lacks fails the build; unused keys are only reported.

Terminal

# once, in CI

$ curl -sf https://api.mergua.com/v1/mergua.sh | sh -s -- sync

# and fail the build on a key Mergua is missing

$ curl -sf https://api.mergua.com/v1/mergua.sh | sh -s -- check --key-manifest i18n-keys/en.json --strict

# or pull a single locale by hand

$ curl -H "X-API-Key: $MERGUA_KEY"

api.mergua.com/v1/$PROJECT/translations/de?branch=checkout-redesign

A loop: the sync script pushes the locale files in your repository to Mergua, translators write the new keys in Mergua, a translations.changed webhook starts your CI pipeline, and the sync script pulls the finished translations back into the repository.

Questions

The ones we get most.

The rest, grouped by topic, live in the docs.

All questions
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.

  • Starter

    Everything in Free, plus:

    • API access, the sync script, MCP and webhooks
    • More projects, people, keys and languages
  • Pro and Business

    Branches

    Everything in Starter, plus:

    • Branches and merge diffs
    • Review workflow
    • A larger monthly AI allowance
  • The numbers

    Users, 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