| import Button from '@/components/ui/Button' | |
| import { useCallback } from 'react' | |
| import { controlButtonVariant } from '@/lib/constants' | |
| import { useTranslation } from 'react-i18next' | |
| import { useSettingsStore } from '@/stores/settings' | |
| /** | |
| * Component that toggles the language between English and Chinese. | |
| */ | |
| export default function LanguageToggle() { | |
| const { i18n } = useTranslation() | |
| const currentLanguage = i18n.language | |
| const setLanguage = useSettingsStore.use.setLanguage() | |
| const setEnglish = useCallback(() => { | |
| i18n.changeLanguage('en') | |
| setLanguage('en') | |
| }, [i18n, setLanguage]) | |
| const setChinese = useCallback(() => { | |
| i18n.changeLanguage('zh') | |
| setLanguage('zh') | |
| }, [i18n, setLanguage]) | |
| if (currentLanguage === 'zh') { | |
| return ( | |
| <Button | |
| onClick={setEnglish} | |
| variant={controlButtonVariant} | |
| tooltip="Switch to English" | |
| size="icon" | |
| side="bottom" | |
| > | |
| 中 | |
| </Button> | |
| ) | |
| } | |
| return ( | |
| <Button | |
| onClick={setChinese} | |
| variant={controlButtonVariant} | |
| tooltip="切换到中文" | |
| size="icon" | |
| side="bottom" | |
| > | |
| EN | |
| </Button> | |
| ) | |
| } | |