import type { AvailableLanguageTag } from "@/paraglide/runtime.js" import type { AbsolutePathname } from "@/types/types.ts" interface TranslatedPathnames { nb: AbsolutePathname en: `/en${AbsolutePathname}` } export type NavLink = "/" | "/contact" | "/projects" | "/links" | "/hardware" const paths: Set = new Set([ "/", "/contact", "/projects", "/links", "/hardware" ]) /** * Defines the localized pathnames for the site. * The key must be used to navigate to the correct path. * The value is the path that will be used for the given locale. * * @see https://inlang.com/m/iljlwzfs/paraglide-astro-i18n */ const pathnames: Record = {} for (const path of paths) { pathnames[path] = { nb: path, en: `/en${path}` } } export function localizePathname( pathname: NavLink, locale: AvailableLanguageTag ) { if (pathnames[pathname]) { return pathnames[pathname][locale] } return pathname } export function resolvePathname(pathname: string): AbsolutePathname { if (pathname.startsWith("/en")) { return pathname.slice(3) as AbsolutePathname } return pathname as AbsolutePathname }