feat: implement dynamic experience section with database integration and localization support

This commit is contained in:
Yolando
2026-04-03 17:34:42 +07:00
parent 9fffe4c598
commit 43858ce798
3 changed files with 8 additions and 9 deletions

View File

@@ -20,9 +20,9 @@
"scroll": "Scroll" "scroll": "Scroll"
}, },
"Experience": { "Experience": {
"badge": "Career Journey", "badge": "Track Record",
"title": "Experience & Evolution", "title": "Professional Experience",
"subtitle": "A timeline of building enterprise-grade systems in the banking technology industry.", "subtitle": "My journey in designing and developing enterprise-grade systems",
"jobs": { "jobs": {
"enterprise": { "enterprise": {
"year": "2024 — Present", "year": "2024 — Present",

View File

@@ -20,9 +20,9 @@
"scroll": "Scroll" "scroll": "Scroll"
}, },
"Experience": { "Experience": {
"badge": "Perjalanan Karir", "badge": "Rekam Jejak",
"title": "Pengalaman & Evolusi", "title": "Pengalaman Profesional",
"subtitle": "Garis waktu (timeline) membangun sistem skala enterprise di industri teknologi perbankan.", "subtitle": "Perjalanan saya dalam merancang dan mengembangkan sistem berskala enterprise",
"jobs": { "jobs": {
"enterprise": { "enterprise": {
"year": "2024 — Sekarang", "year": "2024 — Sekarang",

View File

@@ -37,7 +37,6 @@ export async function ExperienceSection() {
<div className="max-w-5xl mx-auto px-6"> <div className="max-w-5xl mx-auto px-6">
<AnimatedSection> <AnimatedSection>
<SectionHeading <SectionHeading
badge={t("badge")}
title={t("title")} title={t("title")}
subtitle={t("subtitle")} subtitle={t("subtitle")}
/> />
@@ -61,13 +60,13 @@ export async function ExperienceSection() {
{timelineData.map((item, index) => ( {timelineData.map((item, index) => (
<AnimatedSection key={item.id} delay={index * 0.15}> <AnimatedSection key={item.id} delay={index * 0.15}>
<div <div
className={`relative flex flex-col md:flex-row items-start gap-6 md:gap-12 ${ className={`relative flex flex-col md:flex-row items-start gap-8 md:gap-24 ${
index % 2 === 0 ? "md:flex-row" : "md:flex-row-reverse" index % 2 === 0 ? "md:flex-row" : "md:flex-row-reverse"
}`} }`}
> >
{/* Content */} {/* Content */}
<div <div
className={`flex-1 ml-16 md:ml-0 ${ className={`flex-1 ml-20 md:ml-0 ${
index % 2 === 0 ? "md:text-right" : "md:text-left" index % 2 === 0 ? "md:text-right" : "md:text-left"
}`} }`}
> >