feat: add localizations for hero section text and buttons
All checks were successful
Deploy Portfolio to VPS / deploy (push) Successful in 27s

This commit is contained in:
Chneemann 2026-08-02 07:55:33 +02:00
parent 5b261699a1
commit 127c4a748b
No known key found for this signature in database
3 changed files with 28 additions and 14 deletions

View file

@ -1,16 +1,22 @@
"use client";
import { useTranslations } from "next-intl";
import SocialLinks from "./Social"; import SocialLinks from "./Social";
/** /**
* Hero section showcasing intro title, call-to-action links, and personal portrait * Hero section showcasing intro title, call-to-action links, and personal portrait
*/ */
export default function Hero() { export default function Hero() {
const tCommon = useTranslations("Common");
const tHero = useTranslations("Hero");
return ( return (
<section className="relative pt-18 py-6 px-4 md:px-6 md:pt-24 max-w-5xl mx-auto"> <section className="relative pt-18 py-6 px-4 md:px-6 md:pt-24 max-w-5xl mx-auto">
<div className="grid grid-cols-1 md:grid-cols-12 gap-3 items-center z-10 w-full"> <div className="grid grid-cols-1 md:grid-cols-12 gap-3 items-center z-10 w-full">
{/* Main Content & Call to Actions */} {/* Main Content & Call to Actions */}
<div className=" self-start md:col-span-8 lg:space-y-5 md:space-y-4 space-y-3 text-left"> <div className=" self-start md:col-span-8 lg:space-y-5 md:space-y-4 space-y-3 text-left">
<span className="text-blue-500 font-mono text-sm tracking-wider uppercase"> <span className="text-blue-500 font-mono text-sm tracking-wider uppercase">
// Hi, my name is //&nbsp;{tHero("greeting")}
</span> </span>
<h1 className="text-4xl sm:text-5xl lg:text-6xl font-extrabold tracking-tight text-white leading-none"> <h1 className="text-4xl sm:text-5xl lg:text-6xl font-extrabold tracking-tight text-white leading-none">
@ -18,20 +24,14 @@ export default function Hero() {
</h1> </h1>
<h2 className="text-3xl sm:text-4xl lg:text-5xl font-semibold text-slate-400 tracking-tight"> <h2 className="text-3xl sm:text-4xl lg:text-5xl font-semibold text-slate-400 tracking-tight">
Full-Stack{" "} {tHero("rolePrefix")}{" "}
<span className="text-blue-400/80 font-medium">Developer</span> <span className="text-blue-400/80 font-medium">
{tHero("roleSuffix")}
</span>
</h2> </h2>
<p className="text-lg leading-relaxed max-w-xl"> <p className="text-lg leading-relaxed max-w-xl">
I conceptualize and develop modern web applications. With a sharp {tHero("description")}
eye for detail and a focus on clean code, I bring digital ideas to
life.
{/*
German:
Ich konzipiere und entwickle moderne Web-Anwendungen. Mit einem klaren
Auge fürs Detail und einem Fokus auf sauberen Code erwecke ich
digitale Ideen zum Leben.
*/}
</p> </p>
{/* Action Buttons */} {/* Action Buttons */}
@ -40,7 +40,7 @@ export default function Hero() {
href="#contactme" href="#contactme"
className="px-6 py-3 bg-slate-900 text-blue-500 font-semibold rounded-lg border border-blue-500/40 hover:border-blue-400 hover:bg-blue-600 hover:text-white shadow-md shadow-blue-950/50 transition-all duration-200 hover:-translate-y-0.5 hover:shadow-lg hover:shadow-blue-500/20 inline-block text-center" className="px-6 py-3 bg-slate-900 text-blue-500 font-semibold rounded-lg border border-blue-500/40 hover:border-blue-400 hover:bg-blue-600 hover:text-white shadow-md shadow-blue-950/50 transition-all duration-200 hover:-translate-y-0.5 hover:shadow-lg hover:shadow-blue-500/20 inline-block text-center"
> >
Contact me {tCommon("contact")}
</a> </a>
<a <a
href="/assets/downloads/Andre_Kempf_Lebenslauf.pdf" href="/assets/downloads/Andre_Kempf_Lebenslauf.pdf"
@ -48,7 +48,7 @@ export default function Hero() {
rel="noopener noreferrer" rel="noopener noreferrer"
className="px-6 py-3 bg-slate-900 border border-slate-800 hover:border-slate-700 hover:bg-slate-850 font-semibold rounded-lg transition-all hover:-translate-y-0.5 duration-200 inline-block text-center" className="px-6 py-3 bg-slate-900 border border-slate-800 hover:border-slate-700 hover:bg-slate-850 font-semibold rounded-lg transition-all hover:-translate-y-0.5 duration-200 inline-block text-center"
> >
Download CV {tHero("downloadCv")}
</a> </a>
</div> </div>
</div> </div>

View file

@ -7,5 +7,12 @@
}, },
"Header": { "Header": {
"search": "Suchen" "search": "Suchen"
},
"Hero": {
"greeting": "Hi, mein Name ist",
"rolePrefix": "Full-Stack",
"roleSuffix": "Entwickler",
"description": "Ich konzipiere und entwickle moderne Web-Anwendungen. Mit einem klaren Auge fürs Detail und einem Fokus auf sauberen Code erwecke ich digitale Ideen zum Leben.",
"downloadCv": "Lebenslauf"
} }
} }

View file

@ -7,5 +7,12 @@
}, },
"Header": { "Header": {
"search": "Search" "search": "Search"
},
"Hero": {
"greeting": "Hi, my name is",
"rolePrefix": "Full-Stack",
"roleSuffix": "Developer",
"description": "I conceptualize and develop modern web applications. With a sharp eye for detail and a focus on clean code, I bring digital ideas to life.",
"downloadCv": "Download CV"
} }
} }