Launch in everylanguage.

General Translation builds full-stack infrastructure for localizing apps, docs, and websites.

Get started

Trusted by the world’s best companies

CursorRampMintlifyProfoundPartifulClickHouse

Trusted by companies around the globe.

Built for developers around the globe.

General Translation is deployed in production apps that reach millions of global users.

GT
Welcome back

Your account’s activity this week.

Revenue
$52,840
Invoices
1,284
Next payout
Aug 12
Get started

Everything localization needs.

What translation does to a layout, the libraries you write against, the platform that holds your context, and the edge that serves the result — one system.

Every locale is a different length

One button in four languages, measured by the browser rather than estimated. German runs long, Japanese runs short, and Arabic re-anchors the whole line.

Ranked against English

A layout that only fits the source string breaks somewhere near the top of this list.

Code

Developer-first libraries for React, Next.js, and more, battle-tested in production apps with millions of users.

  • <T> wraps any JSX — nested elements and all
  • useGT() returns strings for anything that is not JSX
  • <Num> and <DateTime>format to the reader’s locale

Context

One word, two meanings. A context tag decides which translation ships.

Terminology

One term, six locales, decided once. Per-locale style rules keep the wording identical everywhere it appears.

Routing

Automatic detection and locale-based routing, on SEO-friendly paths you never configure.

Translation

AI agents that understand your project structure and localize your content in context.

One config file

Locales in, output path out. The CLI and every SDK read the same file.

gt.config.json
{
"defaultLocale": "en",
"locales": ["es", "fr", "ja", "de", "zh"],
"files": {
"gt": {
"output": "public/_gt/[locale].json"
},
"json": {
"include": ["content/[locale]/*.json"]
}
}
}
$ npx gt translate
Scanning src — 128 strings found
Wrote public/_gt/es.json
Wrote public/_gt/fr.json
Wrote public/_gt/ja.json
Wrote public/_gt/de.json
Wrote public/_gt/zh.json
Done in 12.4s — 640 translations

Built for your next billion users

118
locales, ready today
6
first-party SDKs
<1s
over-the-air updates
$0
to start

Every writing system

Latin, Cyrillic, Greek, Arabic, Devanagari, Han, Hangul, Thai — joined, stacked and bidi-resolved by the browser, with per-script fallbacks in the SDK.

A meridian cage with three points of presence and one serving 12 ms awayeu-central-1us-east-1ap-northeast-1ap-southeast-1ap-southeast-2user

Delivery

A global, low-latency translation CDN. Push over-the-air updates without redeploying your app.

  • Fix a translation and ship it without touching your build
  • Served from the edge, close to whoever asked for it
  • Versioned per locale, so a rollback is one step

Counting is not concatenation

English has two plural forms, Polish four, Japanese one. GT ships ICU plurals, so the number picks the form instead of the string.

Both directions, one markup

Set dir and the browser mirrors rows, alignment and controls. Nothing about the panel is written twice.

Previews

Preview translations in development before they go live.

Live Translation

Translate user-generated content on demand, in full context.

Customization

Bring your own detection function, components and formats.

Glossaries

Pin a term, set per-locale style rules. Both hold on every later run.

And the parts nobody demos

Everything above assumes the unglamorous things already work. They do.

  • SEO-friendly locale paths, with no configuration
  • ICU plurals, numbers, currencies, and dates
  • Dev previews before anything reaches production
  • Over-the-air updates without a redeploy
  • Glossaries and per-locale style rules
  • SOC 2 Type II, GDPR, ISO 27001

The gravity is real.

Five engineering teams in orbit — every locale they ship falls through one pipeline. Nothing has reached escape velocity.

Cursor · Ramp · Profound · Partiful · ClickHouse — held in orbit since day one.

Telemetry

The machine, read off its own dials.

100+
languages, one integration
84 ms
served at the edge, cached
3.4 s
to translate six locales

Everything you need, in one toolchain.

Buildtime, runtime, and review — one project, one config, one bill.

One string, source to screen

Hover a stage — the same string climbs all seven.

The GT stack, end to end: app code, gt cli, Locadex, context, review, edge CDN and runtime delivery — each plane taps the same doubled rail, from source code to the translated string on a user’s screen
gt cliacme/web
$ npx gt translate
gt-next detected · Next.js App Router
128 strings · 3 new · 2 changed
es fr ja de zh
done in 8.4s · local edits preserved

Code

Mark up JSX once — every locale ships from your build.

page.tsxNext.jsReact
import { T } from 'gt-next'
<T>
<h1>Hello, world!</h1>
</T>
es¡Hola, mundo!
jaこんにちは世界!

Content

User-generated content, translated on demand at runtime.

notify.tsruntimeNode.js
await tx('Payment received', {
$locale: 'ja',
})
200 · 84 ms · cached at the edge
{ "ja": "支払いを受領しました" }

Dashboard

Glossaries, directives, and review in one workspace.

acme/webproduction
enesfrjadezh
glossary24 terms
directives6 rules
reviewqueue empty
v214 · published2 min ago

Locadex

The agent that internationalizes your repo in guarded PRs.

PR #218locadex → mainGitHub
@@ −4,1 +4,1 @@ app/checkout.tsx
<p>Payment received</p>
+<p><T>Payment received</T></p>
merged+38 −6 · checks passed

Context, defined once — inherited all the way down

Glossary and tone set at the top; every project and component below inherits them.

Organization
Glossary

“Locadex is the GT agent — do not translate.”

Directives

“Active voice. Use formal ‘Sie.’” de

Project
1brand-coreorg
2docs-styleorg
3checkout-copyproject

On overlap the top group wins: formal ‘Sie’ holds, casual tone loses.

Component
<T $context="popup, not bread">
Click the toast to dismiss
</T>
esla notificaciónla tostada

One commit, on the clock

09:41:02committedapp/page.tsx
09:41:18extractedhash 0f3a92
09:41:44pr openedlocadex · #218
09:42:03translated6 locales · 3.4 s
09:44:37approvedreview · @mira
09:45:01publishededge · 3 regions
09:45:09renderedde · 38 ms

Pricing for everyone.

Full-stack localization across buildtime, runtime, and review.

Starter

Start free
$0/ monthplus published usage rates

Everything included — the gate is a payment method, not a feature list.

  • Unlimited users, projects, and languages
  • Every SDK and the translation CLI
  • Dashboard, glossaries, and the editor
  • Locadex agent runs on your repo
  • GitHub integration
  • Usage limits with a hard cap you set

Enterprise

Customannualscoped to your volume

Talk to an engineer about implementation, volume, and your security review.

  • Forward-deployed engineers
  • Custom workflows for any format or framework
  • Shared context across projects
  • SSO, RBAC, and webhooks
  • Custom SLA and volume pricing
  • SOC 2 Type II, GDPR, ISO 27001

Every once in awhile, I see a snippet of code that makes me a bit emotional.

Now is one of those moments. Internationalization went from “$%!# this” to “trivial”.

TheoTheoCEO, T3ChatView the post

Reach every user

Deploy today in every language.

Talk to an engineer about implementation, or get started for free.

Deploy today.

Join the world’s best developer teams on General Translation