Core API

Message Formatting

pico-intl uses ICU-lite syntax for common app copy: interpolation, pipe plurals, flat select clauses, and native Intl formatting.

ts
{
  "price": "{price, number, ::currency/USD}",
  "items": "{{count}} item | {{count}} items",
  "role": "{{role, select, admin{Admin} other{User}}}"
}

Cheatsheet

Use caseSyntax
Interpolation Hello, {{name}}
Plural {{count}} item | {{count}} items
Select {{role, select, admin{Admin} other{User}}}
Currency {price, number, ::currency/USD}
Date {date, date, ::yMMMd}

Honest boundary

pico-intl core does not implement exact plural selectors, offsets, deeply nested MessageFormat trees, or rich text element formatting. Use FormatJS when your product needs those semantics.