website-astro/src/components/LanguageSwitcher.astro

27 lines
672 B
Plaintext

---
import { l, astroI18n } from "astro-i18n";
import { I18nProvider } from "astro-i18n/components";
// get the locale currently in use
const currentLocale = astroI18n.langCode;
// get all the locales available on the website and remove the one currently in use
const availableLocales = astroI18n.langCodes.filter(
(locale) => locale !== currentLocale
);
// current path
const currentRoute = Astro.url.pathname;
---
<I18nProvider>
<ul role="list">
{
// create a list of available alternative locale
availableLocales.map((locale) => (
<li>
<a href={l(currentRoute as any, {}, {}, locale as any)}>{locale}</a>
</li>
))
}
</ul>
</I18nProvider>