General TranslationGeneral Translation

Your product speaksevery language.

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

Get startedDocs
extracttranslatereviewshipupdate

Trusted by the world’s best companies

CursorRampMintlifyProfoundPartifulClickHouse

Ship it the way you wrote it.

Source in your repo, translations in your repo, review in the dashboard, delivery at the edge.

Write

JSX goes in <T>, strings go through gt(). Nothing is extracted.

Scan

npx gt translate reads your source and finds only what changed.

Translate

New content is sent. Local edits are preserved. --force is opt-in.

Review

Approve per entry and per locale in the editor, or let it ship.

Ship

Translations land in public/_gt/[locale].json and you commit them.

Update

Fix a string in the dashboard and the CDN serves it without a deploy.

app/page.tsx
<T> <h1> Hello, world! </h1></T>
$ npx gt translate
const gt = useGT();gt('Payment received')gt('Get started')— 2 changed
gt.config.json
esfrjadezh
"Payment received"→ "Pago recibido"
dashboard/editor
esPara comenzar, edita el archivo page.tsx.
ja開始するには、page.tsxファイルを編集してください。
deUm zu beginnen, bearbeiten Sie die Datei page.tsx.·
git
public/_gt/ja.jsonpublic/_gt/es.jsonpublic/_gt/de.json+ 3 files committed
edge
example.com/jaGET 200 · 38 msno deploy

One toolchain, every stack.

Developer-first SDKs to translate everything from simple sites to complex user experiences.

app/page.tsx
1import { T, Num, DateTime } from 'gt-next';
2
3export default function Home() {
4 return (
5 <T>
6 <main>
7 <h1>Hello, world!</h1>
8 <p>
9 <DateTime>{new Date()}</DateTime>
10 </p>
11 <p>
12 GT has everything you need to ship your
13 product in <Num>{118}</Num> languages.
14 </p>
15 </main>
16 </T>
17 );
18}
gt-next

Server components, middleware locale routing, and static translations built at build time.

npm i gt-nextnpx gt@latest
UI<T>…</T>
Textes'¡Hola, mundo!'
Numbersde1.234.567,89
Currenciesde1.280,00 €
Datesfr29 juil. 2026
Pluralspl1 plik · 4 pliki
FunctionsuseGT() · getGT()
Contextcontext="file"
Routingfr/fr/a-propos
gt-next reference

Connect a repo. Get a pull request.

Locadex reads your codebase, writes the internationalization, generates the translations, and opens a PR you review.

  • Every change arrives as a reviewable PR on locadex/
  • Auto-merge is off by default
  • Setup is its own PR, and you merge it first
  • Next.js, Mintlify, Fern, Docusaurus, Vite, React Router and TanStack Start
  1. Push to repoA commit or PR triggers the workflow
  2. Scan codebaseAgent maps out what has changed
  3. Edit codeAgent internationalizes code and strings
  4. Translate contentAgent creates translations in context
  5. Open PRPull request created for review
Generate codeA pull request changes
Generate translations and pushA commit is pushed
Keep locales in syncStarted manually

Internationalize app/ with gt-next

Open
locadex/generate-codemain47 files changed · +612 −318
ConversationCommitsFiles changed 47
app/page.tsx
@@ -1,14 +1,17 @@
1import { Num, DateTime } from 'next/intl-shim';
1+import { T, Num, DateTime } from 'gt-next';
22
33 export default function Home() {
44 return (
5+ <T>
56 <main>
67 <h1>Hello, world!</h1>
78 <p><DateTime>{new Date()}</DateTime></p>
89 <p>
910 General Translation builds full-stack
1011 infrastructure for localizing apps, docs,
1112 and websites.
1213 </p>
1314 </main>
15+ </T>
1416 );
1517 }
app/layout.tsx
@@ -1,11 +1,15 @@
1+import { GTProvider } from 'gt-next';
2+import { getLocale } from 'gt-next/server';
3+
1export default function RootLayout({
4+export default async function RootLayout({
25 children,
36 }: { children: React.ReactNode }) {
7+ const locale = await getLocale();
48 return (
5 <html lang="en">
9+ <html lang={locale}>
610 <body>
7 {children}
11+ <GTProvider>{children}</GTProvider>
812 </body>
913 </html>
1014 );
1115 }

Edit in context.

Agents write translations. You review, edit, and approve in a focused workspace.

  • Side-by-side source and translation view
  • See diffs when translations are regenerated
  • Edit translations before or after they go live
workspace · es-4194 strings
source — en
translation — es
Hello, world!
¡Hola, mundo!approved
Launch in every language
Lanza en todos los idiomasapproved
End-to-end localization for the world's best companies
Localización de extremo a extremo para las mejores empresas del mundo.Localización integral para las mejores empresas del mundo.edit
By continuing you agree to our Terms of Service.
Al continuar, aceptas nuestros Términos de Servicio.approved
⌘K searchhistorydownloadagent · locadex

From your editor to the edge.

Preview translations as you type, fix live strings without a deploy, and route every locale on paths a search engine can index.

Develop in Japanese

With a gtx-dev- key, translations regenerate as you type. No reload.

app/page.tsxen — source
export default function Home() { return ( <T> <h1>Get started by editing page.tsx</h1> <p>Looking for a starting point or instructions?</p> </T> );}
localhost:3000/ja
開始するには、page.tsxファイルを編集してください。開始点や詳細な手順をお探しですか?updated · no reload
gtx-dev-translated on demand · preview only · browser-safe
gtx-api-pre-generated · production · never in browser code

Fix it without a deploy

Edit a string in the editor and the CDN serves it. Or bundle the JSON and never call us at all.

Payment receivedPago recibido
commitbuilddeploylive
GET /_gt/es.jsonedge · 38 ms
{ "Hello, world!": "¡Hola, mundo!", "Payment received": "Pago recibido", "Get started": "Comenzar ahora", "Translation that just works.": "Traducciones que simplemente funcionan."}
bundled JSONno CDN request at all · redeploy to update
CDNserved from the edge · update live

Locale-prefixed, SEO-ready paths

One middleware file gives you detection, prefixes and localized pathnames.

example.com/about
example.com/es/about
example.com/fr/a-propos
1URL localematched
2cookie
3Accept-Language
4default locale
middleware.ts
import {
createNextMiddleware,
} from 'gt-next/middleware';
export default createNextMiddleware({
prefixDefaultLocale: true,
pathConfig: {
'/about': { fr: '/a-propos' },
'/products': { zh: '/产品' },
},
});

Start at $0. Pay per token.

The price of a translation is knowable before you run it.

Starter

$0to start

Start free and upgrade when you ship. Everything you need to localize a real product.

  • Every SDK and the translation CLI
  • Dashboard, glossaries, and the editor
  • Locadex agent runs on your repo
Get started

Enterprise

Customannual

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

  • Volume pricing across projects
  • SOC 2 Type II, GDPR, ISO 27001
  • Support from the engineers who build it
Contact us
Published rates$1 = 1,000,000 credits
build time$10 / 10k input tokensGT libraries $20
runtime$1 / 10k input tokens
development$1 / 10k input tokensGT libraries $4
project context+$0.10 / 10k tokensper 500 tokens of context
Locadex$5 / LCU
npx gt translate --dry-run prints what would be translated and bills 0 tokens.