AI Translation for React and Next.js Apps

A short note for developers building multilingual apps with AI coding tools.

The JSON Trap

Translation JSON is one of those things that feels harmless until you and your AI coding agent both start editing it. You add a key here, rename a value there, ask an assistant to translate a few strings, and suddenly nobody is totally sure which file should be trusted. 😅

The problems usually look like this:

  • No source of truth: every locale file starts feeling like its own little database.
  • No team review: translated copy ships without a translator, product manager, or teammate ever seeing it.
  • Developer-gated copy updates: every tiny text change has to go through a pull request. 🫠
  • Merge conflicts: two branches touch the same translation file and now someone has to untangle it.

Treat JSON as Generated Output

A cleaner workflow is to keep your strings in a translation system with a dashboard where your whole team can review and verify strings and AI-generated translations, then generate and sync everywhere.

That is the basic idea behind i18nexus. Your source strings, target translations, descriptions, AI context, and review status live in a cloud dashboard for your whole team to manage and review. Your app still gets normal JSON files for libraries like next-intl, i18next, or react-intl, but those files are generated from one source of truth.

The nice part: your translations are pre-translated with AI using context from your app, and your developer workflow does not change at all. When Claude, Codex, or another AI agent creates or updates copy, it simply uses the i18nexus MCP instead of directly editing local JSON files.

A Next.js + next-intl Example

Say you already have a Next.js app using next-intl. From your app directory, run:

npx @i18nexus/cli init

The init flow walks you through signing up or signing in, creates a new i18nexus project, uploads your existing translations, and configures the MCP for your coding agent.

Now your translations live in the i18nexus dashboard as the source of truth. You can invite teammates, review strings, verify AI-generated translations, and keep context attached to the copy your app actually uses.

i18nexus dashboard showing strings and translations

The CLI also sets up i18nexus listen, which watches for translation updates and syncs them back into your local project. Those updates can come from the dashboard, from another developer, or from an AI agent working through the i18nexus MCP!

For production builds, it also adds an i18nexus pull pre-build command so your app pulls the latest translations before bundling. That way, deployments include the newest reviewed copy from i18nexus.

So after init, you can keep working the way you already do. Your AI agent edits your app code, i18nexus manages the translations, and everyone stays synced with the latest copy.

Why This Holds Up Better

You get a workflow where translation keys are centralized, AI translation can use real context, generated JSON stays predictable, and human reviewers can still approve the final wording.

For small apps, this keeps things tidy. For larger apps, it prevents your localization workflow from turning into a pile of hand-edited JSON files that nobody fully trusts.

Translation files should be boring. Your source of truth should be reliable. That is the whole point. 🙂

Level up your localization

It only takes a few minutes to streamline your translations forever.

Get started