Documentation

World readiness and Culture

Find what your existing code still assumes about one language or one culture, fix it in small tasks, and see what each market expects of dates, numbers, money, addresses and names.

An internationalized project has two sections under Internationalization in its workbench. World readiness is about the code you already have. Culture is about the markets you sell in. The Globalization 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 Globalization 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.

Internationalization
Storefront
English source · 5 languages · checked 2 hours ago at 3f2c9a1
  • World readiness
  • Culture
  • Overview
  • Strings
  • Suggestions
  • Exchange
  • Contributors
  • Automations
  • Settings
World readiness

What the code on the default branch still assumes about one language or one culture. Fix it in small tasks; the Globalization check keeps new code from adding more.

Check again

Checked 3f2c9a1 2 hours ago

Findings214In 1,284 files read
Since the last check-18Compared with the check 3 days ago
What it found
  • 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
Files · Text written into the code37 files
  1. src/components/checkout/summary.tsxText written into the code: 18 · Number formatted without the locale: 418
    1. 42:9Order summary
    2. 57:13Free shipping on every order
    3. 61:11Apply code
  2. src/app/account/page.tsxText written into the code: 11 · Sentence assembled from parts: 211
  3. 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 Globalization 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.

Internationalization
Storefront
English source · 5 languages · checked 2 hours ago at 3f2c9a1
  • World readiness
  • Culture
  • Overview
  • Strings
  • Suggestions
  • Exchange
  • Contributors
  • Automations
  • Settings
Culture

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.

Change in the wizard
Formatter
next-intl's formatteruseFormatter from next-intl
Money per market
German: EUR · Japanese: JPY · Arabic: SAR · Swedish: SEK
MarketsValues that differ from the source market are in full ink.
MarketNumbersMoneyDateTimeWeek startsPaper
Englishen-US · Source12,345.678$1,299.503/14/264:05 PMSunLetter
Germande-DE12.345,6781.299,50 €14.03.2616:05MonA4
Japaneseja-JP12,345.678¥1,3002026/03/1416:05SunA4
Arabicar-SA١٢٬٣٤٥٫٦٧٨‏١٬٢٩٩٫٥٠ ر.س.‏١٤‏/٣‏/٢٠٢٦٤:٠٥ مSunA4
Swedishsv-SE12 345,6781 299,50 kr2026-03-1416:05MonA4

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 with Intl and 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:

GroupWhat it shows
Calendar and timeCalendars 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 moneyDigits, a number, a percentage and a price
Measurement and paperMetric, US customary or both; road distance, temperature, height and body weight; A4 or Letter
People and textWhether 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
AddressAn 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 internationalized 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.