import { NextIntlClientProvider } from 'next-intl'; import { Inter } from 'next/font/google'; import { notFound } from 'next/navigation'; import { ReactNode } from 'react'; import './globals.css'; const SITE_NAME = 'KM Storefront'; const SITE_DESCRIPTION = 'Webb och digitalbyrå från Göteborg'; const TWITTER_CREATOR = '@kodamera.se'; const TWITTER_SITE = 'https://kodamera.se'; export const metadata = { title: { default: SITE_NAME, template: `%s | ${SITE_NAME}` }, description: SITE_DESCRIPTION, robots: { follow: true, index: true }, ...(TWITTER_CREATOR && TWITTER_SITE && { twitter: { card: 'summary_large_image', creator: TWITTER_CREATOR, site: TWITTER_SITE } }) }; const inter = Inter({ subsets: ['latin'], display: 'swap', variable: '--font-inter' }); export function generateStaticParams() { return [{ locale: 'sv' }, { locale: 'en' }]; } interface LocaleLayoutProps { children: ReactNode; params: { locale: string; }; } export default async function LocaleLayout({ children, params: { locale } }: LocaleLayoutProps) { let messages; try { messages = (await import(`../../messages/${locale}.json`)).default; } catch (error) { notFound(); } return ( {children} ); }