Built to remove the friction you already know
Localization stops being a side quest someone remembers to do, and becomes a step your pipeline already runs.
Translation lives outside your repo, in spreadsheets or a web UI someone has to remember to update.
- Pull and push translation files with the transglot CLI or the GitHub Action — or the REST API directly — so strings move through the same CI/CD pipeline as your code.
Kicking off translation after a source-string change is a manual, easy-to-forget step.
- Trigger an AI translation batch from the API, or let auto-translate-on-source-edit and auto-backfill-on-new-language handle it for you.
You need to know when a translation batch finishes (or fails) without polling.
- Subscribe a per-project webhook to any of 10 events — batch.completed and batch.failed among them — HMAC-SHA256 signed and coalesced, with a delivery log and manual redelivery if you need to replay a payload.
Your app already has an i18n format; you don’t want to adopt a new one.
- Import and export the 20 formats your stack already reads: JSON (flat or nested) for i18next/React/Vue, Laravel PHP/JSON, iOS .strings/.stringsdict/.xcstrings, Android XML, Flutter ARB, Rails-style YAML, gettext .po, Java .properties for Java/Spring/Kotlin, .NET .resx, XLIFF 1.2 and 2.0 for any CAT tool, CSV and spreadsheet XLSX, plus Markdown/MDX documents, the Unity Localization CSV, and the Unreal Engine PO.

What you get
A curated set of transglot capabilities most relevant to this workflow.
REST API, CLI, GitHub Action & MCP
A full /api/v1 (project, pull, push, translate, batches, translations, QA, glossary), the zero-dependency transglot CLI (init, pull, push, status), a first-party GitHub Action, and the @transglot/mcp server so an AI agent can drive the same API. Bearer auth via scoped, revealed-once project access tokens.
Signed webhooks, 10 events
Per-project endpoints across 10 events — batch, key, translation, language, glossary, and QA — HMAC-SHA256 signed and coalesced, with a delivery log of the last 50 attempts and manual redelivery for any past payload.
20 native file formats
JSON (flat/nested), Android XML, iOS .strings/.stringsdict/.xcstrings, Flutter ARB, Laravel PHP/JSON, XLIFF 1.2 and 2.0, gettext .po, YAML, Java .properties, .NET .resx, CSV, and XLSX — capability-aware, so simple formats skip plurals cleanly instead of guessing.
OTA / CDN runtime delivery
Publish reviewed strings to a public, edge-cacheable endpoint (versioned, ETag/304) and read them with the zero-dependency @transglot/runtime SDK or its Vue, React, Svelte, Next.js, SvelteKit, Angular, and Solid adapters — fix a prod string without a redeploy.
Auto-translate on edit
Change a source string and translation kicks off automatically; add a new locale and every existing key auto-backfills. Placeholders and tokens are preserved by a structured-output pipeline.
The developer surface: formats, frameworks, and automation, at a glance


20 file formats — JSON, Android XML, iOS .strings/.stringsdict/.xcstrings, Flutter ARB, Laravel PHP/JSON, XLIFF 1.2 and 2.0, gettext .po, YAML, Java .properties, .NET .resx, CSV, XLSX, Markdown/MDX, Unity CSV, Unreal PO
8 frameworks — i18next, React, Vue, Laravel, iOS, Android, Flutter, Rails — plus any gettext-based stack via .po and any XLIFF-speaking CAT tool
4 ways to automate — the REST API, the CLI, the GitHub Action, and the MCP server
10 webhook events, HMAC-SHA256 signed, with the last 50 deliveries logged and manually redeliverable


From manual hand-off to a pipeline step
What changes, concretely
- Getting strings out: instead of exporting a spreadsheet or copy-pasting from a web UI into your repo by hand, npx transglot pull writes files straight into your locales directory.
- Kicking off translation: instead of someone remembering to open the tool and click “translate” after every source change, auto-translate fires on source edit — or you trigger a batch from the API or CLI as a pipeline step.
- Knowing when it’s done: instead of polling a dashboard or waiting for a Slack message from whoever ran it, an HMAC-signed batch.completed webhook fires the moment a batch finishes.
- Terminology drift: instead of different translators (or AI runs) rendering the same product term differently across files, a glossary term rides into every relevant AI call and is checked deterministically afterward.
Questions, answered
Tokens, webhooks, formats, agent access, and how to gate a merge on translation quality.
Yes, both are first-party. The zero-dependency transglot npm CLI gives you init, pull, push, and status (run it with npx transglot). The transglot GitHub Action pushes source files, waits for the AI batch, and pulls translations back — committing them to a branch or uploading them as an artifact. Both authenticate with a tgl_ project token, and the REST API remains available for anything custom.
Where to go next
The reference pages behind everything on this page — the API surface, terminology enforcement, and the full format list.
Developer Platform
The full REST API, CLI, GitHub Action, and webhook reference.
Glossary & terminology
Enforce consistent terms across every locale, automatically.
Integrations & formats
Every supported file format and framework.