diff --git a/site/src/components/language-selector/language-selector.tsx b/site/src/components/language-selector/language-selector.tsx new file mode 100644 index 0000000..95d018a --- /dev/null +++ b/site/src/components/language-selector/language-selector.tsx @@ -0,0 +1,40 @@ +import { ComboboxItem, Select } from "@mantine/core"; +import { useState } from "react"; +import i18n from "../../lib/i18n/i18n"; +import { + SupportedLanguage, + getLanguageName, + languages, +} from "../../lib/i18n/locales"; + +export const LanguageSelector = () => { + const [language, setLanguage] = useState({ + value: i18n.language, + label: getLanguageName(i18n.language as SupportedLanguage), + }); + + const languageOptions = Object.entries(languages).map(([code, name]) => ({ + value: code, + label: name, + })); + + const handleLanguageChange = (option: string) => { + i18n.changeLanguage(option as SupportedLanguage); + setLanguage({ + value: option, + label: getLanguageName(option as SupportedLanguage), + }); + }; + + return ( +