--- import '../styles/base.css'; import Header from '../components/Header.astro'; import Footer from '../components/Footer.astro'; import { langFromUrl, switchLang, t, type Lang } from '../i18n/ui'; interface Props { title: string; description: string; lang?: Lang; ogImage?: string; /** Pages that only make sense as the answer to an action, such as the contact form result. */ noindex?: boolean; /** The surface the page opens on. 'night' for pages that start on a dark hero, so the header is drawn in its night tone from the first frame instead of switching after load. */ tone?: 'paper' | 'night'; } const lang: Lang = Astro.props.lang ?? langFromUrl(Astro.url); const { title, description, noindex, tone = 'paper' } = Astro.props; const ui = t(lang); const fullTitle = title === ui.meta.home.title ? title : `${title}. ${ui.meta.siteName}`; const canonical = new URL(Astro.url.pathname, Astro.site); const altEn = new URL(switchLang(Astro.url, 'en'), Astro.site); const altDe = new URL(switchLang(Astro.url, 'de'), Astro.site); --- {fullTitle} {noindex && }