feat: plakat redesign phase 4 (chat window, contact, footer, cleanup) (#77)
- AI chat moves into a window/sheet, opened from a new speech-bubble card on the desk; it now respects the chatbot consent and asks before sending anything to n8n (previously it ignored the consent) - Contact as red poster section with big mail address and the form on a paper card; validation errors are finally shown inline (aria-invalid, role=alert) - Footer as ink strip with dk0 wordmark, legal links and a button to reopen the privacy settings - "About me" in the header opens the about window on the home page - Remove the old About section and its parts (BentoChat, ActivityFeed, CurrentlyReading, ReadBooks), the unused ChatWidget, Projects and BentoGrid, their tests, wrappers, loaders, types and texts - scripts/directus-cleanup-redesign.mjs: dry run by default, --apply archives hobbies, tech stack categories and old content pages and deletes four unused message overrides after a full JSON backup; run only after the redesign is live on production Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+18
-75
@@ -67,6 +67,8 @@
|
||||
"bookLabel": "Lese gerade",
|
||||
"bookFallback": "Zur Bibliothek",
|
||||
"photoCaption": "Das bin ich.",
|
||||
"chatCard": "Frag mich etwas.",
|
||||
"chatCardHint": "KI-Chat öffnen",
|
||||
"sticker": "Läuft auf eigenen Servern."
|
||||
},
|
||||
"windows": {
|
||||
@@ -127,6 +129,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
"title": "frag mich · KI",
|
||||
"welcome": "Hi! Frag mich etwas über Dennis, seine Projekte oder sein Setup.",
|
||||
"consent": "Der Chat läuft über einen KI-Dienst in meinem n8n. Deine Nachrichten werden dafür verarbeitet und kurz gespeichert. Erst wenn du zustimmst, wird etwas gesendet.",
|
||||
"allow": "Chat erlauben",
|
||||
"placeholder": "Deine Frage …",
|
||||
"send": "Senden",
|
||||
"error": "Gerade keine Verbindung. Versuch es gleich noch mal.",
|
||||
"thinking": "Antwort wird geschrieben",
|
||||
"note": "Antworten kommen von einer KI und können danebenliegen."
|
||||
},
|
||||
"contact": {
|
||||
"title": "kontakt",
|
||||
"body": "Für Projekte, Fragen zu meinem Setup oder einfach so. Ich antworte normalerweise innerhalb von ein, zwei Tagen.",
|
||||
@@ -135,63 +148,9 @@
|
||||
"form": "Zum Formular"
|
||||
}
|
||||
},
|
||||
"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!",
|
||||
"title": "Schreib mir.",
|
||||
"subtitle": "Für Projekte, Fragen zu meinem Setup oder einfach so. Ich antworte normalerweise innerhalb von ein, zwei Tagen.",
|
||||
"getInTouch": "Melde dich",
|
||||
"getInTouchBody": "Ich bin immer offen für neue Chancen, spannende Projekte oder einfach einen Tech-Talk.",
|
||||
"info": {
|
||||
@@ -251,13 +210,13 @@
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"role": "Software Engineer",
|
||||
"madeIn": "Made in Germany",
|
||||
"role": "IT & Self-Hosting",
|
||||
"madeIn": "selbst gehostet in Deutschland",
|
||||
"legalNotice": "Impressum",
|
||||
"privacyPolicy": "Datenschutz",
|
||||
"privacySettings": "Datenschutz-Einstellungen",
|
||||
"privacySettingsTitle": "Datenschutz-Banner wieder anzeigen",
|
||||
"builtWith": "Built with",
|
||||
"builtWith": "Gebaut mit Next.js und Directus, läuft auf meinen eigenen Servern.",
|
||||
"aiDisclaimer": "Einige Inhalte dieser Seite können KI-generiert sein.",
|
||||
"backToTop": "Nach oben",
|
||||
"systemsOnline": "Systeme online"
|
||||
@@ -277,21 +236,5 @@
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user