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

1

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 init
2

Configure 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"]
    }
  }
}
3

Translate with context preserved

Run translate after adding or editing keys. Babely preserves ICU message syntax and nested structures.

npx @babely/cli@latest translate
4

Add 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 translations

Example 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.

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.

Neste steg

Lever hvert språk fra samme pipeline.

Logg inn med GitHub eller Google, koble arbeidsområdet ditt og synkroniser oversettelser via CLI eller CI/CD — slik at oppdateringer rulleres ut på alle språk uten å bremse releases.

Begynn å automatisere

3-day free trial