diff --git a/app/components/Header/Header.container.tsx b/app/components/Header/Header.container.tsx index 165f2bf..6b459ec 100644 --- a/app/components/Header/Header.container.tsx +++ b/app/components/Header/Header.container.tsx @@ -2,6 +2,7 @@ import { memo } from "react"; import { usePathname } from "next/navigation"; +import { useTranslation } from "../../contexts/MessagesContext"; import MenuBarItem from "../MenuBarItem"; import Button from "../Button"; import AvatarContainer from "../AvatarContainer"; @@ -11,13 +12,6 @@ import { getAssetPath, ASSETS } from "../../../lib/assetUtils"; import { HeaderView } from "./Header.view"; import type { HeaderProps, NavSize } from "./Header.types"; -// Configuration data for testing -export const navigationItems = [ - { href: "#", text: "Use cases", extraPadding: true }, - { href: "/learn", text: "Learn" }, - { href: "#", text: "About" }, -]; - export const avatarImages = [ { src: getAssetPath(ASSETS.AVATAR_1), alt: "Avatar 1" }, { src: getAssetPath(ASSETS.AVATAR_2), alt: "Avatar 2" }, @@ -46,6 +40,7 @@ export const logoConfig = [ const HeaderContainer = memo(() => { const pathname = usePathname(); + const t = useTranslation("header"); // Schema markup for site navigation const schemaData = { @@ -60,6 +55,13 @@ const HeaderContainer = memo(() => { }, }; + // Navigation items with translations + const navigationItems = [ + { href: "#", text: t("navigation.useCases"), extraPadding: true }, + { href: "/learn", text: t("navigation.learn") }, + { href: "#", text: t("navigation.about") }, + ]; + const renderNavigationItems = (size: NavSize) => { return navigationItems.map((item, index) => ( (() => { href={item.href} size={item.extraPadding && size === "xsmall" ? "xsmallUseCases" : size} isActive={pathname === item.href} - ariaLabel={`Navigate to ${item.text} page`} + ariaLabel={t("ariaLabels.navigateToPage").replace("{text}", item.text)} > {item.text} @@ -94,8 +96,8 @@ const HeaderContainer = memo(() => { const renderLoginButton = (size: NavSize) => { return ( - - Log in + + {t("buttons.logIn")} ); }; @@ -108,10 +110,10 @@ const HeaderContainer = memo(() => { return ( ); }; diff --git a/app/components/Header/Header.view.tsx b/app/components/Header/Header.view.tsx index 2ea7986..780c7b2 100644 --- a/app/components/Header/Header.view.tsx +++ b/app/components/Header/Header.view.tsx @@ -1,3 +1,6 @@ +"use client"; + +import { useTranslation } from "../../contexts/MessagesContext"; import MenuBar from "../MenuBar"; import type { HeaderViewProps } from "./Header.types"; @@ -9,6 +12,8 @@ export function HeaderView({ renderCreateRuleButton, renderLogo, }: HeaderViewProps) { + const t = useTranslation("header"); + return ( <>