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