Skip to content

Latest commit

 

History

History
133 lines (100 loc) · 4.6 KB

localization.md

File metadata and controls

133 lines (100 loc) · 4.6 KB
productId title components githubLabel packageName
x-date-pickers
Date and Time Pickers - Translated components
LocalizationProvider
component: pickers
@mui/x-date-pickers

Translated components

Date and Time Pickers support translations between languages.

As with all MUI X components, you can modify text and translations inside the Date and Time Pickers. You can find all the translation keys supported in the source in the GitHub repository.

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

:::warning This page focuses on translating the text inside the Date and Time Pickers. If you need to change the formatting of the text to conform to a given locale, visit the Date format and localization page. :::

Set translations globally

Using the theme

To translate all your components from @mui/x-date-pickers and @mui/x-date-pickers-pro, import the locale from @mui/x-date-pickers (see the list of supported locales below).

import { createTheme, ThemeProvider } from '@mui/material/styles';
import { deDE } from '@mui/x-date-pickers/locales';

const theme = createTheme(
  {
    palette: {
      primary: { main: '#1976d2' },
    },
  },
  deDE, // use 'de' locale for UI texts (start, next month, ...)
);

function App({ children }) {
  return <ThemeProvider theme={theme}>{children}</ThemeProvider>;
}

Note that createTheme accepts any number of arguments. If you are already using the translations of the core components or the translations of the data grid, you can add deDE as a new argument.

import { createTheme, ThemeProvider } from '@mui/material/styles';
import { deDE as dataGridDeDE } from '@mui/x-data-grid';
import { deDE as coreDeDE } from '@mui/material/locale';
import { deDE } from '@mui/x-date-pickers/locales';

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

function App({ children }) {
  return <ThemeProvider theme={theme}>{children}</ThemeProvider>;
}

Using LocalizationProvider

If you want to pass language translations without using createTheme and ThemeProvider, you can directly load the language translations from the @mui/x-date-pickers or @mui/x-date-pickers-pro package and pass them to the LocalizationProvider.

import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { deDE } from '@mui/x-date-pickers/locales';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';

<LocalizationProvider
  localeText={deDE.components.MuiLocalizationProvider.defaultProps.localeText}
>
  <DatePicker />
</LocalizationProvider>;

Set translations locally

You can also customize the translations of a single component.

If you want to customize some translations on specific component, you can use the localeText prop exposed by all our pickers.

<DatePicker localeText={{ clearButtonLabel: 'Empty' }} />

:::info This method can be combined with the ones shown above.

If you pass a localization through LocalizationProvider or the theme, and you provide translation keys through the localeText prop of a picker at the same time, then only the latter translation keys will be overridden.

<LocalizationProvider
  localeText={{ clearButtonLabel: 'Empty', todayButtonLabel: 'Now' }}
>
  <DatePicker
    // ...other props
    localeText={{
      clearButtonLabel: 'Vider',
    }}
  />
</LocalizationProvider>

This will produce the following result:

  • "Today" button with text Now taken from the Localization Provider's localeText prop
  • "Clear" button with text Vider overridden by the Date Picker's localeText prop

:::

Supported locales

{{"demo": "PickersLocalisationTableNoSnap.js", "hideToolbar": true, "bg": "inline"}}

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 date and time picker components depend on the Localization strategy of the whole library.