All integrations
LiveCode & docs

Localize on every pull request.

Point Rush Studio at the string files in your repo. When they change, it translates the diff in the languages you've set and opens a pull request your engineers review like any other — no separate tool, no copy-paste, nothing merged without your say-so.

Translation pull requestsRuns on every pushJSON · YAML · PO · XLIFF
github.com/acme/web-app · Pull request #482
i18n(es): update translations
rush/i18n-esmain
Open
locales/es/common.json
"nav": {
"home": "",
+ "home": "Inicio",
"pricing": "",
+ "pricing": "Precios",
},
"cta": "",
+ "cta": "Empezar gratis",
Category
Code & docs
Auth
GitHub OAuth
Sync
Pull requests
Setup
~3 minutes
What it does

Your repo is the source of truth.

Rush Studio watches the locale files you point it at and keeps every language in step — as reviewable pull requests, never surprise commits.

Watch your string files

Give it a glob and it tracks every matching locale file across the repo — recursively.

Translation pull requests

New and changed strings become a PR per language, opened against the branch you choose.

Every i18n format

JSON, YAML, gettext, XLIFF, Apple .strings, and Flutter .arb — parsed and re-emitted cleanly.

Runs on push or schedule

A webhook picks up changes within minutes, or poll on a schedule you set.

Point it at your strings

A glob, not a manual export.

Tell Rush Studio which repo and which files hold your source strings — browse the repo and pick a file or folder, and it turns your choice into a glob. Only files that match are ever read; the rest of your codebase is invisible to us.

Recursive globs
locales/**/*.json matches across every folder — monorepos included.
Format auto-detected
Pick JSON, YAML, PO, or XLIFF and it parses keys the right way.
Target path template
A {lang} token in your path expands per locale, e.g. locales/{lang}/.
ReplacesManual string exportsCopy-paste into locale files
Pick files to translate
acme/web-app main
Source globlocales/**/*.json
locales/en/common.jsonMatched
locales/en/dashboard.jsonMatched
locales/en/emails.jsonMatched
src/index.tsx
README.md
3 files match your glob — only these are read. The rest of the repo is untouched.
Review, don't surprise

Translations arrive as a pull request.

When strings are translated and approved in Rush Studio, they land back in your repo as a pull request — one per language, or a single rolling PR, your call. Your engineers review and merge it exactly like any other change. Nothing touches your base branch until you say so.

Per-language or rolling
Open one PR per language, a single rolling PR, or commit straight to a branch.
Human review by default
PRs open as draft until a reviewer approves — opt into GPG-signed commits too.
Duplicate-key safe
Duplicate JSON keys are flagged on import, with an optional PR to rename them.
ReplacesA separate localization toolMerge conflicts on locale files
Translation pull requests
i18n(es): update translations
Spanish · 3 files changed
Review required
i18n(de): update translations
German · 3 files changed
Review required
i18n(ja): update translations
Japanese · 3 files changed
Checks running
One PR per languageDraft until approvedMerge when you're ready
Supported formats

The string files your repo already uses.

Every common i18n format — parsed into keys, translated, and re-emitted with structure and ordering intact.

JSON
JSON
i18next, react-intl
YAML
YAML
Rails, Ruby i18n
PO
Gettext
.po / .pot
XLF
XLIFF
XLIFF 2.x
STR
Apple
.strings / .stringsdict
ARB
Flutter
.arb
How it works

Connected in about three minutes.

1

Authorize with GitHub

Sign in with GitHub OAuth and grant access to the repositories you choose. Revoke any time from GitHub or Rush Studio.

2

Pick repos, files & languages

Choose the repo, point at your string files with a glob, and set your target languages and PR strategy.

3

Translate & open PRs

Changes flow into your queue, get translated and reviewed, and land back as pull requests you merge.

Permissions & security

Scoped to the repos you pick — reviewed before anything merges.

Rush Studio connects through GitHub OAuth. Here's exactly what it does and doesn't do.

What we access
The repos you select. Read the string files matching your glob and open branches and pull requests there.
Your GitHub profile. Name and email, to attribute commits and PRs and send notifications.
Push events (optional). A webhook you approve tells us when source strings change, so we can re-sync.
What we never do
Merge without review. Translation PRs wait for your approval — we never merge to your base branch on our own.
Touch code outside your glob. Files that don't match the pattern you set are never read or modified.
Rewrite history. We only add branches and pull requests; your existing commit history is never force-pushed or rewritten.
The details

How the sync behaves.

The questions engineers ask before connecting a production repo.

Sync direction
Source in, reviewed PRs out. Source strings are read; translations open as pull requests you merge.
Sync trigger
A push webhook detects changed strings within minutes, or poll on a schedule. A manual Pull from GitHub button re-syncs on demand.
Formats
JSON, YAML, gettext (.po/.pot), XLIFF 2.x, Apple .strings/.stringsdict, and Flutter .arb.
Source edits
Editing a source string re-queues just the affected keys; the open PR updates in place instead of stacking duplicates.
Branch & PR strategy
Per-language PRs, a single rolling PR, or direct commits to a base branch — with custom labels and commit messages using {lang} and {count}.
Auth & revocation
GitHub OAuth 2.0 (repo + user:email). Disconnect from Rush Studio or revoke from GitHub at any time; access stops immediately.
Questions

GitHub, answered.

No — by default every translation opens a pull request you review and merge. You can opt into direct commits to a branch if you prefer, but never to your base branch without approval.

Only the files matching the glob you set. The rest of your repository — source code, secrets, everything else — is never read.

Yes. The GitHub OAuth connection covers the private repositories you grant access to.

Recursive globs like packages/**/locales/**/*.json scope exactly what's translated, so a big monorepo stays manageable.

Duplicate JSON keys are detected on import and flagged, and Rush Studio can open a follow-up PR that renames the repeats so translations map to the right string.

Yes — register a webhook and changed strings are picked up within minutes. Prefer polling? Set a schedule instead.

Localize on your next commit.

Join the waitlist for early-access pricing and a 1:1 onboarding call to wire up your first repo.