2024-03-26 16:36:18 +01:00
|
|
|
---
|
2024-03-28 18:30:52 +01:00
|
|
|
import { locales, defaultLocale } from "astro-i18n-aut";
|
2024-03-26 16:36:18 +01:00
|
|
|
import { useTranslations } from "../i18n/utils";
|
|
|
|
|
|
|
|
function translatePath(lang: string) {
|
2024-03-27 01:51:42 +01:00
|
|
|
const split = Astro.url.pathname.split("/").filter((s) => s.length);
|
|
|
|
|
|
|
|
if (split[0] in locales) {
|
|
|
|
split.shift();
|
|
|
|
}
|
|
|
|
|
|
|
|
if (lang === defaultLocale) {
|
|
|
|
return `/${split.join("/")}`;
|
|
|
|
}
|
|
|
|
|
|
|
|
return `/${[lang, ...split].join("/")}`;
|
2024-03-26 16:36:18 +01:00
|
|
|
}
|
|
|
|
|
2024-04-06 19:11:06 +02:00
|
|
|
const flags = {
|
|
|
|
de: "🇩🇪",
|
|
|
|
en: "🇬🇧",
|
|
|
|
};
|
|
|
|
|
2024-04-03 18:07:54 +02:00
|
|
|
const t = useTranslations(Astro.url);
|
2024-03-26 16:36:18 +01:00
|
|
|
---
|
|
|
|
|
2024-04-07 00:29:52 +02:00
|
|
|
{
|
|
|
|
Object.entries(locales).map(([lang, label]) => (
|
|
|
|
<a
|
|
|
|
class="flex gap-2 items-center"
|
|
|
|
href={translatePath(lang)}
|
|
|
|
data-astro-prefetch
|
|
|
|
>
|
|
|
|
<span class="text-xs">{flags[label as keyof typeof flags]}</span>
|
|
|
|
{t(label as "de")}
|
|
|
|
</a>
|
|
|
|
))
|
|
|
|
}
|