2023-10-17 17:54:55 -07:00
|
|
|
import FormControl from '@mui/material/FormControl';
|
|
|
|
import FormHelperText from '@mui/material/FormHelperText';
|
|
|
|
import Link from '@mui/material/Link';
|
|
|
|
import MenuItem from '@mui/material/MenuItem';
|
2023-10-19 12:02:54 -07:00
|
|
|
import Select, { SelectChangeEvent } from '@mui/material/Select';
|
2023-10-17 17:54:55 -07:00
|
|
|
import Stack from '@mui/material/Stack';
|
|
|
|
import Typography from '@mui/material/Typography';
|
|
|
|
import React from 'react';
|
|
|
|
|
|
|
|
import globalize from 'scripts/globalize';
|
|
|
|
import { DATE_LOCALE_OPTIONS, LANGUAGE_OPTIONS } from './constants';
|
2023-10-19 12:02:54 -07:00
|
|
|
import { DisplaySettingsValues } from './types';
|
2023-10-17 17:54:55 -07:00
|
|
|
|
2023-10-19 12:02:54 -07:00
|
|
|
interface LocalizationPreferencesProps {
|
|
|
|
onChange: (event: SelectChangeEvent) => void;
|
|
|
|
values: DisplaySettingsValues;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function LocalizationPreferences({ onChange, values }: Readonly<LocalizationPreferencesProps>) {
|
2023-10-17 17:54:55 -07:00
|
|
|
return (
|
2023-10-19 12:02:54 -07:00
|
|
|
<Stack spacing={2}>
|
2023-10-17 17:54:55 -07:00
|
|
|
<Typography variant='h2'>{globalize.translate('Localization')}</Typography>
|
|
|
|
|
|
|
|
<FormControl fullWidth>
|
|
|
|
<Select
|
|
|
|
aria-describedby='display-settings-language-description'
|
2023-10-19 12:02:54 -07:00
|
|
|
inputProps={{
|
|
|
|
name: 'language'
|
|
|
|
}}
|
2023-10-17 17:54:55 -07:00
|
|
|
label={globalize.translate('LabelDisplayLanguage')}
|
2023-10-19 12:02:54 -07:00
|
|
|
onChange={onChange}
|
|
|
|
value={values.language}
|
2023-10-17 17:54:55 -07:00
|
|
|
>
|
|
|
|
{ ...LANGUAGE_OPTIONS.map(({ value, label }) => (
|
|
|
|
<MenuItem key={value } value={value}>{ label }</MenuItem>
|
|
|
|
))}
|
|
|
|
</Select>
|
|
|
|
<FormHelperText component={Stack} id='display-settings-language-description'>
|
|
|
|
<span>{globalize.translate('LabelDisplayLanguageHelp')}</span>
|
|
|
|
<Link
|
|
|
|
href='https://github.com/jellyfin/jellyfin'
|
|
|
|
rel='noopener noreferrer'
|
|
|
|
target='_blank'
|
|
|
|
>
|
|
|
|
{globalize.translate('LearnHowYouCanContribute')}
|
|
|
|
</Link>
|
|
|
|
</FormHelperText>
|
|
|
|
</FormControl>
|
|
|
|
|
|
|
|
<FormControl fullWidth>
|
2023-10-19 12:02:54 -07:00
|
|
|
<Select
|
|
|
|
inputProps={{
|
|
|
|
name: 'dateTimeLocale'
|
|
|
|
}}
|
|
|
|
label={globalize.translate('LabelDateTimeLocale')}
|
|
|
|
onChange={onChange}
|
|
|
|
value={values.dateTimeLocale}
|
|
|
|
>
|
2023-10-17 17:54:55 -07:00
|
|
|
{...DATE_LOCALE_OPTIONS.map(({ value, label }) => (
|
|
|
|
<MenuItem key={value} value={value}>{label}</MenuItem>
|
|
|
|
))}
|
|
|
|
</Select>
|
|
|
|
</FormControl>
|
|
|
|
</Stack>
|
|
|
|
);
|
|
|
|
}
|