30 lines
958 B
TypeScript
Raw Normal View History

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";
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}</>;
}
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
}