Go global. One PR.
Without touching a single file yourself.
Langflare connects to your GitHub repo, scans every .jsx/.tsx file, wraps hardcoded strings in t() calls, builds your translation JSON files, and opens a clean PR — in minutes, not months. Standard react-i18next. No vendor SDK. No lock-in.
Features
Automatic Extraction
Langflare reads code intent, not just syntax. It finds every user-facing string across your entire React codebase — including ternaries, template literals, and Zod validation messages — and ignores logic strings that shouldn't be translated.
Instant Translation
Choose your target languages. Langflare translates every extracted string with context-awareness — your domain, your UI patterns — and writes the JSON locale files directly into the PR.
Built on the tools your team already uses.
Teams spend weeks manually extracting strings, creating keys, and keeping JSON files in sync. Cursor helps, but it still misses edge cases. The real problem isn't finding the strings — it's everything that breaks when you try to automate it at scale.
— A pain point shared across dozens of React engineering teams
Every approach has a fatal flaw. Except one.
The Manual Grind
Regex, grep, find & replace
Dumb pattern matching.
It can't tell the difference between const id = 'submit-btn' (a CSS selector) and <Button>Submit</Button> (a UI string). Every false positive is a regression. Large teams report spending weeks just fixing what the script broke.
The AI Shortcut
Cursor, Copilot, or raw ChatGPT
Probabilistic next-token prediction.
Still misses edge cases. Hallucinates keys. Confuses logic strings with UI strings. Breaks template literals. And even when it gets it right, there's no ongoing governance — new hardcoded strings creep back in with every PR.
The Langflare Approach
Context-aware agent + structured pipeline
Reads code intent, not just syntax.
A specialized agent walks your entire codebase — understanding DOM context, ternaries, template literals, Zod schemas. It wraps strings, builds JSON files, translates them, and opens a single clean PR. Then installs guardrails so you stay clean.
From legacy codebase to global-ready. In one afternoon.
Here's exactly what happens after you connect your repo.
Connect & Analyze
Connect your GitHub repo. Langflare clones it into an isolated environment, scans every .jsx, .tsx, .js, and .ts file, and counts every hardcoded string it finds.
- Detects your framework (Next.js App Router, Vite, Remix)
- Identifies translatable strings vs. logic strings
- Estimates migration scope and shows you a price quote
Choose Languages & Approve
Review the migration scope. Select which languages you want to target. Approve the quote and Langflare kicks off the migration.
Get Your PR
Langflare opens a pull request against your repo with everything done:
- react-i18next installed and configured
- Every string wrapped in t('namespace:key') calls
- JSON translation files created for every language
- Translated by a context-aware AI — not Google Translate
Stay Clean (Optional)
Install the CI guardrail to prevent new hardcoded strings from creeping back in.
- Pre-commit hook blocks new hardcoded strings before they ship
- Run pnpm sync-locales to translate new keys to all your languages
- Git-tracked: Langflare uses your commit history to find only new strings
The edge cases that break every other tool.
Production React code is messy. Ternaries, template literals, Zod schemas, aria attributes — here's how Langflare handles what regex and raw AI miss.
Semantic Disambiguation
It knows what's UI text and what's not.
<div id="submit-btn">Ignored<Button>Submit Form</Button>Extractedaria-label, alt, titleConfigurableComplex String Interpolation
Ternaries and template literals — handled correctly.
Validation Schema Support
Error messages inside your Zod/Yup schemas get extracted too.
Cleanup today. Governance forever.
One PR to migrate your legacy strings. One command to keep new ones in sync.
Phase 1: Deep Clean
One-Time Migration
Connect your repo and Langflare generates a comprehensive pull request. react-i18next gets installed, every hardcoded string gets wrapped, and your JSON translation files are created and translated — all in one PR. You merge standard React code. No vendor binaries.
- Strings grouped into logical namespaces
- Consistent key naming conventions across your codebase
- Standard react-i18next — your app works without Langflare
Phase 2: CI/CD Protection
Available at Launch
Once migrated, Langflare installs a pre-commit hook that watches every new commit. If you add new hardcoded strings, the hook catches them before they ship. Run pnpm sync-locales to translate them to all your target languages at once.
- Pre-commit hook catches new hardcoded strings before they ship
- pnpm sync-locales translates new keys to all languages in one command
- Git-tracked: Langflare only processes strings added since your last sync
Your code is yours.
We know you're granting us access to sensitive code. Here's exactly what we do — and don't — do with it.
Ephemeral Processing
Your repo is cloned into an isolated temporary environment. Once the PR is generated, the clone is deleted. We do not store your source code.
Code is processed via Anthropic's Claude API under their data policies.
Scoped Permissions
We use GitHub App tokens with granular permissions. We cannot see your organization's other repos—only the ones you explicitly grant access to.
The "Output" Guarantee
The result of using Langflare is standard text files and standard React code. If you stop paying us, your app keeps working. Zero vendor lock-in.
Pay off your technical debt. Then keep it clean.
One-time migration to get you global. Usage-based credits to stay that way.
Starter
For indie apps and side projects going global.
Up to 100 Files
- Scans every .jsx, .tsx, .js, .ts file
- Wraps all strings in t() calls
- Creates namespaced JSON translation files
- Translates to your target languages
- Opens a single clean PR
Growth
For established products with real user bases.
Up to 500 Files
- Scans every .jsx, .tsx, .js, .ts file
- Wraps all strings in t() calls
- Creates namespaced JSON translation files
- Translates to your target languages
- Opens a single clean PR
- Priority support
Scale
For large codebases with years of technical debt.
Up to 1,500 Files
- Scans every .jsx, .tsx, .js, .ts file
- Wraps all strings in t() calls
- Creates namespaced JSON translation files
- Translates to your target languages
- Opens a single clean PR
- Priority support
- Custom namespace strategy
Monolith with 2,000+ files? Run the free audit and we'll quote you based on actual string density.
Frequently Asked Questions
Everything you need to know before connecting your repo.
Your app is one PR away from going global.
Connect your GitHub repo, get a free quote, and have your migration PR ready by the end of the day.
Audit My Repo for FreeFree scan. No credit card. Your code is treated as ephemeral — deleted after the PR is generated.