Intl Format Previewer

Preview how dates, numbers, currencies, lists and relative times are formatted in any locale with the browser Intl API.

Sample values

Columns

Preview for 10 locales

LocaleDate (medium)TimeNumberCurrencyPercentRelative time
en-USSep 3, 20262:30 PM1,234,567.891$1,234,567.8925.6%3 days ago
en-GB3 Sept 202614:301,234,567.891US$1,234,567.8925.6%3 days ago
de-DE03.09.202614:301.234.567,8911.234.567,89 $25,6 %vor 3 Tagen
fr-FR3 sept. 202614:301 234 567,8911 234 567,89 $US25,6 %il y a 3 jours
pl-PL3 wrz 202614:301 234 567,8911 234 567,89 USD25,6%3 dni temu
ja-JP2026/09/0314:301,234,567.891$1,234,567.8925.6%3 日前
ar-EG٠٣‏/٠٩‏/٢٠٢٦٢:٣٠ م١٬٢٣٤٬٥٦٧٫٨٩١‏١٬٢٣٤٬٥٦٧٫٨٩ US$٢٥٫٦٪؜قبل ٣ أيام
hi-IN3 सित॰ 20262:30 pm12,34,567.891$12,34,567.8925.6%3 दिन पहले
pt-BR3 de set. de 202614:301.234.567,891US$ 1.234.567,8925,6%há 3 dias
zh-CN2026年9月3日14:301,234,567.891US$1,234,567.8925.6%3天前

Runs in your browser. Files are not uploaded unless the tool says otherwise.

Translating text is only half of localization

A date like 03/09/2026 is 9 March in the United States and 3 September almost everywhere else. Germans write 1.234.567,89 where Americans write 1,234,567.89, and Swiss French uses an apostrophe as the grouping character. Arabic and Hindi locales can use their own digits. Currency symbols move from before to after the number, and the first day of the week is Monday in Europe, Sunday in the US and Saturday in much of the Middle East. Hardcoding any of these makes an app look foreign even when every string is translated.

What this tool shows

  • Dates and times in the four standard dateStyle lengths and the short time style.
  • Numbers, currency, percent and units through Intl.NumberFormat, including the numbering system the locale resolves to.
  • Lists through Intl.ListFormat, which knows that Spanish switches "y" to "e" before words starting with "i".
  • Relative time through Intl.RelativeTimeFormat, so "3 days ago" becomes "vor 3 Tagen" without a translation key.
  • First day of the week where the browser exposes week info.

Everything comes from your browser's ICU data, so the output is what a JavaScript app would render for that user. Results can differ slightly between Chrome, Firefox and Safari, which is a good reminder not to snapshot-test formatted output across engines.

Practical rules

  • Never format dates, numbers or currencies by string concatenation. Pass raw values to the formatter and let the locale decide.
  • Keep the locale for formatting separate from the UI language when users ask for it: a Swiss user may want German text with de-CH numbers.
  • In ICU messages use {amount, number, ::currency/EUR} and {when, date, medium} so translators can reorder words without touching formatting.
  • Store timestamps in UTC and format them in the user's time zone at render time.

SimpleLocalize keeps ICU formatting arguments intact during auto-translation and validates them with QA checks. Try the ICU Message Syntax Tester to preview a full message with number and date arguments.

More translation tools

Manage translations with SimpleLocalize

  • Import the same file formats you just converted or checked
  • Auto-translate with DeepL, Google, OpenAI, Claude or Gemini using your own API keys
  • Free plan for small projects, no credit card required
Start for free
No credit card required5-minute setup