731cd58ba8
- New "Tisch" section replaces the old projects block on the home page - Objects: project cards from Directus (flip on tap, link to detail page), thesis ticket with countdown, server card, currently-reading book from Hardcover (with skeleton), polaroid photo, sticker - Desktop: Framer Motion drag with momentum, elastic table edges, tilt that follows throw velocity, bring-to-front, "Tidy up" and "Mess it up" - Mobile: card deck, swipe the top card away (distance or velocity), prev/next buttons, live counter, tap to flip - Both layouts are server rendered and switched by CSS, so content is visible without JavaScript and nothing jumps on hydration - Taps after a drag no longer flip cards - New named colors polaroid/bookcover instead of raw hex classes - Texts in de/en, i18n key check extended Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
232 lines
8.7 KiB
JSON
232 lines
8.7 KiB
JSON
{
|
||
"nav": {
|
||
"home": "Start",
|
||
"about": "Über mich",
|
||
"projects": "Projekte",
|
||
"contact": "Kontakt"
|
||
},
|
||
"common": {
|
||
"back": "Zurück",
|
||
"backToHome": "Zurück zur Startseite",
|
||
"backToProjects": "Zurück zu den Projekten",
|
||
"viewAllProjects": "Alle Projekte ansehen",
|
||
"loading": "Lädt..."
|
||
},
|
||
"consent": {
|
||
"title": "Datenschutz-Einstellungen",
|
||
"description": "Wir nutzen optionale Dienste (Analytics und Chat), um die Seite zu verbessern. Du kannst deine Auswahl jederzeit ändern.",
|
||
"essential": "Essentiell",
|
||
"analytics": "Analytics",
|
||
"chat": "Chatbot",
|
||
"alwaysOn": "Immer aktiv",
|
||
"acceptAll": "Alles akzeptieren",
|
||
"acceptSelected": "Auswahl akzeptieren",
|
||
"rejectAll": "Alles ablehnen",
|
||
"hide": "Ausblenden"
|
||
},
|
||
"home": {
|
||
"hero": {
|
||
"kicker": "Dennis Konkol — Osnabrück",
|
||
"claim": "Ich hoste mein halbes Leben selbst. Den Rest programmiere ich.",
|
||
"intro": "IT-Admin in Osnabrück und Masterstudent. Ab Februar 2027 kümmere ich mich hauptberuflich um Microsoft 365, bis dahin um meine Masterarbeit.",
|
||
"countdown": "{days, plural, one {Noch # Tag.} other {Noch # Tage.}}",
|
||
"ctaWork": "Projekte ansehen",
|
||
"ctaContact": "Schreib mir"
|
||
},
|
||
"tisch": {
|
||
"title": "Der Tisch.",
|
||
"allProjects": "Alle Projekte",
|
||
"hintBoard": "Alles hier lässt sich anfassen. Werfen, stapeln, Karten umdrehen.",
|
||
"hintDeck": "Wisch die Karten zur Seite, tipp zum Umdrehen.",
|
||
"tidy": "Aufräumen",
|
||
"mess": "Durcheinander",
|
||
"flip": "tippen zum Umdrehen",
|
||
"details": "Zum Projekt",
|
||
"prev": "Vorherige Karte",
|
||
"next": "Nächste Karte",
|
||
"ticketTitle": "Masterarbeit · Abgabe 15.02.2027",
|
||
"ticketDays": "Tage bis zur Abgabe",
|
||
"ticketJob": "ab 02/2027 fest als M365-Administrator",
|
||
"ticketStub": "Jetzt",
|
||
"serverTitle": "Was bei mir läuft",
|
||
"servers": {
|
||
"ingress": {
|
||
"name": "netcup · Eingang",
|
||
"detail": "Traefik, Dokploy, diese Seite"
|
||
},
|
||
"mail": {
|
||
"name": "IONOS · Post und Fotos",
|
||
"detail": "mailcow, Immich"
|
||
},
|
||
"home": {
|
||
"name": "Zuhause · Raspberry Pi",
|
||
"detail": "Home Assistant, Paperless"
|
||
}
|
||
},
|
||
"serverNote": "Gesichert mit CrowdSec, tägliche Backups mit restic.",
|
||
"bookLabel": "Lese gerade",
|
||
"bookFallback": "Zur Bibliothek",
|
||
"photoCaption": "Das bin ich.",
|
||
"sticker": "Läuft auf eigenen Servern."
|
||
},
|
||
"about": {
|
||
"title": "Hinter den Kulissen",
|
||
"p1": "Schon seit ich meinen ersten eigenen Server aufgesetzt habe, lässt mich das Thema Infrastruktur nicht mehr los. Als Student in Osnabrück verbringe ich meine Zeit am liebsten damit, moderne Web-Apps mit Next.js zu bauen oder mobile Lösungen mit Flutter zu entwickeln.",
|
||
"p2": "Aber für mich hört es nicht beim Code auf: Ich liebe es, meine eigenen Docker-Cluster zu managen, CI/CD-Pipelines zu optimieren und sicherzustellen, dass alles stabil und sicher läuft. DevOps ist für mich kein Job-Titel, sondern eine Lebenseinstellung.",
|
||
"p3": "Wenn die Server einmal ohne mich klarkommen, findet man mich beim Laufen durch Osnabrück, beim Gaming oder beim Experimentieren mit neuen Automationen in n8n.",
|
||
"funFactTitle": "Hardcore analog",
|
||
"funFactBody": "Trotz Cloud und Automatisierung: Meine wichtigsten Pläne entstehen immer noch mit Füller auf Papier. Das ist mein Anker im digitalen Chaos.",
|
||
"techStackTitle": "Mein Tech Stack",
|
||
"hobbiesTitle": "Wenn ich nicht code",
|
||
"techStack": {
|
||
"categories": {
|
||
"frontendMobile": "Frontend & Mobile",
|
||
"backendDevops": "Backend & DevOps",
|
||
"toolsAutomation": "Tools & Automation",
|
||
"securityAdmin": "Security & Admin"
|
||
},
|
||
"items": {
|
||
"selfHostedServices": "Self-hosted Services"
|
||
}
|
||
},
|
||
"hobbies": {
|
||
"selfHosting": "Self-Hosting & DevOps",
|
||
"gaming": "Gaming",
|
||
"gameServers": "Game-Server einrichten",
|
||
"jogging": "Joggen um den Kopf freizubekommen und aktiv bleiben"
|
||
},
|
||
"currentlyReading": {
|
||
"title": "Aktuell am Lesen",
|
||
"progress": "Fortschritt"
|
||
},
|
||
"readBooks": {
|
||
"title": "Gelesene Bücher",
|
||
"finishedAt": "Beendet am",
|
||
"showMore": "{count} weitere anzeigen",
|
||
"showLess": "Weniger anzeigen",
|
||
"readMore": "Weiterlesen",
|
||
"collapseReview": "Weniger anzeigen",
|
||
"empty": "In Hardcover fertig gelesene Bücher erscheinen hier automatisch."
|
||
},
|
||
"activity": {
|
||
"idleStatus": "System im Leerlauf / Geist aktiv",
|
||
"codingNow": "Gerade am Coden",
|
||
"gaming": "Am Zocken",
|
||
"listening": "Hört gerade",
|
||
"inGame": "Im Spiel"
|
||
}
|
||
},
|
||
"projects": {
|
||
"title": "Ausgewählte Arbeiten",
|
||
"subtitle": "Projekte, die meine Grenzen erweitert haben.",
|
||
"featured": "Featured",
|
||
"viewAll": "Archiv ansehen",
|
||
"noProjects": "Noch keine Projekte."
|
||
},
|
||
"contact": {
|
||
"title": "Kontakt",
|
||
"subtitle": "Du willst zusammenarbeiten oder hast Fragen zu meinen Projekten? Schreib mir gerne!",
|
||
"getInTouch": "Melde dich",
|
||
"getInTouchBody": "Ich bin immer offen für neue Chancen, spannende Projekte oder einfach einen Tech-Talk.",
|
||
"info": {
|
||
"email": "E-Mail",
|
||
"location": "Ort",
|
||
"locationValue": "Osnabrück, Deutschland"
|
||
},
|
||
"form": {
|
||
"title": "Nachricht senden",
|
||
"sending": "Sende Nachricht…",
|
||
"send": "Nachricht senden",
|
||
"labels": {
|
||
"name": "Name",
|
||
"email": "E-Mail",
|
||
"subject": "Betreff",
|
||
"message": "Nachricht",
|
||
"requiredMarker": "*"
|
||
},
|
||
"placeholders": {
|
||
"name": "Dein Name",
|
||
"email": "dein@email.de",
|
||
"subject": "Worum geht’s?",
|
||
"message": "Erzähl mir mehr über dein Projekt oder deine Frage…"
|
||
},
|
||
"errors": {
|
||
"nameRequired": "Name ist erforderlich",
|
||
"nameMin": "Name muss mindestens 2 Zeichen haben",
|
||
"emailRequired": "E-Mail ist erforderlich",
|
||
"emailInvalid": "Bitte eine gültige E-Mail-Adresse eingeben",
|
||
"subjectRequired": "Betreff ist erforderlich",
|
||
"subjectMin": "Betreff muss mindestens 3 Zeichen haben",
|
||
"messageRequired": "Nachricht ist erforderlich",
|
||
"messageMin": "Nachricht muss mindestens 10 Zeichen haben"
|
||
},
|
||
"characters": "{count} Zeichen"
|
||
}
|
||
}
|
||
},
|
||
"projects": {
|
||
"shared": {
|
||
"featured": "Hervorgehoben"
|
||
},
|
||
"list": {
|
||
"title": "Meine Projekte",
|
||
"intro": "Stöbere durch mein Portfolio – von Web-Anwendungen bis Mobile Apps. Jedes Projekt zeigt unterschiedliche Skills und Technologien.",
|
||
"searchPlaceholder": "Projekte durchsuchen...",
|
||
"all": "Alle",
|
||
"noResults": "Keine Projekte passen zu deinen Filtern.",
|
||
"clearFilters": "Filter zurücksetzen"
|
||
},
|
||
"detail": {
|
||
"links": "Projektlinks",
|
||
"liveDemo": "Live-Demo",
|
||
"liveNotAvailable": "Keine Live-Demo verfügbar",
|
||
"viewSource": "Quellcode ansehen",
|
||
"techStack": "Tech-Stack"
|
||
}
|
||
},
|
||
"footer": {
|
||
"role": "Software Engineer",
|
||
"madeIn": "Made in Germany",
|
||
"legalNotice": "Impressum",
|
||
"privacyPolicy": "Datenschutz",
|
||
"privacySettings": "Datenschutz-Einstellungen",
|
||
"privacySettingsTitle": "Datenschutz-Banner wieder anzeigen",
|
||
"builtWith": "Built with",
|
||
"aiDisclaimer": "Einige Inhalte dieser Seite können KI-generiert sein.",
|
||
"backToTop": "Nach oben",
|
||
"systemsOnline": "Systeme online"
|
||
},
|
||
"notFound": {
|
||
"title": "Seite nicht gefunden",
|
||
"description": "Der gesuchte Inhalt wurde verschoben, gelöscht oder hat nie existiert.",
|
||
"returnHome": "Zurück zur Startseite",
|
||
"goBack": "Zurück",
|
||
"exploreWork": "Arbeiten entdecken",
|
||
"exploreWorkDesc": "Vielleicht findest du, was du suchst, in meinem Projektarchiv?",
|
||
"viewProjects": "Projekte ansehen",
|
||
"errorReport": "Fehlerbericht"
|
||
},
|
||
"books": {
|
||
"title": "Bibliothek",
|
||
"subtitle": "Bücher, die meine Denkweise verändert und mein Wissen erweitert haben.",
|
||
"backHome": "Zurück",
|
||
"empty": "Noch keine Bücher."
|
||
},
|
||
"about": {
|
||
"status": "Status",
|
||
"aiAssistant": "KI-Assistent",
|
||
"library": "Bibliothek",
|
||
"viewAll": "Alle ansehen",
|
||
"myGear": "Mein Gear",
|
||
"gearMain": "Main",
|
||
"gearPC": "PC",
|
||
"gearServer": "Server",
|
||
"gearOS": "OS",
|
||
"curiosity": "Neugier über die Softwareentwicklung hinaus.",
|
||
"connect": "Verbinden",
|
||
"email": "E-Mail",
|
||
"code": "Code",
|
||
"professional": "Beruflich"
|
||
}
|
||
}
|