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
126/223
Edit
Armenianhy-AMhyAM
128/223
Edit
Banglabn-BDbnBD
137/223
Edit
Belarusianbe-BYbeBY
94/223
Edit
Bulgarianbg-BGbgBG
128/223
Edit
Catalanca-EScaES
Done 🎉
Edit
Chinese (Hong Kong)zh-HKzhHK
141/223
Edit
Chinese (Simplified)zh-CNzhCN
141/223
Edit
Chinese (Taiwan)zh-TWzhTW
141/223
Edit
Croatianhr-HRhrHR
146/223
Edit
Czechcs-CZcsCZ
141/223
Edit
Danishda-DKdaDK
131/223
Edit
Dutchnl-NLnlNL
131/223
Edit
Finnishfi-FIfiFI
130/223
Edit
Frenchfr-FRfrFR
158/223
Edit
Germande-DEdeDE
195/223
Edit
Greekel-GRelGR
120/223
Edit
Hebrewhe-ILheIL
137/223
Edit
Hungarianhu-HUhuHU
132/223
Edit
Icelandicis-ISisIS
124/223
Edit
Indonesianid-IDidID
195/223
Edit
Italianit-ITitIT
219/223
Edit
Japaneseja-JPjaJP
149/223
Edit
Koreanko-KRkoKR
192/223
Edit
Norwegian (Bokmål)nb-NOnbNO
134/223
Edit
Norwegian (Nynorsk)nn-NOnnNO
195/223
Edit
Persianfa-IRfaIR
129/223
Edit
Polishpl-PLplPL
149/223
Edit
Portuguesept-PTptPT
Done 🎉
Edit
Portuguese (Brazil)pt-BRptBR
222/223
Edit
Romanianro-ROroRO
136/223
Edit
Russianru-RUruRU
139/223
Edit
Slovaksk-SKskSK
141/223
Edit
Spanishes-ESesES
Done 🎉
Edit
Swedishsv-SEsvSE
130/223
Edit
Turkishtr-TRtrTR
136/223
Edit
Ukrainianuk-UAukUA
139/223
Edit
Urdu (Pakistan)ur-PKurPK
128/223
Edit
Vietnamesevi-VNviVN
128/223
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