Skip to content
Twentyfirst UIHalo

Text and locale

The kits ship no fixed copy. Every visible string, aria-label and placeholder goes through L(); numbers, money and dates go through Intl.

Labels are keyed by their built-in English text, with {placeholders}. Pass your own map to UIProvider (or call setLabels); a complete German set ships as @twentyfirstmedia/ui-core/labels/de.json, the full key list as labels/en.json. Main texts are also props (title, placeholder, approveLabel …), and props win.

The locale drives formatNumber, formatMoney, formatDate, calendar month and weekday names and the parsing in MoneyInput. Switch EN/DE in the header to see this page's example change.

tsx
import de from "@twentyfirstmedia/ui-core/labels/de.json";

<UIProvider locale="de-DE" currency="EUR" weekStart={1} labels={de}>
  <App />
</UIProvider>

L("Remove {name}", { name: "Mara" });   // "Mara entfernen"
formatMoney(1240.5);                    // "1.240,50 €"
Approval neededAtlas · SupportCommunication4 min

Send this email to ida@northwind.io

Atlas is set to drafts only, so it needs your OK.

Hi Ida, happy to add 40 seats before your renewal on 1 May. The quote is attached. Best, Mara
Escalates to the owner in 1:52 hOpen trace
C · No, discardRefund €10.00 to the card ending 4242Lukas · Yesterday 18:02
B · Yes, with a changeAdd TXT record ops-testMara Ellis · 08:10“Use TTL 300 instead”