An internationalised project has two sections under Internationalisation in its workbench. World readiness is about the code you already have. Culture is about the markets you sell in. The Globalisation check keeps new code from adding to what World readiness finds.
World readiness
World readiness lists what the code on your default branch still assumes about one language or one culture. Coroid reads the code with the same rules the Globalisation check applies to a change, without running it, and reports every finding. Nothing here blocks anything: it is existing code, and you fix it at your own pace.
- World readinessCode that assumes one language
- CultureWhat each market expects
- OverviewWhere each language stands
- StringsEvery string in every language
- SuggestionsWaiting for a decision
- ExchangeFiles for other tools
- ContributorsWho may suggest wording
- AutomationsNightly and on-merge work
- SettingsLanguages, access and spend
What the code on the default branch still assumes about one language or one culture. Fix it in small tasks; the Globalisation check keeps new code from adding more.
Checked 3f2c9a1 2 hours ago
- Text written into the codeBlocked in new code by defaultText people read, written into the code instead of the catalogue.142-9Create a fix task
- Sentence assembled from partsBlocked in new code by defaultA sentence joined from parts. Word order differs between languages.23-3
- Number formatted without the localeA number formatted without the reader's locale.31-4
- List joined by handA list people read is joined with a comma or "and", which other languages write differently.12-2
- Enter handled while a word is composedPressing Enter to choose a Chinese, Japanese or Korean word submits the form before the word is chosen.6
- src/components/checkout/summary.tsxText written into the code: 18 · Number formatted without the locale: 418
- 42:9
Order summary
- 57:13
Free shipping on every order
- 61:11
Apply code
- 42:9
- src/app/account/page.tsxText written into the code: 11 · Sentence assembled from parts: 211
- src/components/cart/empty-state.tsxText written into the code: 77
World readiness in the workbench: what the code on the default branch still assumes about one language or culture, per issue code, with the files to fix and a fix task. Illustrative data.
The section shows:
- Findings, with how many files were read, and the change since the last check.
- What it found: one row per kind of finding, with its count. Text written into the code and sentences assembled from parts are marked Blocked in new code by default, because the Globalisation check sends back a change that adds them.
- Files: the files with the most findings first. Choose a kind to see only its files, and a file to see each finding with its line and the text found.
When you open World readiness and the code on the default branch has changed since the last check, Coroid checks it again. Check again reads it now. A project with more than 20,000 findings lists the first 20,000; the counts include every finding.
The kinds of finding and how to fix each are in
Design for every market. Code you leave out on
purpose takes an i18n-ignore comment with its reason, and whole folders can
be left out in the configuration file (see
What the check reads).
Fix tasks
Owners and admins choose Create a fix task on a kind of finding. Coroid files one task for that kind, with the files and lines to fix and how to fix them. A task covers at most 15 files or 150 findings, worst files first, so it stays reviewable; when it is merged, the next check shows what is left.
The task waits for you to start it. Asking again while it is open opens the same task. The row then says whether the fix task is in progress, done or stopped.
Culture
Culture shows what each of the project's markets expects of dates, numbers, money, addresses, phone numbers and names. The facts come from published data: the Unicode CLDR for formats, calendars, units and paper, Google's address data for addresses and postal codes, and libphonenumber for phone numbers. Code that formats through the reader's locale gets most of this right on its own.
- World readinessCode that assumes one language
- CultureWhat each market expects
- OverviewWhere each language stands
- StringsEvery string in every language
- SuggestionsWaiting for a decision
- ExchangeFiles for other tools
- ContributorsWho may suggest wording
- AutomationsNightly and on-merge work
- SettingsLanguages, access and spend
What each market expects of dates, numbers, money, addresses, phone numbers and names, from the Unicode CLDR and the address data postal services publish. Code that formats through the reader's locale gets these right on its own.
- Formatter
- next-intl's formatter
useFormatter from next-intl - Money per market
- German: EUR · Japanese: JPY · Arabic: SAR · Swedish: SEK
| Market | Numbers | Money | Date | Time | Week starts | Paper |
|---|---|---|---|---|---|---|
| Englishen-US · Source | 12,345.678 | $1,299.50 | 3/14/26 | 4:05 PM | Sun | Letter |
| Germande-DE | 12.345,678 | 1.299,50 € | 14.03.26 | 16:05 | Mon | A4 |
| Japaneseja-JP | 12,345.678 | ¥1,300 | 2026/03/14 | 16:05 | Sun | A4 |
| Arabicar-SA | ١٢٬٣٤٥٫٦٧٨ | ١٬٢٩٩٫٥٠ ر.س. | ١٤/٣/٢٠٢٦ | ٤:٠٥ م | Sun | A4 |
| Swedishsv-SE | 12 345,678 | 1 299,50 kr | 2026-03-14 | 16:05 | Mon | A4 |
Sources: Unicode CLDR 48, Google's address data (libaddressinput) and libphonenumber. Samples use the same moment and amounts in every market.
Culture in the workbench: each market writes the same number, price, date and time its own way, and starts its week and prints on its own paper. Values come from the reader's browser and Unicode CLDR.
At the top:
- Formatter. How the code formats numbers, dates and money for the reader,
for example next-intl's formatter, react-intl's, i18next's formatting, Angular's
pipes or plain
Intl. Without one, agents format withIntland the reader's locale. - Money per market. The currency each market pays in. Each market starts with its region's own currency.
Markets shows every market side by side: numbers, money, a date, a time, the day weeks start on, road distance and paper size. All of them use the same moment and amounts. Values that differ from the source market are in full ink.
Open a market to see the rest:
| Group | What it shows |
|---|---|
| Calendar and time | Calendars in use and the same date in each, 12- or 24-hour clock, the first day of the week, the weekend, how weeks are numbered |
| Numbers and money | Digits, a number, a percentage and a price |
| Measurement and paper | Metric, US customary or both; road distance, temperature, height and body weight; A4 or Letter |
| People and text | Whether family names come first, phone numbers in national and international form, postal codes with an example, text direction, how lists are joined and how text sorts |
| Address | An address as the post writes it in that market, also in Latin script where the market uses another, which fields are required or written in capitals, and what the market calls each field |
Change the formatter and the money per market in the wizard's Culture step
(Change in the wizard). The choices are written to the configuration file
as world.formatter and world.currencies, and need CLI 1.14.0 or later;
the wizard moves an older pin.
What agents are told
Developer agents working on an internationalised project get the formatter and, for each market, only what differs from the source market: its currency, calendars, digits, clock, week start and weekend, paper, units, name order, text direction and postal codes. They are also told to keep postal codes and phone numbers as text, store phone numbers in E.164 form, take a name in one field unless the market needs its parts, and accept every script in validation.