import { useState, useEffect } from 'react' import { Select, Space } from 'antd' import { GlobalOutlined } from '@ant-design/icons' import { useTranslation } from 'react-i18next' import { useMediaQuery } from 'react-responsive' const LanguageSwitcher: React.FC = () => { const { i18n } = useTranslation() const isMobile = useMediaQuery({ maxWidth: 768 }) const [currentLang, setCurrentLang] = useState(i18n.language || 'en') useEffect(() => { setCurrentLang(i18n.language || 'en') }, [i18n.language]) const languages = [ { value: 'zh-CN', label: '简体中文' }, { value: 'zh-TW', label: '繁體中文' }, { value: 'en', label: 'English' } ] const handleChange = async (value: string) => { setCurrentLang(value) await i18n.changeLanguage(value) // 保存到 localStorage(统一使用 i18n_language) localStorage.setItem('i18n_language', value) // 同时保存到 i18nextLng(i18next 默认使用的 key,用于兼容) localStorage.setItem('i18nextLng', value) // 刷新页面以应用 Ant Design 的 locale 和所有翻译 window.location.reload() } return (