Как я могу изменить язык пользовательского интерфейса выбора даты и часовой пояс по умолчанию?
7 ответов
Если вы используете адаптер day.js
import "dayjs/locale/es";
import "dayjs/locale/en";
<LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale="es">
or
<LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale="en">
с i18
<LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale=
{i18n?.language}>
с моментом.js
import 'moment/locale/es'
import 'moment/locale/en'
@MUI5 решение
import * as React from 'react';
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
import {es} from 'date-fns/locale'
import {TextField} from "@mui/material";
export const MyDatePicker = () => {
const [value, setValue] = React.useState(new Date())
const handleChange = (newValue) => {
setValue(newValue)
}
return (
<LocalizationProvider locale={es} dateAdapter={AdapterDateFns}>
<DatePicker
label="Date desktop"
inputFormat="dd-MMMM-yyyyy"
value={value}
onChange={handleChange}
renderInput={(params) => <TextField {...params} />}
/>
</LocalizationProvider>
)
}
Другое решение - использовать
date-fns
в дополнение к решению @Shikyo:
import DateFnsUtils from "@date-io/date-fns";
import { fr } from "date-fns/locale";
<MuiPickersUtilsProvider locale={fr} utils={DateFnsUtils}>
...
</MuiPickersUtilsProvider>
Он находится внизу страницы документации https://material-ui-pickers.dev/api/DatePicker.
<DatePicker
okLabel="Text"
clearLabel="Text"
cancelLabel="Text"
...
/>
Вы должны импортировать локали в зависимости от адаптера, вот возможное решение с dayjs в документации Material UI:
«локаль» устарела. используйте это вместо этого:
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>;
Следующая страница документа выглядит так, как вы хотите: https://material-ui-pickers.firebaseapp.com/localization/date-fns
На этой странице есть пример изменения локали с помощью пункта меню. В частности, если вы хотите предоставить только один язык, вы можете пропустить locale
в компонент MuiPickersUtilsProvider
,