Skip to content
+

Data Grid - Localization

The Data Grid's localization features provide the appropriate translations and formatting for users around the world.

The default locale of MUI X is English (United States). To use other locales, follow the instructions below.

Translation keys

You can use the localeText prop to pass in your own text and translations. You can find all the translation keys supported in the source in the GitHub repository. In the following example, the label of the quick filter placeholder is customized.

Press Enter to start editing

Locale text

The default locale of MUI X is English (United States).

You can use the theme to configure the locale text:

import { createTheme, ThemeProvider } from '@mui/material/styles';
import { DataGrid } from '@mui/x-data-grid';
import { bgBG } from '@mui/x-data-grid/locales';
// Or import { bgBG } from '@mui/x-data-grid-pro/locales';
// Or import { bgBG } from '@mui/x-data-grid-premium/locales';

const theme = createTheme(
  {
    palette: {
      primary: { main: '#1976d2' },
    },
  },
  bgBG,
);

<ThemeProvider theme={theme}>
  <DataGrid />
</ThemeProvider>;

Note that createTheme() accepts any number of arguments. If you are already using the translations of the core components, you can add bgBG as a new argument. The same import works for Data Grid Pro as it's an extension of Data Grid.

import { createTheme, ThemeProvider } from '@mui/material/styles';
import { DataGrid } from '@mui/x-data-grid';
import { bgBG } from '@mui/x-data-grid/locales';
import { bgBG as pickersBgBG } from '@mui/x-date-pickers/locales';
import { bgBG as coreBgBG } from '@mui/material/locale';

const theme = createTheme(
  {
    palette: {
      primary: { main: '#1976d2' },
    },
  },
  bgBG, // x-data-grid translations
  pickersBgBG, // x-date-pickers translations
  coreBgBG, // core translations
);

<ThemeProvider theme={theme}>
  <DataGrid />
</ThemeProvider>;

If you want to pass language translations directly to the Data Grid without using createTheme() and ThemeProvider, you can directly load the language translations from @mui/x-data-grid/locales.

import { DataGrid } from '@mui/x-data-grid';
import { nlNL } from '@mui/x-data-grid/locales';

<DataGrid localeText={nlNL.components.MuiDataGrid.defaultProps.localeText} />;

Supported locales

LocaleBCP 47 language tagImport nameCompletionSource file
Arabic (Sudan)ar-SDarSD
121/219
Edit
Armenianhy-AMhyAM
124/219
Edit
Banglabn-BDbnBD
133/219
Edit
Belarusianbe-BYbeBY
90/219
Edit
Bulgarianbg-BGbgBG
124/219
Edit
Chinese (Hong Kong)zh-HKzhHK
137/219
Edit
Chinese (Simplified)zh-CNzhCN
137/219
Edit
Chinese (Taiwan)zh-TWzhTW
137/219
Edit
Croatianhr-HRhrHR
142/219
Edit
Czechcs-CZcsCZ
137/219
Edit
Danishda-DKdaDK
124/219
Edit
Dutchnl-NLnlNL
127/219
Edit
Finnishfi-FIfiFI
126/219
Edit
Frenchfr-FRfrFR
154/219
Edit
Germande-DEdeDE
191/219
Edit
Greekel-GRelGR
116/219
Edit
Hebrewhe-ILheIL
133/219
Edit
Hungarianhu-HUhuHU
128/219
Edit
Icelandicis-ISisIS
120/219
Edit
Indonesianid-IDidID
191/219
Edit
Italianit-ITitIT
215/219
Edit
Japaneseja-JPjaJP
124/219
Edit
Koreanko-KRkoKR
188/219
Edit
Norwegian (Bokmål)nb-NOnbNO
130/219
Edit
Norwegian (Nynorsk)nn-NOnnNO
191/219
Edit
Persianfa-IRfaIR
125/219
Edit
Polishpl-PLplPL
145/219
Edit
Portuguesept-PTptPT
132/219
Edit
Portuguese (Brazil)pt-BRptBR
218/219
Edit
Romanianro-ROroRO
132/219
Edit
Russianru-RUruRU
135/219
Edit
Slovaksk-SKskSK
137/219
Edit
Spanishes-ESesES
132/219
Edit
Swedishsv-SEsvSE
124/219
Edit
Turkishtr-TRtrTR
132/219
Edit
Ukrainianuk-UAukUA
135/219
Edit
Urdu (Pakistan)ur-PKurPK
124/219
Edit
Vietnamesevi-VNviVN
124/219
Edit

You can find the source in the GitHub repository.

To create your own translation or to customize the English text, copy this file to your project, make any changes needed and import the locale from there. Note that these translations of the Data Grid component depend on the Localization strategy of the whole library.

RTL Support

Right-to-left languages such as Arabic, Persian, or Hebrew are supported. Follow this guide to use them.

The example below demonstrates how to use an RTL language (Arabic) with the Data Grid.

Press Enter to start editing

Pagination number formatting

To format large numbers in the pagination component, customize the paginationDisplayedRows with the following code:

import { DataGrid } from '@mui/x-data-grid';

// ======================================================
// TODO: replace with your locale
import { frFR as locale } from '@mui/x-data-grid/locales';
const LOCALE = 'fr-FR';
// ======================================================

function formatNumber(value: number | string) {
  if (typeof Intl !== 'undefined' && Intl.NumberFormat) {
    try {
      const result = new Intl.NumberFormat(LOCALE).format(Number(value));
      return result === 'NaN' ? String(value) : result;
    } catch {
      return String(value);
    }
  }
  return String(value);
}

function paginationDisplayedRows({
  from,
  to,
  count,
  estimated,
}: {
  from: number;
  to: number;
  count: number;
  estimated?: number;
}) {
  if (!estimated) {
    return `${formatNumber(from)}${formatNumber(to)} sur ${
      count !== -1 ? formatNumber(count) : `plus de ${formatNumber(to)}`
    }`;
  }
  const estimatedLabel =
    estimated && estimated > to
      ? `environ ${formatNumber(estimated)}`
      : `plus de ${formatNumber(to)}`;
  return `${formatNumber(from)}${formatNumber(to)} sur ${
    count !== -1 ? formatNumber(count) : estimatedLabel
  }`;
}

const localeText = {
  ...locale.components.MuiDataGrid.defaultProps.localeText,
  paginationDisplayedRows,
};

function App() {
  return (
    <DataGrid
      rowCount={1000000}
      localeText={localeText}
    />
  )
}
Press Enter to start editing