Skip to content

Hello

Your whole product, translated automatically.

Your product, in every language you sell in. Edited on the page itself.

A real checkout, running below in the language you pick. Change any word on it and the fix is live, reviewed and versioned, without a release.

the overlay is off. Turn it on and the strings become clickable
northbound.shop/checkout?tg_locale=de-DEyour app, running
northboundBrauchst du Hilfe?
Bestellung prüfen
2 items · arrives TuesdayKostenlose Rücksendung
Alta shell jacketgraphite · M€98,00
Merino base layersand · M€20,00

product names come from the catalog, not the string file. The overlay leaves them alone.

Zwischensumme€118,00
Expressversand€10,40
Heute fällig€128,40
Cancel within 30 days, no questions.By paying you accept our terms.
overlay off4/10 approved in de-DE
in the room4 live
Yyouidle
MMiraediting line.total
TThéomoving around the page
RRinlength check
saves · de-DEnothing yet
nothing saved yet_
save a string and it lands here, and in the project as a new version
overlay offalt+click opens a stringesc closesdrag ⣿ to move the panelarabic flips the whole surface, not just the text
Running in your browser. Nothing is sent anywhere, and the teammates on the surface are an illustration.

We make it easy to sell to customerswho do not speak your language.

Every string, every language, on the same push.

Connect a repository or a CMS. Transglot finds the strings, drafts every locale you have configured in parallel, and writes them back as a pull request or straight into your CMS.

One place your whole team can work, not one engineer.

Every string, every language, who changed what and when. Four roles, per project and per language, on every plan including Free.

Four checks on every row, before anyone reads it.

Placeholders, plurals, glossary and length are checked on every translation. A row that fails is repaired once, and if it still fails it is refused rather than shipped.

The words your brand lives on are never rewritten.

Load the terms that must stay put and the ones that must never appear. They are locked into the prompt, and then checked again afterwards.

It runs inside the pipeline you already have.

A missing translation fails the pull request rather than the launch. There is a CLI, a GitHub Action, a REST API, signed webhooks and an MCP server your own agents can call.

Fix a typo in Japanese without shipping a release.

Translations publish to an edge bundle your app pulls over the air. A correction is live inside the minute, with no app store review and no redeploy.

The editor after a first pass: every row drafted into French, the machine-written ones badged AI.
The translation grid: keys down the side, locales across the top, each cell showing its state.
The QA screen: languages down the side, checks across the top, one failing cell opened onto the strings behind it.
The glossary: terms with their per-locale targets and their do-not-translate flags.
transglot/locales · required checkpull request #482
$ transglot push --ci
diff: 6 strings changed, 3 locales mapped
drafted 18 rows, Glossa Flux
gates: placeholders, plurals, glossary, length
de-DE length 67 > 48 budget
repaired once, re-gated 41 pass
check transglot/locales passed
committed to the branch, bundle queued for merge
transglot dispatch · ja-JPacme/checkout
$ transglot publish --locale ja-JP
one string changed since v41
bundle v42 built, 12.4 kB
immutable url minted, cached for a year
latest url revalidates within the minute
v41 still pinnable, 20 versions kept
no redeploy, no app store review

Two AI models. One fast, one careful.

Glossa Flux drafts every language the moment your English changes. Glossa Deep takes the slow route on the strings your brand is judged on.

Glossa Flux
drafts everything, always on
What it is for
The whole locale set, drafted the moment the English changes.
Why it is fast
Every configured locale runs at the same time, not one after another, and a sentence you have already approved is reused rather than re-written.
What it is told first
Your glossary, your do-not-translate list and the plural rules for the language, before it writes anything.
On a failure
Repaired once, re-checked, and refused if it still fails. A broken row does not ship.
What it costs
Included on every plan, Free included. Unchanged strings cost nothing to re-run.
Both engines run the same four checks on every row they write: placeholder integrity, plural completeness, glossary terms and length. How the engine decides which is which

The seven things that decide it.

Every one of these is a mechanism you can check rather than a promise. The figures come from the code, and the pages behind each tile show it working.
quality
four gates

It refuses.

Everyone else flags a bad translation and ships it anyway. Placeholders, plurals, glossary and length are checked before a model is asked for an opinion. A row that fails is repaired once, re-checked, and then held rather than published.

gate placeholders pass
gate plurals pass
gate glossary pass
gate length 67 > 48 budget
repaired once, re-gated
still over: held for review
translation memory
$0

A sentence you settled costs nothing again.

An exact match is served from your memory instead of being re-written, and it is never metered.

file formats
20

In and back out, intact.

JSON, XLIFF, PO, Android XML, iOS strings and stringsdict, ARB, YAML and the rest, with plurals and placeholders held both ways.

integrations
41

32 of them two way.

Your CMS, your repository, your help desk, your design tool. Every connector is included rather than sold as an add-on.

plurals
224 rule sets

Six forms in Arabic, one in Japanese.

Every CLDR plural category for the language, held as a set. A missing form is a failed gate, not a shipped bug.

  • zero
  • one
  • two
  • few
  • many
  • other
mcp server
16

Tools your agents can call.

Read a project, add a language, translate what is missing, run the checks. An agent cannot ship a broken string either.

in context
hold alt, click anything

Fix the wording on the running page, not in a spreadsheet.

The overlay draws in a shadow root so your CSS is untouched, the key in the page cannot write, and every change carries the name of the person who made it.

  • German breaks the button
  • the screenshot is kept with the string
  • per reviewer attribution
  • no ticket, no deploy

Read it before you buy it. Nothing is gated.

No form, no email wall, no call. The reference pages and the calculator are live now; the two long-form titles say plainly that they are still being written.
  • The Boring Localization Book
    long formbeing written

    The Boring Localization Book

    The argument in full: why language should ship on the same rails as code, and what changes in a team when it does.

    read the outlinein preparation
  • A First Multi-Locale Launch
    long formbeing written

    A First Multi-Locale Launch

    Sequencing, right-to-left, pricing pages and support load, in the order a first launch actually meets them.

    read the outlinein preparation
  • The Locale Reference
    reference708 ICU locales

    The Locale Reference

    Every locale the validator accepts, how a tag is canonicalised, and which languages carry their own plural rule set.

    open the referencelive page
  • The Cost Model
    modelyour numbers

    The Cost Model

    The calculator with its assumptions visible and editable, so you can disagree with ours and still get a ledger out.

    open the calculatorlive page
  • The Lexicon
    specimenone page

    The Lexicon

    The whole product set as a dictionary entry: senses, a conjugation table, specimen plates and attested figures.

    read the entrylive page
  • The Dispatch
    dispatchpublished as written

    The Dispatch

    Shorter than a book: pieces on i18n setup, glossary enforcement, QA in CI, and migrating off another tool.

    read the dispatchlive page

FAQs

What people ask before they connect anything.

Software that translates your app or website into every language you sell in, and keeps it translated. It finds the strings in your code or your CMS, writes them in each language, checks every one against four automatic checks, and puts them back where they came from as a pull request, a write back to your CMS, or a bundle your app fetches.
Every string goes through Glossa Flux the moment the English changes: all your languages at once, with your glossary, your past approved translations and the screen the string renders on already in hand. The strings your brand lives on can go through Glossa Deep, the careful pass. Both end at the same four checks.
Four checks run on every row before a person sees it: placeholder integrity, plural completeness, glossary terms and length against the space the text has. A row that fails is repaired once and re-checked. If it fails again it is held rather than published, and a required check on your pull request stays red.
There is no fixed list. The validator accepts any BCP-47 language tag that ICU recognises, which is 708 locales in the current ICU table, and plural handling comes from the 224 CLDR plural languages rather than from a guess. Right-to-left scripts are handled, including the six plural forms Arabic needs.
Twenty, and they round-trip in both directions: JSON flat and nested, Android XML, iOS .strings, .stringsdict and .xcstrings, Flutter ARB, Laravel PHP and JSON, XLIFF 1.2 and 2.0, gettext .po, YAML, CSV, XLSX, Java properties, .NET resx, Markdown, Unity CSV and Unreal PO. Seven of them carry plurals, and plurals and placeholders survive the trip.
100,000 words to start and 10,000 a month after, one project, 15 language rows including your source so 14 targets, three seats, and every role and permission. It is a hard cap rather than a meter, so it cannot produce a bill. No credit card.
Starter is $19 a month for 300,000 words, Team $49 for 1,000,000, Business $149 for 4,000,000. Past a paid plan’s allowance it meters at $0.0008 a word, which is $80 for another hundred thousand. Annual is ten months for twelve.
No. Your strings are sent to the subprocessors listed in our Trust Center to be translated and nothing else, and a translation memory hit is answered without calling any of them. Exact matches are held in a shared pool that records no person, no team and no workspace, and any project can leave it with one switch.
No. The platform is hosted by us. Our command line tool and our GitHub Action are public on GitHub, but the platform itself is not open source and there is no self-host path today. Public open-source projects can apply for a free Team-level grant instead.
To connect a repository, once, for about as long as it takes to add a config file. After that a marketer or a translator works in the browser: they can edit the words on your running site by holding ALT and clicking them, with no ticket and no deploy.
works with what you already run

41 connectors, already built.

get started
100,000 words to start, then 10,000 a month

Start translating today.

No credit card required. Start getting new international customers today.