diff --git a/.yarn/cache/@formatjs-intl-localematcher-npm-0.4.0-9a73a446bf-c65108e9a8.zip b/.yarn/cache/@formatjs-intl-localematcher-npm-0.4.0-9a73a446bf-c65108e9a8.zip new file mode 100644 index 000000000..204f609c5 Binary files /dev/null and b/.yarn/cache/@formatjs-intl-localematcher-npm-0.4.0-9a73a446bf-c65108e9a8.zip differ diff --git a/.yarn/cache/@types-negotiator-npm-0.6.1-bd102330ab-e39f985874.zip b/.yarn/cache/@types-negotiator-npm-0.6.1-bd102330ab-e39f985874.zip new file mode 100644 index 000000000..619e6944c Binary files /dev/null and b/.yarn/cache/@types-negotiator-npm-0.6.1-bd102330ab-e39f985874.zip differ diff --git a/app/[page]/layout.tsx b/app/[lang]/[page]/layout.tsx similarity index 100% rename from app/[page]/layout.tsx rename to app/[lang]/[page]/layout.tsx diff --git a/app/[page]/opengraph-image.tsx b/app/[lang]/[page]/opengraph-image.tsx similarity index 100% rename from app/[page]/opengraph-image.tsx rename to app/[lang]/[page]/opengraph-image.tsx diff --git a/app/[page]/page.tsx b/app/[lang]/[page]/page.tsx similarity index 100% rename from app/[page]/page.tsx rename to app/[lang]/[page]/page.tsx diff --git a/app/error.tsx b/app/[lang]/error.tsx similarity index 100% rename from app/error.tsx rename to app/[lang]/error.tsx diff --git a/app/favicon.ico b/app/[lang]/favicon.ico similarity index 100% rename from app/favicon.ico rename to app/[lang]/favicon.ico diff --git a/app/globals.css b/app/[lang]/globals.css similarity index 100% rename from app/globals.css rename to app/[lang]/globals.css diff --git a/app/layout.tsx b/app/[lang]/layout.tsx similarity index 75% rename from app/layout.tsx rename to app/[lang]/layout.tsx index b5aebc472..7da8ca05d 100644 --- a/app/layout.tsx +++ b/app/[lang]/layout.tsx @@ -1,4 +1,5 @@ import Navbar from 'components/layout/navbar'; +import { i18n } from 'i18n-config'; import { Inter } from 'next/font/google'; import { ReactNode, Suspense } from 'react'; import './globals.css'; @@ -34,12 +35,22 @@ const inter = Inter({ variable: '--font-inter' }); -export default async function RootLayout({ children }: { children: ReactNode }) { +export async function generateStaticParams() { + return i18n.locales.map((locale) => ({ lang: locale })); +} + +export default async function RootLayout({ + children, + params +}: { + children: ReactNode; + params: { lang: string }; +}) { return ( - +
- +
{children}
diff --git a/app/opengraph-image.tsx b/app/[lang]/opengraph-image.tsx similarity index 100% rename from app/opengraph-image.tsx rename to app/[lang]/opengraph-image.tsx diff --git a/app/page.tsx b/app/[lang]/page.tsx similarity index 80% rename from app/page.tsx rename to app/[lang]/page.tsx index 213f04410..361f5f8d3 100644 --- a/app/page.tsx +++ b/app/[lang]/page.tsx @@ -2,6 +2,8 @@ import { Carousel } from 'components/carousel'; import { ThreeItemGrid } from 'components/grid/three-items'; import Footer from 'components/layout/footer'; import { LanguageControl } from 'components/layout/navbar/language-control'; +import type { Locale } from '../../i18n-config'; + import Image from 'next/image'; import Namemark from 'public/assets/images/namemark.png'; import { Suspense } from 'react'; @@ -15,11 +17,13 @@ export const metadata = { } }; -export default async function HomePage() { +export default async function HomePage({ params: { lang } }: { params: { lang: Locale } }) { + // const dictionary = await getDictionary(lang); + return ( <>
- +
+
- - - +
+ + +
); } diff --git a/components/grid/tile.tsx b/components/grid/tile.tsx index cf9aa49a9..9ec17e143 100644 --- a/components/grid/tile.tsx +++ b/components/grid/tile.tsx @@ -14,36 +14,21 @@ export function GridTileImage({ title: string; amount: string; currencyCode: string; - position?: 'bottom' | 'center'; }; } & React.ComponentProps) { return ( -
+
{props.src ? ( // eslint-disable-next-line jsx-a11y/alt-text -- `alt` is inherited from `props`, which is being enforced with TypeScript ) : null} {label ? ( -
); diff --git a/components/label.tsx b/components/label.tsx index 113afacb0..d94a89c37 100644 --- a/components/label.tsx +++ b/components/label.tsx @@ -4,24 +4,18 @@ import Price from './price'; const Label = ({ title, amount, - currencyCode, - position = 'bottom' + currencyCode }: { title: string; amount: string; currencyCode: string; - position?: 'bottom' | 'center'; }) => { return ( -
-
-

{title}

+
+
+

{title}

- +