FAQ
Answers to common Babelize questions: supported frameworks and languages, pricing and AI credits, file formats, GitHub setup, BYOK, and glossaries.
General
What is Babelize?
Babelize is a localization platform for React, Next.js, Django and static HTML sites, with Vue and React Native in beta. Run npx babelize in your project folder, or import a GitHub repo (or a ZIP) in the dashboard, pick your languages, and Babelize finds your text, translates it and opens a PR — no manual file management needed.
Who is Babelize for?
- Indie developers shipping apps to global audiences
- Startups scaling internationally
- Teams managing multilingual applications
What frameworks does Babelize support?
Babelize supports React (JavaScript or TypeScript, including JSX/TSX; Gatsby, Remix, and Astro projects are detected as React), Next.js (with next-intl) and Django (detected via manage.py or a Django dependency): for Django, Babelize marks strings with gettext, writes .po catalogues and configures settings.py — see Django. Static HTML/CSS/JS sites are supported too; text inside <script> blocks isn't translated. Vue (.vue single-file components, including Nuxt) and React Native (Expo Router, classic Expo and bare React Native, detected via an expo or react-native dependency — see React Native & Expo) are in beta: they work, but expect rough edges. JavaScript and TypeScript web apps are detected via package.json, static sites via index.html. Other stacks (Laravel, Rails, Flutter, Angular, Svelte, …) are refused when you add the repository, with a message naming the framework. Angular and Svelte are on the roadmap.
How is Babelize different from Google Translate?
| Babelize | Google Translate | |
|---|---|---|
| Built for code | Translates i18n files, preserves keys/placeholders | General-purpose text translation |
| Incremental | Only new or changed strings are translated; existing translations are reused | Re-translates everything |
| GitHub-native | Clones repo, raises PRs automatically | Copy-paste workflow |
| Quality-checked | Placeholders, tags, plural forms and glossary terms are verified before anything is written | No checks |
Pricing
Is there a free plan?
Yes. The Free plan includes 5 projects and 10,000 AI credits/month. No credit card required.
What are AI Credits?
Credits measure translation volume. 1 credit covers about 60 characters of newly translated text, roughly one string in one language. Each target language counts separately, and strings reused from earlier runs or translation memory are free.
Do unused credits carry over?
No. Credits reset at each billing cycle.
Can I get a refund?
Plans can be cancelled anytime and stay active until the end of the billing period. Payments aren't refundable except as described in our Refund & Cancellation Policy. Questions: support@babelize.co.
What plans are available?
| Plan | Price | Projects | AI Credits/mo |
|---|---|---|---|
| Free | $0 | 5 | 10,000 |
| Starter | $9/mo | Unlimited | 50,000 |
| Growth | $29/mo | Unlimited | 250,000 |
| Studio | $79/mo | Unlimited | 1,000,000 |
See Billing & Plans for full details.
Translations
How accurate are the translations?
By default, babels use Babelize's own translator: a dictionary of common interface phrases first, then the open-source NLLB model. With your own LLM key (BYOK) you get LLM translation, which gives the best results for plurals and context. Either way, every translation is checked before it's written (placeholders, HTML tags, plural forms, glossary terms, and text returned untranslated); a string that fails is reported and retried on the next run, never shipped as the source text. Accuracy also depends on the language pair: widely used languages (Spanish, French, German, Japanese and the like) give the best results. Review translations for critical content in Results, where you can fix any wording in place.
What languages are supported?
90+ languages. See Supported Languages for the full list.
Can I edit a translation?
Yes. Open a finished babel's results, hover a translation and click the pencil (editors and admins). The edit goes into the pull request and the download without another babel, is saved to your translation memory, and wins on later babels until the source text changes.
Can I re-translate everything?
Yes. Open the project's Configure dialog and choose Re-translate on next run, or turn on Re-translate everything when you start a run. That run translates every string again instead of reusing earlier translations, and uses credits for all of them. It's useful after changing the glossary, brand voice or translation engine.
How are plurals handled?
Counts become ICU plural messages, so each language gets its own plural forms. Code that pluralizes by hand, such as {count} item{count === 1 ? '' : 's'}, becomes a single plural message too, instead of a translated word followed by an English "s". Plurals need a runtime that formats ICU messages: next-intl, or react-i18next with i18next-icu, which Babelize sets up.
Why did my translation produce different output?
Babelize reuses existing translations (through the lockfile and Translation Memory), so unchanged strings keep their translation between runs. If output changed, check:
- Was source content modified?
- Were glossary entries updated?
- Were language settings changed?
Technical
What file formats are supported?
For React, Next.js, static HTML, Vue (beta) and React Native (beta), Babelize reads and writes JSON locale files, one per language, extracting strings from .js, .jsx, .ts, .tsx, .vue, and .html source files. Django projects use gettext .po catalogues (locale/<lang>/LC_MESSAGES/django.po), with strings extracted from .py files and Django templates; existing translations are kept and tracked .mo files are recompiled. Documentation written in Markdown or MDX (.md, .mdx) is translated page by page in the CLI and MCP server; see Markdown & MDX Docs. Other locale formats (YAML, XLIFF, ARB, iOS/Android string files) are not supported.
Can Babelize translate my documentation?
Yes, for Markdown and MDX pages. Add "docs": { "include": ["content/docs/**"] } to .babelize/config.json and run npx babelize translate --to es,ja (add --docs-only to skip the app). Each page gets a translated copy (page.es.mdx). Headings, paragraphs, lists, tables, frontmatter titles and readable JSX props are translated; code blocks, inline code, imports, {expressions}, JSX tags and URLs are left exactly as written. Docs translation runs locally (CLI and MCP), not in cloud runs or GitHub pull requests yet. See Markdown & MDX Docs.
Which docs frameworks are supported?
Fumadocs, with both of its i18n layouts (page.ja.mdx or ja/page.mdx) and translated meta.json sidebars. Docusaurus, Nextra, Mintlify, VitePress and Starlight aren't tested: the pages Babelize writes are valid Markdown/MDX, but those tools expect translations in their own folder structure, and you should set "anchors": false.
Should I use Babelize-hosted translation or my own key for docs?
Use your own LLM key (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, …) for docs. Babelize-hosted translation is built for short UI strings. On long paragraphs it is slower (about 8 s each) and plainer, and some paragraphs come back without their markup and stay in English. The CLI tells you this when docs run on hosted translation.
Why did a paragraph in my translated docs stay in English?
The translation dropped or repeated a link, bold text or inline code, so Babelize kept the English rather than write a broken page. The paragraph is listed in the summary (and in --json output under docs.failures) and is retried on the next run. If it keeps happening, switch to your own LLM key.
Do links and anchors work in translated docs?
Anchors do: a translated heading keeps the English heading's id (## Instalación [#installation]), so #installation still lands. Links are left pointing where they pointed (/docs/install), so your site should add the reader's language prefix when it renders them; see Linking between languages.
I edited a translated docs page and my change disappeared
Translated pages are rebuilt from the English page and .babelize/local/docs-lock.json on every run. Make the correction in the lockfile entry for that paragraph instead; the next run writes it into the page.
See File Formats for details.
How do I connect my GitHub repo?
Click New Project and connect GitHub: you install the Babelize GitHub App once and choose which repositories it can see. That one connection covers reading your code and opening pull requests; signing in with GitHub doesn't ask for repository access. See GitHub Integration.
Can Babelize translate every push?
Yes, on the Growth and Studio plans. Turn on Keep translating when I push when you create the project, or the Auto-localize card on the project page. A few minutes after your last push, Babelize translates what's new and updates one pull request. Each project has a monthly credit limit for this (2,000 by default). See Auto-localize.
My organization's repository can't be added. What do I do?
Many GitHub organizations restrict third-party apps or require single sign-on, and then GitHub refuses Babelize's access even though you can see the repository. Babelize tells you which one applies when you add it. Install the Babelize GitHub App on the organization (an organization owner may need to approve it), request approval for Babelize in your GitHub settings, or authorize it for single sign-on. With the App installed, Babelize reads the repository only after GitHub confirms that your own account has access to it.
Does Babelize reformat my code?
No. Only the lines with translated text change, plus the translation hook and import Babelize adds. Formatting, quotes, line endings and indentation stay as you wrote them, and re-running Babelize on a project it already translated changes nothing.
Will Babelize translate values my code uses as data?
No. Colors, roles, statuses, icon names, IDs, object keys, TypeScript types, ISO dates and codes aren't treated as text. A list that is both shown and used as data (options shown as chips and also saved or sent to your API) stays as you wrote it: Babelize adds a map from each value to its translation key next to the list and translates only where it's displayed, so comparisons and API calls keep the original value.
Can I use my own API key for translations? (BYOK)
Yes. Add a key from OpenAI, Anthropic, Gemini, Groq or OpenRouter under Settings → API keys (Your own AI keys). Babels on your key use no Babelize credits; the provider bills you directly. Each project's Configure → Advanced picks the translation service: Automatic (the default) uses your credits first and switches to your key only when they run out. See Bring Your Own Key.
How does Translation Memory work?
Babelize stores every translation the engine produces in Translation Memory — one memory per account owner, shared across all of their projects. When a later run encounters the same or a similar source string, the stored translation is reused, reducing costs and ensuring consistency. Translation Memory is available on all plans, including Free.
What is the Glossary feature?
Glossaries let you define "never translate" terms and enforce consistent terminology across all translations. Add terms from the project's Glossary, or straight from a translation in Results, and import/export them as CSV. Glossary support is available on all plans, including Free.
How does real-time progress work?
While a babel runs, the dashboard updates in real time. You can see each step as it completes and follow progress without refreshing the page.
What is project freeze?
If your project exceeds the usage limits of your plan (e.g., running out of AI credits), it may be frozen. Frozen projects cannot start new translations until you upgrade your plan or the freeze is lifted.
How do I set up Multi-Factor Authentication (MFA)?
Go to Settings → Account → Two-Factor Authentication. Babelize supports time-based one-time passwords (TOTP) via authenticator apps like Google Authenticator or Authy.
Getting Help
- Documentation: You're here!
- Email: support@babelize.co
- Feature requests: Submit here
- Bug reports: Report here
Last updated: 2026-11-01
Changelog
Babelize release notes by version and date: new features, improvements and bug fixes across the platform, with the newest release first.
Troubleshooting
Fixes for common Babelize problems with sign-in, GitHub connections, translation runs, the dashboard and billing, and how to get help if you're still stuck.