@@ -15,7 +15,9 @@ import { generateMeta } from '@/utilities/generateMeta'
1515import PageClient from './page.client'
1616import { LivePreviewListener } from '@/components/LivePreviewListener'
1717
18- import { getTranslations } from 'next-intl/server'
18+ import { Locale } from '@/i18n/types'
19+ import { routing } from '@/i18n/routing'
20+ import { setRequestLocale , getTranslations } from 'next-intl/server'
1921
2022export async function generateStaticParams ( ) {
2123 const payload = await getPayload ( { config : configPromise } )
@@ -30,22 +32,30 @@ export async function generateStaticParams() {
3032 } ,
3133 } )
3234
33- const params = posts . docs . map ( ( { slug } ) => {
34- return { slug }
35- } )
35+ const params = [ ]
36+ for ( const locale of routing . locales ) {
37+ for ( const { slug } of posts . docs ) {
38+ params . push ( { slug, locale } )
39+ }
40+ }
3641
3742 return params
3843}
3944
4045type Args = {
4146 params : Promise < {
4247 slug ?: string
48+ locale : Locale
4349 } >
4450}
4551
4652export default async function Post ( { params : paramsPromise } : Args ) {
4753 const { isEnabled : draft } = await draftMode ( )
48- const { slug = '' } = await paramsPromise
54+ const { slug = '' , locale } = await paramsPromise
55+
56+ // Enable static rendering
57+ setRequestLocale ( locale )
58+
4959 // Decode to support slugs with special characters
5060 const decodedSlug = decodeURIComponent ( slug )
5161 const url = '/posts/' + decodedSlug
@@ -94,7 +104,8 @@ export default async function Post({ params: paramsPromise }: Args) {
94104}
95105
96106export async function generateMetadata ( { params : paramsPromise } : Args ) : Promise < Metadata > {
97- const { slug = '' } = await paramsPromise
107+ const { slug = '' , locale } = await paramsPromise
108+ setRequestLocale ( locale )
98109 // Decode to support slugs with special characters
99110 const decodedSlug = decodeURIComponent ( slug )
100111 const post = await queryPostBySlug ( { slug : decodedSlug } )
0 commit comments