Automate next-intl Translations with AI
Babely translates your messages/[locale].json files while preserving ICU plurals, select rules, rich text tags, and nested keys — the same stack we use on babely.dev.
Why teams automate this
ICU syntax breaks with generic translators
Plurals, select rules, and rich text placeholders like {count, plural, ...} are easy to corrupt when translating manually or with tools that treat JSON as flat strings.
Growing message files slow down releases
As your Next.js app scales, hundreds of nested keys across locales become impossible to keep aligned without automation.
No diff-aware workflow
Re-translating entire locale files on every change wastes API credits and creates noisy Git diffs reviewers cannot trust.
How it works
Add Babely to your Next.js project
Initialize Babely in your project root and point it at your next-intl message files.
npx @babely/cli@latest initConfigure messages/[locale].json
Match the path next-intl expects. Babely reads your English source and writes target locale files.
{
"locale": {
"source": "en",
"targets": ["de", "fr", "es"]
},
"files": {
"json": {
"include": ["messages/[locale].json"]
}
}
}Translate with context preserved
Run translate after adding or editing keys. Babely preserves ICU message syntax and nested structures.
npx @babely/cli@latest translateAdd overrides for brand voice
Lock terminology and tone with overrides so product names and marketing copy stay consistent across locales.
# See docs/overrides for tuning translationsExample babely.json
Copy this config into your project root and adjust targets to match your locale folders.
{
"locale": {
"source": "en",
"targets": ["de"]
},
"files": {
"json": {
"include": ["messages/[locale].json"]
}
}
}Why Babely for next-intl
ICU-aware AI translation
Plurals, select, number, and date formats in next-intl messages stay valid after translation.
Nested keys supported
Deep JSON structures like testimonials.items[].title translate without flattening your message catalog.
Dogfooded on babely.dev
Babely runs on next-intl with 12 locales — we ship the same workflow we recommend to you.
Git diff detection
Only modified strings are translated, so pull requests stay small and reviewable.
Related documentation
Other use cases
next-international
Babely translates your locales/[locale].ts modules while preserving TypeScript structure and nested keys — a lightweight alternative to next-intl for Next.js apps.
react-i18next
Babely translates your locales/[locale].json files while preserving {{interpolation}}, nested namespaces, and plural keys — the most widely used React i18n library.
Fumadocs
Ship multilingual documentation without duplicating your Fumadocs setup. Babely translates UI JSON and MDX content in one command — navigation labels, search UI, and every docs page.
Start translating your next-intl project
Set up Babely in minutes, automate translations in CI, and ship multilingual products without enterprise localization overhead.
Frequently Asked Questions
Does Babely preserve ICU message syntax?
Yes. Babely is built for developer i18n formats. Plural, select, number, and date placeholders in next-intl messages are preserved during AI translation.
Can I use Babely with the App Router?
Yes. Babely manages locale JSON files on disk. It works with any next-intl setup — App Router, Pages Router, and middleware-based locale routing.
How do I handle rich text tags?
Rich text placeholders like <guidelines>...</guidelines> are kept intact. Review translations in Git diffs before merging, and use overrides for terms that must never change.
Does this replace next-intl?
No. Babely complements next-intl by automating translation file generation. Your app still uses next-intl for runtime formatting and routing.