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. Connect your GitHub repo or upload a ZIP (or run the CLI locally), select target languages, and Babelize extracts your strings, translates them and raises 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 = 1 source character. Translating to multiple languages multiplies usage.
Do unused credits carry over?
No. Credits reset at each billing cycle.
Can I get a refund?
Refunds are handled case-by-case. Contact support@babelize.co for refund requests.
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?
Dashboard runs 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: Tier 1 languages (English, Spanish, French, German, etc.) have the highest quality. We recommend reviewing translations for critical content.
What languages are supported?
90+ languages across three tiers. See Supported Languages for the full list.
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. Other locale formats (YAML, XLIFF, ARB, Markdown, iOS/Android string files) are not supported.
See File Formats for details.
How do I connect my GitHub repo?
Install the Babelize GitHub App from the project creation flow. See GitHub Integration.
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! You can bring your own API key from OpenAI, Anthropic, Groq, OpenRouter, and Gemini. When using BYOK, credits are not consumed from your Babelize plan — you pay only for the API costs. Configure your keys in the dashboard under Settings > API Keys.
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. You can import/export glossaries as CSV. Glossary support is available on all plans, including Free.
How does real-time progress work?
When a Babel run is in progress, the dashboard updates in real-time via WebSocket (Socket.IO). You can see each phase as it completes, view logs, and monitor 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)?
You can enable MFA from your account settings. Babelize supports time-based one-time passwords (TOTP) via authenticator apps like Google Authenticator or Authy.
What background workers does Babelize use?
Babelize runs background workers: engineWorker (translation jobs), fileWorker (GitHub file operations), purgeDeletedAccounts (daily cleanup), and subscriptionExpiryWorker (hourly expiry checks). These ensure smooth operation without blocking the main application.
Getting Help
- Documentation: You're here!
- Email: support@babelize.co
- Feature requests: Submit here
- Bug reports: Report here
Last updated: 2026-10-16
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.