--- import Layout from "@/layouts/Layout.astro"; import GlassHeader from "@/components/GlassHeader"; import Footer from "@/components/Footer"; import Container from "@/components/ui/Container.astro"; import ProjectCard from "@/components/ProjectCard.astro"; import { useTranslations } from "@/i18n/utils"; import type { Lang } from "@/types/i18n"; import { defaultLang } from "@/i18n/ui"; import { personalInfo, services, projects } from "@/lib/data/index"; const lang = (Astro.currentLocale as Lang) || defaultLang; const t = useTranslations(lang); const pageTitle = t("site.title"); const prefix = lang === "zh" ? "/zh" : ""; const localizedServices = services[lang]; const featuredProjects = projects[lang].filter((project) => project.featured); const careerMilestones = [ { period: t("home.career.card1.period"), title: t("home.career.card1.title"), outcome: t("home.career.card1.outcome"), }, { period: t("home.career.card2.period"), title: t("home.career.card2.title"), outcome: t("home.career.card2.outcome"), }, { period: t("home.career.card3.period"), title: t("home.career.card3.title"), outcome: t("home.career.card3.outcome"), }, ]; const keyFacts = [ t("home.trust.item1"), t("home.trust.item3"), t("home.trust.item4"), ]; ---

{personalInfo.name}

{personalInfo.position[lang]}

{t("home.hero.summary")}

{keyFacts.map((item) => ( {item} ))}
{personalInfo.terminal.username}
~

whoami {personalInfo.name}

~

role {personalInfo.position[lang]}

~

stack TypeScript, React, Node.js, Astro

~

status {t("home.hero.terminalStatus")}

~

contact {personalInfo.github}

{t("home.services.title")}

{t("home.services.description")}

{t("services.viewAll")}
{localizedServices.map((service) => (

{service.title}

    {service.items.slice(0, 3).map((item) => (
  • {item}
  • ))}
))}

{t("home.career.title")}

{t("home.career.description")}

{careerMilestones.map((item, index) => (
{item.period}

{item.title}

{item.outcome}

))}

{t("home.featured.title")}

{featuredProjects.map((project) => ( ))}

{t("home.final.title")}

{t("home.final.description")}