> ## Documentation Index
> Fetch the complete documentation index at: https://docs.graphy.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Formatting & locale

The renderer turns raw values into display text — numbers, dates and currencies — locale-aware. The engine emits raw values; formatting happens here, at paint time.

## Two locales

Two locales are in play:

* **Parsing locale** — how ambiguous *input* is interpreted (is `01/02/2024` Jan 2 or Feb 1?). Set on the data via [`data._metadata.parsingLocale`](/sdk-next/data-structure#schema); defaults to `en-GB`.
* **Formatting locale** — how *output* is displayed (separators, month names, currency symbols). Set with the `formattingLocale` prop on `GraphProvider`.

When you don't set `formattingLocale`, display falls back to the parsing locale.

```tsx theme={null}
<GraphProvider input={spec} data={data} formattingLocale="en-US">
  <GraphRenderer />
</GraphProvider>
```

## Supported locales

`en-GB`, `en-US`, `ar`, `pt-PT`.

```tsx theme={null}
import type { Locale } from '@graphysdk/viz-engine';
```

## Number formatting

Locale governs separators and symbols; the [`numberFormat` config](/sdk-next/config/number-format) governs the rest — decimals, abbreviation, and any prefix/suffix — and can override the locale's separators when you need to:

```tsx theme={null}
config({
  numberFormat: { decimals: 0, abbreviation: 'auto', prefix: '$' },
});
```

## Currencies and dates

Currency and date columns detected during [value-format inference](/sdk-next/data-structure#value-format-detection) are formatted for the active locale automatically — a `£1,250` column renders with the right symbol and grouping, a date axis with locale-appropriate month names — without extra configuration.

## Related

* [Number format](/sdk-next/config/number-format) — the `numberFormat` options in full
* [Data structure](/sdk-next/data-structure) — parsing locale and value formats
