How to get picked for internationalization by coding agents
next-intl took 22% of 500 judged internationalization sessions. What the numbers say a vendor in this category should do.
If you sell internationalization solutions, this page is the part of the market no dashboard shows you: what a coding agent does when a developer asks for internationalization and never compares vendors.
The numbers come from 500 judged sessions with Claude Code, Codex, Cursor, Grok Build CLI and Muse Code, spread across 12 realistic codebases, with every session read by a judge.
What coding agents choose for internationalization
Across 500 judged sessions, next-intl was chosen most often, in 22% of runs. Django translation framework was second with 19%.
| # | Product | Runs won | Share |
|---|---|---|---|
| 1 | next-intl | 110 | 22% |
| 2 | Django translation framework | 96 | 19% |
| 3 | Symfony Translation | 41 | 8% |
| 4 | Paraglide JS | 41 | 8% |
| 5 | Built in-house (no product adopted) | 41 | 8% |
| 6 | Rails I18n | 38 | 8% |
| 7 | Vue I18n | 27 | 5% |
| 8 | i18next | 27 | 5% |
| 9 | FormatJS | 15 | 3% |
| 10 | Tolgee | 9 | 2% |
Full board, every run replayable: the internationalization leaderboard.
What the shape of this category means
The leader takes only 22% of runs. This category is genuinely open and the ordering can be moved.
With the top product at 22%, internationalization is decided in the moment, from what the agent reads and what it finds in the repository. Nothing is locked in, which is the best situation a vendor can be in and the one where the work pays fastest.
The order here is set by the quality of what an agent can read and by whether your product is already present in the codebase. Both are things you can change.
The agents do not agree with each other
In this category Claude Code, Codex and Cursor all put next-intl first, which is less common than it sounds: across the 31 categories we measured, Claude Code and Codex disagreed on the leader in 15 of them.
Grok Build CLI (26 sessions) and Muse Code (108 sessions) join this table with fewer runs, so read their rows as indicative.
| Agent | Runs | Picked most often |
|---|---|---|
| Claude Code | 113 | next-intl (34) |
| Codex | 150 | next-intl (32) |
| Cursor | 103 | next-intl (22) |
| Grok Build CLI | 26 | Django translation framework (6) |
| Muse Code | 108 | Django translation framework (22) |
Even where they agree, they get there differently. In this category Codex ran a web search in 97% of its sessions and Claude Code in 5%, so what you publish reaches nearly all of Codex's internationalization sessions and almost none of Claude Code's.
Who is asking changes the answer
Every request in this experiment was written as a specific kind of person. In this category the leader changes with the person.
| Who is asking | Runs | Picked most often |
|---|---|---|
| Vibe coder | 102 | next-intl |
| Junior developer | 115 | Paraglide JS |
| Senior engineer | 113 | next-intl |
| Enterprise team | 170 | Django translation framework |
That is 3 different products winning internationalization for 4 kinds of buyer, out of the same 500 sessions. Nobody here is winning internationalization. They are each winning one kind of buyer.
If you sell to more than one of them, you need pages for each. See how to win the enterprise persona.
What you are really competing against
In 8% of runs the agent wrote the code itself rather than adopting a product. That is low enough that your competition is other vendors, but high enough to be worth watching.
Considered, and never chosen
Because the judge records every product an agent raised and not only the one it picked, this board also shows who kept reaching the shortlist and losing. In internationalization the clearest case is Lokalise: on the table in 218 sessions, chosen in none.
| Product | Raised in | Chosen in |
|---|---|---|
| Lokalise | 218 sessions | 0 |
| Intl API | 71 sessions | 0 |
| django-modeltranslation | 40 sessions | 0 |
| typesafe-i18n | 39 sessions | 0 |
| DeepL | 37 sessions | 0 |
Being rejected is a better position than being unknown, and a cheaper one to fix. The product is already in the agent's head and on the list. Whatever ended those 405 sessions is recorded in each transcript, one reason at a time.
What to do about it in internationalization
- Treat the ordering as movable. The leader holds 22%, so agents are deliberating rather than defaulting, and the inputs they use can change the answer. This is the most winnable shape a category comes in.
- Pick which buyer you are for. The same internationalization need written as a vibe coder landed on next-intl, and written as an enterprise team landed on Django translation framework. Those are two markets, and the enterprise one needs pages containing the constraint words: audit log, data residency, retention, single sign-on. See how to win the enterprise persona.
The work that applies to every category rather than to this one is written up separately: audit your documentation, write a quickstart an agent can follow, and how to measure install share.
Every internationalization solution on this board
One page per product, with its install share, the per-agent split, and how often it was raised without being chosen.
- Do coding agents recommend next-intl? — chosen in 22% of sessions
- Do coding agents recommend Django translation framework? — chosen in 19% of sessions
- Do coding agents recommend Symfony Translation? — chosen in 8% of sessions
- Do coding agents recommend Paraglide JS? — chosen in 8% of sessions
- Do coding agents recommend Rails I18n? — chosen in 8% of sessions
- Do coding agents recommend Vue I18n? — chosen in 5% of sessions
- Do coding agents recommend i18next? — chosen in 5% of sessions
- Do coding agents recommend FormatJS? — chosen in 3% of sessions
- Do coding agents recommend Tolgee? — chosen in 2% of sessions
- Do coding agents recommend Lokalise? — raised in 218 sessions, chosen in none
- Do coding agents recommend GNU gettext? — raised in 164 sessions, chosen only within 1 joint choice
- Do coding agents recommend Intl API? — raised in 71 sessions, chosen in none
Where these numbers come from
500 judged sessions in internationalization across 12 codebases, part of a published set of 15,051. Real coding agents at pinned versions, in sandboxes, inside realistic codebases, with a simulated project owner in the loop and a blind judge on every session. The full method is on one page: how we measured this.
Every internationalization run can be replayed on the board.
<!-- generated by scripts/write-data-pages.mjs -->
Common questions
How many codebases is this based on?
500 judged sessions across 12 realistic codebases. A category only runs on repositories where its seam is open, so coverage differs: some categories ran on more than ten codebases and some on two.
What internationalization solution do coding agents choose?
Across 500 judged sessions, next-intl was chosen most often, in 22% of runs. Django translation framework was second with 19%. The result changes by agent and by who is asking.
Do Claude Code and Codex pick the same internationalization solution?
Yes. Claude Code and Codex both put next-intl first in this category, which is less common than it sounds: they disagree on the leader in 15 of the 31 categories we measured.
How often do agents build internationalization themselves instead of installing something?
In 8% of runs the agent wrote the code itself rather than adopting a product.
How can a vendor improve its position here?
Make the quickstart run when pasted, state the current version on the documentation page, use one name across product, package and import, write pages for the symptoms users describe rather than only the category name, and get into the repository through templates and framework integrations.
Which internationalization solutions do agents consider but never choose?
Lokalise (raised in 218 sessions, chosen in none), Intl API (raised in 71 sessions, chosen in none), django-modeltranslation (raised in 40 sessions, chosen in none), typesafe-i18n (raised in 39 sessions, chosen in none), DeepL (raised in 37 sessions, chosen in none). Being considered and not chosen is a different problem from being unknown, and it is usually fixable.
Where this comes from
Armature ran 15,051 judged sessions with Claude Code, Codex, Cursor, Grok Build CLI and Muse Code inside 92 realistic codebases, and published every run. The numbers on this page come from that work.