mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-28 15:01:34 +08:00
Re-applies changes from #9471 that were overwritten by the i18n PR: - URL-based routing via react-router-dom (NavLink, Routes, BrowserRouter) - Replace emoji icons with lucide-react in ConfigPage and SkillsPage - Sidebar layout for ConfigPage, SkillsPage, and LogsPage - Custom dropdown Select component (SelectOption) in CronPage - Remove all non-functional rounded borders across the UI - Fixed header with proper content offset Made-with: Cursor
28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { useI18n } from "@/i18n/context";
|
|
|
|
/**
|
|
* Compact language toggle — shows a clickable flag that switches between
|
|
* English and Chinese. Persists choice to localStorage.
|
|
*/
|
|
export function LanguageSwitcher() {
|
|
const { locale, setLocale, t } = useI18n();
|
|
|
|
const toggle = () => setLocale(locale === "en" ? "zh" : "en");
|
|
|
|
return (
|
|
<button
|
|
type="button"
|
|
onClick={toggle}
|
|
className="group relative inline-flex items-center gap-1.5 px-2 py-1 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
title={t.language.switchTo}
|
|
aria-label={t.language.switchTo}
|
|
>
|
|
{/* Show the *other* language's flag as the clickable target */}
|
|
<span className="text-base leading-none">{locale === "en" ? "🇨🇳" : "🇬🇧"}</span>
|
|
<span className="hidden sm:inline font-display tracking-wide uppercase text-[0.65rem]">
|
|
{locale === "en" ? "中文" : "EN"}
|
|
</span>
|
|
</button>
|
|
);
|
|
}
|