QuiiBz / next-international

Type-safe internationalization (i18n) for Next.js
https://next-international.vercel.app
MIT License
1.26k stars 59 forks source link

feat(next-international): Static Rendering for App Router #151

Closed QuiiBz closed 1 year ago

QuiiBz commented 1 year ago

Static Rendering / Static Export support (App Router)

next-international now supports Static Rendering, meaning your pages can be rendered at build time and then be served statically from CDNs, resulting in faster TTFB.

See setup

Export `getStaticParams` from `createI18nServer`: ```ts // locales/server.ts export const { getStaticParams, ... } = createI18nServer({ ... }) ``` Inside all pages that you want to be statically rendered, call this `setStaticParamsLocale` function by giving it the `locale` page param: ```tsx // app/[locale]/page.tsx and any other page import { setStaticParamsLocale } from 'next-international/server' export default function Page({ params: { locale } }: { params: { locale: string } }) { setStaticParamsLocale(locale) return ( ... ) } ``` And export a new `generateStaticParams` function. If all your pages should be rendered statically, you can also move this to the root layout: ```ts // app/[locale]/page.tsx and any other page, or in the root layout import { getStaticParams } from '../../locales/server' export function generateStaticParams() { return getStaticParams() } ```

vercel[bot] commented 1 year ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
next-international ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 8, 2023 8:12am