Files
MediaCrawler/webui/src/components/layout/LanguageSwitch.tsx
T
程序员阿江(Relakkes) 65ddaa8828 refactor: 将 WebUI 源码纳入仓库,移除打包产物
- 新增 webui/ 前端源码目录(React+Vite+TypeScript+Tailwind)
- 删除 api/webui/ 中旧的打包静态资源
- 更新 .gitignore 忽略 api/webui/ 构建输出和 webui/node_modules
- 更新 README 增加前端构建说明
2026-07-01 23:05:03 +08:00

37 lines
1.1 KiB
TypeScript

import { Globe } from 'lucide-react'
import { useTranslation } from 'react-i18next'
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from '@/components/ui/select'
const languages = [
{ code: 'zh-CN', label: '中文' },
{ code: 'en-US', label: 'EN' },
]
export function LanguageSwitch() {
const { i18n } = useTranslation()
const currentLang = languages.find(l => l.code === i18n.language) || languages[0]
return (
<Select value={i18n.language} onValueChange={(lang) => i18n.changeLanguage(lang)}>
<SelectTrigger className="w-20 h-7 text-xs font-mono border-cyber-border-subtle bg-cyber-bg-tertiary/50 hover:border-cyber-neon-cyan/50 transition-colors">
<Globe className="w-3 h-3 mr-1 text-cyber-text-secondary" />
<SelectValue>{currentLang.label}</SelectValue>
</SelectTrigger>
<SelectContent>
{languages.map((lang) => (
<SelectItem key={lang.code} value={lang.code} className="text-xs font-mono">
{lang.label}
</SelectItem>
))}
</SelectContent>
</Select>
)
}