* Created tr.json for Turkish Translation * updated file for trLocale * Updated for Turkish Locale * Update i18n.ts * Update i18n.ts * Update package.json * Update package.json * Update i18n.d.ts * Update user_setting.go * Update package.json * Update web/src/components/LocaleSelect.tsx Co-authored-by: boojack <stevenlgtm@gmail.com> * Update package.json * Update LocaleSelect.tsx * Update LocaleSelect.tsx * Update i18n.ts * Update i18n.ts --------- Co-authored-by: boojack <stevenlgtm@gmail.com>
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { Option, Select } from "@mui/joy";
|
||
import { FC } from "react";
|
||
import Icon from "./Icon";
|
||
|
||
interface Props {
|
||
value: Locale;
|
||
onChange: (locale: Locale) => void;
|
||
className?: string;
|
||
}
|
||
|
||
const LocaleSelect: FC<Props> = (props: Props) => {
|
||
const { onChange, value, className } = props;
|
||
|
||
const handleSelectChange = async (locale: Locale) => {
|
||
onChange(locale);
|
||
};
|
||
|
||
return (
|
||
<Select
|
||
className={`!min-w-[10rem] w-auto whitespace-nowrap ${className ?? ""}`}
|
||
startDecorator={<Icon.Globe className="w-4 h-auto" />}
|
||
value={value}
|
||
onChange={(_, value) => handleSelectChange(value as Locale)}
|
||
>
|
||
<Option value="en">English</Option>
|
||
<Option value="zh">简体中文</Option>
|
||
<Option value="vi">Tiếng Việt</Option>
|
||
<Option value="fr">French</Option>
|
||
<Option value="nl">Nederlands</Option>
|
||
<Option value="sv">Svenska</Option>
|
||
<Option value="de">German</Option>
|
||
<Option value="es">Español</Option>
|
||
<Option value="uk">Українська</Option>
|
||
<Option value="ru">Русский</Option>
|
||
<Option value="it">Italiano</Option>
|
||
<Option value="hant">繁體中文</Option>
|
||
<Option value="tr">Turkish</Option>
|
||
<Option value="ko">한국어</Option>
|
||
</Select>
|
||
);
|
||
};
|
||
|
||
export default LocaleSelect;
|