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