70f378e720
- 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.2 KiB
JSON
232 lines
8.2 KiB
JSON
{
|
||
"nav": {
|
||
"home": "Home",
|
||
"about": "About",
|
||
"projects": "Projects",
|
||
"contact": "Contact"
|
||
},
|
||
"common": {
|
||
"back": "Back",
|
||
"backToHome": "Back to Home",
|
||
"backToProjects": "Back to Projects",
|
||
"viewAllProjects": "View All Projects",
|
||
"loading": "Loading..."
|
||
},
|
||
"consent": {
|
||
"title": "Privacy settings",
|
||
"description": "We use optional services (analytics and chat) to improve the site. You can change your choice anytime.",
|
||
"essential": "Essential",
|
||
"analytics": "Analytics",
|
||
"chat": "Chatbot",
|
||
"alwaysOn": "Always on",
|
||
"acceptAll": "Accept all",
|
||
"acceptSelected": "Accept selected",
|
||
"rejectAll": "Reject all",
|
||
"hide": "Hide"
|
||
},
|
||
"home": {
|
||
"hero": {
|
||
"kicker": "Dennis Konkol — Osnabrück, Germany",
|
||
"claim": "I self-host half my life. The rest I code.",
|
||
"intro": "IT admin in Osnabrück and master's student. From February 2027 I look after Microsoft 365 full-time, until then my master's thesis.",
|
||
"countdown": "{days, plural, one {# day to go.} other {# days to go.}}",
|
||
"ctaWork": "See projects",
|
||
"ctaContact": "Write me"
|
||
},
|
||
"tisch": {
|
||
"title": "The desk.",
|
||
"allProjects": "All projects",
|
||
"hintBoard": "Everything here can be touched. Throw it, stack it, flip the cards.",
|
||
"hintDeck": "Swipe the cards aside, tap to flip.",
|
||
"tidy": "Tidy up",
|
||
"mess": "Mess it up",
|
||
"flip": "tap to flip",
|
||
"details": "Open project",
|
||
"prev": "Previous card",
|
||
"next": "Next card",
|
||
"ticketTitle": "Master's thesis · due 15 Feb 2027",
|
||
"ticketDays": "days until submission",
|
||
"ticketJob": "from 02/2027: M365 administrator",
|
||
"ticketStub": "Now",
|
||
"serverTitle": "What I run",
|
||
"servers": {
|
||
"ingress": {
|
||
"name": "netcup · front door",
|
||
"detail": "Traefik, Dokploy, this site"
|
||
},
|
||
"mail": {
|
||
"name": "IONOS · mail and photos",
|
||
"detail": "mailcow, Immich"
|
||
},
|
||
"home": {
|
||
"name": "Home · Raspberry Pi",
|
||
"detail": "Home Assistant, Paperless"
|
||
}
|
||
},
|
||
"serverNote": "Guarded by CrowdSec, daily backups with restic.",
|
||
"bookLabel": "Reading now",
|
||
"bookFallback": "To the library",
|
||
"photoCaption": "That's me.",
|
||
"sticker": "Runs on my own servers."
|
||
},
|
||
"about": {
|
||
"title": "Behind the Code",
|
||
"p1": "Ever since I set up my first home server, I've been hooked on infrastructure. Currently studying in Osnabrück, I split my time between developing modern web apps with Next.js and building mobile experiences with Flutter.",
|
||
"p2": "For me, it doesn't stop at the code. I genuinely enjoy managing my own Docker clusters, optimizing CI/CD pipelines, and making sure everything is stable and secure. DevOps isn't just a part of my job – it's how I think about building things.",
|
||
"p3": "When the servers are running smoothly, you'll find me jogging through the city, gaming, or tinkering with new automation workflows in n8n.",
|
||
"funFactTitle": "Hardcore Analog",
|
||
"funFactBody": "Despite my love for automation and the cloud, my most important ideas are still born on paper with a fountain pen. It's my way of staying grounded.",
|
||
"techStackTitle": "My Tech Stack",
|
||
"hobbiesTitle": "When I'm Not Coding",
|
||
"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": "Setting up game servers",
|
||
"jogging": "Jogging to clear my mind and stay active"
|
||
},
|
||
"currentlyReading": {
|
||
"title": "Currently Reading",
|
||
"progress": "Progress"
|
||
},
|
||
"readBooks": {
|
||
"title": "Read",
|
||
"finishedAt": "Finished",
|
||
"showMore": "{count} more",
|
||
"showLess": "Show less",
|
||
"readMore": "Read more",
|
||
"collapseReview": "Show less",
|
||
"empty": "Books finished in Hardcover will appear here automatically."
|
||
},
|
||
"activity": {
|
||
"idleStatus": "System Idle / Mind Active",
|
||
"codingNow": "Coding Now",
|
||
"gaming": "Gaming",
|
||
"listening": "Listening",
|
||
"inGame": "In Game"
|
||
}
|
||
},
|
||
"projects": {
|
||
"title": "Selected Work",
|
||
"subtitle": "Projects that pushed my boundaries.",
|
||
"featured": "Featured",
|
||
"viewAll": "View Archive",
|
||
"noProjects": "No projects yet."
|
||
},
|
||
"contact": {
|
||
"title": "Contact Me",
|
||
"subtitle": "Interested in working together or have questions about my projects? Feel free to reach out!",
|
||
"getInTouch": "Get In Touch",
|
||
"getInTouchBody": "I'm always available to discuss new opportunities, interesting projects, or simply chat about technology and innovation.",
|
||
"info": {
|
||
"email": "Email",
|
||
"location": "Location",
|
||
"locationValue": "Osnabrück, Germany"
|
||
},
|
||
"form": {
|
||
"title": "Send Message",
|
||
"sending": "Sending message…",
|
||
"send": "Send Message",
|
||
"labels": {
|
||
"name": "Name",
|
||
"email": "Email",
|
||
"subject": "Subject",
|
||
"message": "Message",
|
||
"requiredMarker": "*"
|
||
},
|
||
"placeholders": {
|
||
"name": "Your name",
|
||
"email": "your@email.com",
|
||
"subject": "What's this about?",
|
||
"message": "Tell me more about your project or question…"
|
||
},
|
||
"errors": {
|
||
"nameRequired": "Name is required",
|
||
"nameMin": "Name must be at least 2 characters",
|
||
"emailRequired": "Email is required",
|
||
"emailInvalid": "Please enter a valid email address",
|
||
"subjectRequired": "Subject is required",
|
||
"subjectMin": "Subject must be at least 3 characters",
|
||
"messageRequired": "Message is required",
|
||
"messageMin": "Message must be at least 10 characters"
|
||
},
|
||
"characters": "{count} characters"
|
||
}
|
||
}
|
||
},
|
||
"projects": {
|
||
"shared": {
|
||
"featured": "Featured"
|
||
},
|
||
"list": {
|
||
"title": "My Projects",
|
||
"intro": "Explore my portfolio of projects, from web applications to mobile apps. Each project showcases different skills and technologies.",
|
||
"searchPlaceholder": "Search projects...",
|
||
"all": "All",
|
||
"noResults": "No projects found matching your criteria.",
|
||
"clearFilters": "Clear filters"
|
||
},
|
||
"detail": {
|
||
"links": "Project Links",
|
||
"liveDemo": "Live Demo",
|
||
"liveNotAvailable": "Live demo not available",
|
||
"viewSource": "View Source",
|
||
"techStack": "Tech Stack"
|
||
}
|
||
},
|
||
"footer": {
|
||
"role": "Software Engineer",
|
||
"madeIn": "Made in Germany",
|
||
"legalNotice": "Legal notice",
|
||
"privacyPolicy": "Privacy policy",
|
||
"privacySettings": "Privacy settings",
|
||
"privacySettingsTitle": "Show privacy settings banner again",
|
||
"builtWith": "Built with",
|
||
"aiDisclaimer": "Some content on this site may be AI-assisted.",
|
||
"backToTop": "Back to top",
|
||
"systemsOnline": "Systems Online"
|
||
},
|
||
"notFound": {
|
||
"title": "Page not Found",
|
||
"description": "The content you are looking for has been moved, deleted, or never existed.",
|
||
"returnHome": "Return Home",
|
||
"goBack": "Go Back",
|
||
"exploreWork": "Explore Work",
|
||
"exploreWorkDesc": "Maybe what you need is in my project archive?",
|
||
"viewProjects": "View Projects",
|
||
"errorReport": "Error Report"
|
||
},
|
||
"books": {
|
||
"title": "Library",
|
||
"subtitle": "Books that shaped my mindset and expanded my horizons.",
|
||
"backHome": "Back Home",
|
||
"empty": "No books yet."
|
||
},
|
||
"about": {
|
||
"status": "Status",
|
||
"aiAssistant": "AI Assistant",
|
||
"library": "Library",
|
||
"viewAll": "View All",
|
||
"myGear": "My Gear",
|
||
"gearMain": "Main",
|
||
"gearPC": "PC",
|
||
"gearServer": "Server",
|
||
"gearOS": "OS",
|
||
"curiosity": "Curiosity beyond software engineering.",
|
||
"connect": "Connect",
|
||
"email": "Email",
|
||
"code": "Code",
|
||
"professional": "Professional"
|
||
}
|
||
}
|