2023-11-05 14:13:34 +03:00
|
|
|
|
2024-01-04 20:17:54 -05:00
|
|
|
import NavDropdown from "react-bootstrap/NavDropdown";
|
|
|
|
import { useTranslation } from "react-i18next";
|
|
|
|
import { BsGlobe2 } from "react-icons/bs";
|
2023-11-05 14:13:34 +03:00
|
|
|
|
|
|
|
function generateSublist() {
|
2024-01-04 20:17:54 -05:00
|
|
|
const { i18n } = useTranslation();
|
|
|
|
const out: JSX.Element[] = [];
|
|
|
|
const languages = i18n.options.resources;
|
|
|
|
for (const key in languages) {
|
|
|
|
const lang: any = languages[key].translation;
|
|
|
|
const staticKey = key;
|
|
|
|
out.push((
|
|
|
|
<NavDropdown.Item key={"language-"+key} className="nav-icon" onClick={()=>i18n.changeLanguage(staticKey)}>
|
|
|
|
<span>{lang.language?.flag}</span>
|
|
|
|
<span>{lang.language?.name}</span>
|
|
|
|
</NavDropdown.Item>
|
|
|
|
));
|
|
|
|
}
|
|
|
|
return <>{out}</>;
|
2023-11-05 14:13:34 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
export default function LanguagePicker() {
|
2024-01-04 20:17:54 -05:00
|
|
|
return (
|
|
|
|
<NavDropdown id="languages-dropdown" title={<><span className="nav-icon"><BsGlobe2/></span></>}>
|
|
|
|
{generateSublist()}
|
|
|
|
</NavDropdown>
|
|
|
|
);
|
2023-11-05 23:22:17 +03:00
|
|
|
}
|