Files
portfolio/messages/de.json
denshooter 07741761cc Updating (#65)
* Fix ActivityFeed: Remove dynamic import that was causing it to disappear in production

* Fix ActivityFeed hydration error: Move localStorage read to useEffect to prevent server/client mismatch

* Update Node.js version to 25 in Gitea workflows

- Fix EBADENGINE error for camera-controls@3.1.2 which requires Node.js >=22
- Update production-deploy.yml, dev-deploy.yml, and ci-cd-with-gitea-vars.yml.disabled
- Node.js v25 matches local development environment

* Update Dockerfile to use Node.js 25

- Update base image from node:20 to node:25
- Matches Gitea workflow configuration and camera-controls@3.1.2 requirements

* Fix production deployment: Start database dependencies

- Remove --no-deps flag which prevented postgres and redis from starting
- Remove --build flag as image is already built in previous step
- This fixes 'Can't reach database server at postgres:5432' error

* Fix postgres health check in production

- Remove init-db.sql volume mount (not available in CI/CD environment)
- Init script not needed as Prisma handles schema migrations
- Postgres will initialize empty database automatically

* Fix cache permission error in Docker container

- Create cache directories AFTER copying standalone files
- Create both fetch-cache and images subdirectories
- Set proper ownership for nextjs user
- Fixes EACCES permission denied errors for prerender cache

* Fix German jogging fallback text

* Use Directus content in production

* fix: Security vulnerability - block malicious file requests

* fix: Switch projects to Directus, add security fixes and example projects
2026-02-15 22:04:26 +01:00

145 lines
5.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"nav": {
"home": "Start",
"about": "Über mich",
"projects": "Projekte",
"contact": "Kontakt"
},
"common": {
"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": {
"features": {
"f1": "Next.js & Flutter",
"f2": "Docker Swarm & CI/CD",
"f3": "Self-Hosted Infrastruktur"
},
"description": "Student und leidenschaftlicher Self-Hoster: Ich baue Full-Stack Web-Apps und Mobile-Lösungen, betreibe meine eigene Infrastruktur und liebe DevOps.",
"ctaWork": "Meine Projekte",
"ctaContact": "Kontakt"
},
"about": {
"title": "Über mich",
"p1": "Hi, ich bin Dennis Student und leidenschaftlicher Self-Hoster aus Osnabrück.",
"p2": "Ich entwickle Full-Stack Web-Apps mit Next.js und Mobile-Apps mit Flutter. Besonders spannend finde ich DevOps: eigene Infrastruktur, Automatisierung und CI/CD Deployments.",
"p3": "Wenn ich nicht code oder an Servern schraube, findest du mich beim Gaming, Joggen oder beim Experimentieren mit Automationen.",
"funFactTitle": "Fun Fact",
"funFactBody": "Auch wenn ich viel automatisiere, nutze ich für Kalender & Notizen noch Stift und Papier das hilft mir beim Fokus.",
"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"
}
},
"projects": {
"title": "Ausgewählte Projekte",
"subtitle": "Eine Auswahl an Projekten, an denen ich gearbeitet habe von Web-Apps bis zu Experimenten.",
"featured": "Featured",
"viewAll": "Alle Projekte ansehen"
},
"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 gehts?",
"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"
}
}