import { defaultLocale, getLocale } from 'astro-i18n-aut'; import { ui, defaultLang, showDefaultLang } from './ui'; export function useTranslatedPath(url: URL) { const locale = getLocale(url); return function translatePath(path: string, l: string = locale) { return !showDefaultLang && l === defaultLang ? path : `/${l}${path}`.replace(/\/$/g, ''); } } export function useTranslations(url: URL) { const lang = getLocale(url); return function t(key: keyof typeof ui[typeof defaultLang]) { return ui[lang as keyof typeof ui][key] || ui[defaultLang][key]; } } export function parseSlug(id: string) { const splitPath = id.split('/'); const split = splitPath.pop()?.split('.'); const lang = split?.length === 2 ? defaultLocale : split?.[1]; return [splitPath.join("/"), lang] } export function filterCollection(collection: T[], locale: string): T[] { return collection.filter(post => { const [_, lang] = parseSlug(post?.id); return lang === locale; }).sort((a, b) => { return (a?.data?.date > b?.data?.date) ? -1 : 1; }); }