https://dev.kronoz.win/r/marzneshin.git
1import {
2 DropdownMenuSub,
3 DropdownMenuSubContent,
4 DropdownMenuItem,
5 DropdownMenuSubTrigger,
6 DropdownMenuPortal
7} from "@marzneshin/common/components";
8import { Languages } from "lucide-react";
9import { FC } from "react";
10import { useTranslation } from "react-i18next";
11import { cn } from "@marzneshin/common/utils";
12
13const LanguageItem = ({ language, title }: { language: string, title: string }) => {
14 const { i18n } = useTranslation();
15
16 const changeLanguage = (lang: string) => {
17 i18n.changeLanguage(lang);
18 };
19 return (
20 <DropdownMenuItem
21 className={cn({ "bg-primary text-secondary": i18n.language === language })}
22 onClick={() => changeLanguage(language)}
23 >
24 {title}
25 </DropdownMenuItem>
26 );
27}
28
29export const LanguageSwitchMenu: FC = () => {
30 const { t } = useTranslation();
31
32 return (
33 <DropdownMenuSub>
34 <DropdownMenuSubTrigger arrowDir="left">
35 <div className="hstack items-center gap-2 w-full justify-end">
36 <span>{t("language")}</span>
37 <Languages className="size-[1rem]" />
38 </div>
39 </DropdownMenuSubTrigger>
40 <DropdownMenuPortal>
41 <DropdownMenuSubContent>
42 <LanguageItem language="en" title="English" />
43 <LanguageItem language="kmr" title="Kurdî Kurmancî" />
44 <LanguageItem language="kur" title="Kurdî Soranî" />
45 <LanguageItem language="ckb" title="کوردی سورانی" />
46 <LanguageItem language="fa" title="فارسی" />
47 <LanguageItem language="ru" title="Русский" />
48 <LanguageItem language="ar" title="العربیة" />
49 <LanguageItem language="zh-cn" title="简体中文" />
50 </DropdownMenuSubContent>
51 </DropdownMenuPortal>
52 </DropdownMenuSub>
53 );
54};