--- import {getCollection, type CollectionEntry} from "astro:content"; import {astroI18n, createGetStaticPaths, t} from "astro-i18n"; import PageLayout from "@layouts/PageLayout.astro"; import LanguageWarning from "@components/LanguageWarning.astro"; import EloTable from "@components/EloTable.svelte"; import {l} from "../../util/util"; import { Image } from "astro:assets"; export const getStaticPaths = createGetStaticPaths(async () => { let posts = await getCollection("rules", value => value.id.split("/")[0] === astroI18n.locale); const germanPosts = await getCollection("rules", entry => entry.id.split("/")[0] === astroI18n.fallbackLocale); germanPosts.forEach(value => { if (posts.find(post => post.id.split("/")[1] === value.id.split("/")[1])) { return; } else { posts.push(value); } }); const modes = await getCollection("modes"); const publics = await getCollection("publics"); return posts.map((page) => ({ props: { page, german: page.id.split("/")[0] != astroI18n.locale, mode: modes.find(value => value.id === page.id.split("/")[1].split(".")[0]), publics: publics.filter(value => value.data.gamemode.id === page.id.split("/")[1].split(".")[0]), }, params: { mode: page.slug.split("/")[1], }, }), ); }); interface Props { page: CollectionEntry<"rules">, mode: CollectionEntry<"modes">, publics: CollectionEntry<"publics">[], german: boolean } const {page, german, mode, publics} = Astro.props; const {Content} = await page.render(); ---

{t(`${page.data.translationKey}.title`)}

{mode && mode.data.ranked && ( {t("rules.ranking")} )} {publics && publics.length != 0 && (
{publics.map(value => ( {value.data.name} ))}
{t("rules.publics")}
)}
{german && ( )}