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