--- import PageLayout from '@/layouts/PageLayout.astro'; import Icon from '@/components/ui/primitives/Icon/Icon.astro'; import Badge from '@/components/ui/data-display/Badge/Badge.astro'; import Card from '@/components/ui/data-display/Card/Card.astro'; import Button from '@/components/ui/form/Button/Button.astro'; import { Hero } from '@/components/hero'; import { getCollection } from 'astro:content'; import { useTranslations } from '@/i18n/utils'; import type { Locale } from '@/i18n/ui'; interface Props { locale: Locale; } const { locale } = Astro.props; const t = useTranslations(locale); const items = await getCollection('projects', ({ data }) => !data.draft); const features = items.sort((a, b) => a.data.order - b.data.order); const iconMap: Record = { 'budget-uebersicht': 'layout-dashboard', 'transaktionen': 'list', 'kategorien-berichte': 'pie-chart', 'mehrere-konten': 'wallet', 'sparziele': 'target', 'datenschutz-sicherheit': 'shield-check', }; const featuresHref = t('nav.features.href'); --- {t('features.badge')}

{t('features.title').split(' ').slice(0, -1).join(' ')} {t('features.title').split(' ').slice(-1)[0]}

{t('features.description')}

{features.map((feature) => { const slug = feature.id.replace(/\.mdx?$/, ''); const icon = iconMap[slug] ?? 'check-circle'; return (

{feature.data.title}

{feature.data.description}

{feature.data.tags.map((tag) => ( {tag} ))}
); })}

{t('features.cta.title')}

{t('features.cta.desc')}