gitscope
← marzneshin / v0.3.0-alpha / dashboard/src/features/language-switch/index.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/language-switch/index.tsx · TypeScript
Blame Raw
 1import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@marzneshin/components";
 2import { Languages } from "lucide-react";
 3import { FC } from "react";
 4import { useTranslation } from "react-i18next";
 5
 6export const LanguageSwitch: FC = () => {
 7    const { i18n } = useTranslation();
 8
 9    const changeLanguage = (lang: string) => {
10        i18n.changeLanguage(lang);
11    };
12
13    return (
14        <DropdownMenu>
15            <DropdownMenuTrigger asChild>
16                <Button variant="outline" className="bg-secondary-foreground text-primary-foreground" size="icon">
17                    <Languages className="transition-all scale-100 rotate-0 dark:scale-0 dark:-rotate-90 h-[1rem] w-[1rem]" />
18                    <span className="sr-only">Toggle Language</span>
19                </Button>
20            </DropdownMenuTrigger>
21            <DropdownMenuContent align="end">
22                <DropdownMenuItem onClick={() => changeLanguage("en")}>
23                    English
24                </DropdownMenuItem>
25                <DropdownMenuItem onClick={() => changeLanguage("ku-kur")}>
26                    Kurdî (Kur)
27                </DropdownMenuItem>
28                <DropdownMenuItem onClick={() => changeLanguage("ku-sor-latin")}>
29                    Kurdî (Sor-Latin)
30                </DropdownMenuItem>
31                <DropdownMenuItem onClick={() => changeLanguage("ku-sor")}>
32                    Kurdî (Sor)
33                </DropdownMenuItem>
34                <DropdownMenuItem onClick={() => changeLanguage("fa")}>
35                    فارسی
36                </DropdownMenuItem>
37                <DropdownMenuItem onClick={() => changeLanguage("fa")}>
38                    Русский
39                </DropdownMenuItem>
40            </DropdownMenuContent>
41        </DropdownMenu>
42    );
43};