@@ -10,8 +10,9 @@ import type { LocalePageProps } from '@/types/locale'
1010export async function generateMetadata ( { params } : LocalePageProps ) {
1111 const { locale } = await params
1212 const tPage = await getTranslations ( { locale, namespace : 'pages.stacksOverview' } )
13+ const tShared = await getTranslations ( { locale, namespace : 'shared' } )
1314
14- const title = buildTitle ( { title : tPage ( 'title ') } )
15+ const title = buildTitle ( { title : tShared ( 'terms.aiCodingStack ') } )
1516 const description = tPage ( 'subtitle' )
1617
1718 return generateStaticPageMetadata ( {
@@ -28,23 +29,24 @@ export async function generateMetadata({ params }: LocalePageProps) {
2829export default async function AICodingStackPage ( { params } : LocalePageProps ) {
2930 const { locale } = await params
3031 const tPage = await getTranslations ( { locale, namespace : 'pages.stacksOverview' } )
32+ const tShared = await getTranslations ( { locale, namespace : 'shared' } )
3133
3234 return (
3335 < >
3436 < Header />
3537
3638 < main className = "max-w-8xl mx-auto px-[var(--spacing-md)] py-[var(--spacing-lg)]" >
37- < PageHeader title = { tPage ( 'title ') } subtitle = { tPage ( 'subtitle' ) } />
39+ < PageHeader title = { tShared ( 'terms.aiCodingStack ') } subtitle = { tPage ( 'subtitle' ) } />
3840
3941 { /* Stacks Grid */ }
4042 < div className = "grid grid-cols-1 md:grid-cols-3 gap-[var(--spacing-md)]" >
4143 { [
42- { key : 'ides' , path : 'ides' } ,
43- { key : 'clis' , path : 'clis' } ,
44- { key : 'extensions' , path : 'extensions' } ,
45- { key : 'models' , path : 'models' } ,
46- { key : 'modelProviders' , path : 'model-providers' } ,
47- { key : 'vendors' , path : 'vendors' } ,
44+ { key : 'ides' , path : 'ides' , category : 'ides' as const } ,
45+ { key : 'clis' , path : 'clis' , category : 'clis' as const } ,
46+ { key : 'extensions' , path : 'extensions' , category : 'extensions' as const } ,
47+ { key : 'models' , path : 'models' , category : 'models' as const } ,
48+ { key : 'modelProviders' , path : 'model-providers' , category : 'modelProviders' as const } ,
49+ { key : 'vendors' , path : 'vendors' , category : 'vendors' as const } ,
4850 ] . map ( stack => (
4951 < Link
5052 key = { stack . key }
@@ -53,7 +55,7 @@ export default async function AICodingStackPage({ params }: LocalePageProps) {
5355 >
5456 < div className = "flex justify-between items-start mb-[var(--spacing-md)]" >
5557 < h3 className = "text-2xl font-semibold tracking-tight" >
56- { tPage ( ` ${ stack . key } .title `) }
58+ { tShared ( `categories.plural. ${ stack . category } `) }
5759 </ h3 >
5860 < span className = "text-2xl text-[var(--color-text-muted)] group-hover:text-[var(--color-text)] group-hover:translate-x-1 transition-all" >
5961 →
0 commit comments