diff --git a/src/components/BackButton.astro b/src/components/BackButton.astro index 0d981d1eec..0ea9782993 100644 --- a/src/components/BackButton.astro +++ b/src/components/BackButton.astro @@ -2,6 +2,10 @@ import IconChevronLeft from "@/assets/icons/IconChevronLeft.svg"; import LinkButton from "./LinkButton.astro"; import { SITE } from "@/config"; +import { getLang, useTranslations } from "../i18n/utils"; + +const lang = getLang(); +const t = useTranslations(lang); --- { @@ -13,7 +17,7 @@ import { SITE } from "@/config"; class="focus-outline -ms-2 mt-8 mb-2 hover:text-foreground/75" > - Go back + {t("nav.back")} ) diff --git a/src/components/BackToTopButton.astro b/src/components/BackToTopButton.astro index 88e733eee1..d5e159142a 100644 --- a/src/components/BackToTopButton.astro +++ b/src/components/BackToTopButton.astro @@ -1,6 +1,10 @@ --- import IconChevronLeft from "@/assets/icons/IconChevronLeft.svg"; import IconArrowNarrowUp from "@/assets/icons/IconArrowNarrowUp.svg"; +import { getLang, useTranslations } from "../i18n/utils"; + +const lang = getLang(); +const t = useTranslations(lang); ---
- Back To Top + {t("nav.top")}
diff --git a/src/components/Breadcrumb.astro b/src/components/Breadcrumb.astro index b49fe3d754..487570284f 100644 --- a/src/components/Breadcrumb.astro +++ b/src/components/Breadcrumb.astro @@ -1,4 +1,9 @@ --- +import { getLang, useTranslations } from "../i18n/utils"; + +const lang = getLang(); +const t = useTranslations(lang); + // Remove current url path and remove trailing slash if exists const currentUrlPath = Astro.url.pathname.replace(/\/+$/, ""); @@ -28,7 +33,7 @@ if (breadcrumbList[0] === "tags" && !isNaN(Number(breadcrumbList[2]))) { class="font-light [&>li]:inline [&>li:not(:last-child)>a]:hover:opacity-100" >
  • - Home + {t("nav.home")}
  • { diff --git a/src/components/Datetime.astro b/src/components/Datetime.astro index e16834ff45..6c61ad040e 100644 --- a/src/components/Datetime.astro +++ b/src/components/Datetime.astro @@ -4,6 +4,10 @@ import utc from "dayjs/plugin/utc"; import timezone from "dayjs/plugin/timezone"; import IconCalendar from "@/assets/icons/IconCalendar.svg"; import { SITE } from "@/config"; +import { getLang, useTranslations } from "../i18n/utils"; + +const lang = getLang(); +const t = useTranslations(lang); dayjs.extend(utc); dayjs.extend(timezone); @@ -44,7 +48,7 @@ const date = datetime.format("D MMM, YYYY"); // e.g., '22 Mar, 2025' { isModified && ( - Updated: + {t("post.updated")} ) } diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 2283c7fac1..7a9bb2dc26 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -1,6 +1,10 @@ --- import type { HTMLAttributes } from "astro/types"; import Socials from "./Socials.astro"; +import { getLang, useTranslations } from "../i18n/utils"; + +const lang = getLang(); +const t = useTranslations(lang); const currentYear = new Date().getFullYear(); @@ -26,7 +30,7 @@ const { noMarginTop = false, class: className, ...attrs } = Astro.props;
    Copyright © {currentYear} - All rights reserved. + {t("footer.rights")}.
    diff --git a/src/components/Header.astro b/src/components/Header.astro index 5120467dd8..e6bd69a84a 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -7,6 +7,10 @@ import IconSunHigh from "@/assets/icons/IconSunHigh.svg"; import IconMenuDeep from "@/assets/icons/IconMenuDeep.svg"; import LinkButton from "./LinkButton.astro"; import { SITE } from "@/config"; +import { getLang, useTranslations } from "../i18n/utils"; + +const lang = getLang(); +const t = useTranslations(lang); const { pathname } = Astro.url; @@ -73,17 +77,17 @@ const isActive = (path: string) => { >
  • - Posts + {t("posts.title")}
  • - Tags + {t("tags.title")}
  • - About + {t("about.title")}
  • { @@ -97,11 +101,11 @@ const isActive = (path: string) => { "active-nav [&>svg]:stroke-accent": isActive("/archives"), }, ]} - title="Archives" + title={t("archives.title")} aria-label="archives" >