feat: separate About/Clients/Partners into individual pages

- /[lang]/about/ — О компании (AboutSection standalone)
- /[lang]/clients/ — Нам доверяют (ClientsSection standalone)
- /[lang]/partners/ — Партнёры (PartnersSection standalone)
- Remove /o-kompanii/ page
- Update Header nav with all three links
- Add clients/partners keys to ru/en dictionaries
- sections: standalone prop → h1 heading, adjusted padding

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 03:45:07 +03:00
parent 925caef547
commit 40250aa4a6
8 changed files with 115 additions and 21 deletions

View File

@@ -0,0 +1,45 @@
import type { Metadata } from 'next'
import { getDictionary, LOCALES, type Locale } from '@/lib/i18n'
import AboutSection from '@/components/sections/AboutSection'
export function generateStaticParams() {
return LOCALES.map(lang => ({ lang }))
}
export async function generateMetadata({ params }: { params: Promise<{ lang: string }> }): Promise<Metadata> {
const { lang } = await params
const isRu = lang === 'ru'
return {
title: isRu ? 'О компании — Сисадмингрупп' : 'About Us — SysadminGroup',
description: isRu
? 'Сисадмингрупп — IT-аутсорсинг в Пушкино и Московской области. Более 10 лет опыта, 150+ клиентов.'
: 'SysadminGroup — IT outsourcing in Pushkino and Moscow Region. Over 10 years experience, 150+ clients.',
alternates: {
canonical: `https://sag24.ru/${lang}/about/`,
languages: {
'ru': 'https://sag24.ru/ru/about/',
'en': 'https://sag24.ru/en/about/',
'x-default': 'https://sag24.ru/ru/about/',
},
},
openGraph: {
title: isRu ? 'О компании — Сисадмингрупп' : 'About Us — SysadminGroup',
description: isRu
? 'Сисадмингрупп — IT-аутсорсинг в Пушкино и Московской области. 10+ лет опыта, 150+ клиентов.'
: 'SysadminGroup — IT outsourcing in Pushkino and Moscow Region. 10+ years experience, 150+ clients.',
url: `https://sag24.ru/${lang}/about/`,
images: [{ url: '/og-image.png' }],
},
}
}
export default async function AboutPage({ params }: { params: Promise<{ lang: string }> }) {
const { lang: langStr } = await params
const lang = langStr as Locale
const d = getDictionary(lang)
return (
<div className="pt-16">
<AboutSection d={d} standalone />
</div>
)
}