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 case | Syntax |
|---|---|
| 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.