diff --git a/src/app/[lang]/o-kompanii/page.tsx b/src/app/[lang]/about/page.tsx similarity index 64% rename from src/app/[lang]/o-kompanii/page.tsx rename to src/app/[lang]/about/page.tsx index 4a65e3d..fa19035 100644 --- a/src/app/[lang]/o-kompanii/page.tsx +++ b/src/app/[lang]/about/page.tsx @@ -1,8 +1,6 @@ import type { Metadata } from 'next' import { getDictionary, LOCALES, type Locale } from '@/lib/i18n' import AboutSection from '@/components/sections/AboutSection' -import ClientsSection from '@/components/sections/ClientsSection' -import PartnersSection from '@/components/sections/PartnersSection' export function generateStaticParams() { return LOCALES.map(lang => ({ lang })) @@ -14,22 +12,22 @@ export async function generateMetadata({ params }: { params: Promise<{ lang: str 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, trusted partners.', + ? 'Сисадмингрупп — IT-аутсорсинг в Пушкино и Московской области. Более 10 лет опыта, 150+ клиентов.' + : 'SysadminGroup — IT outsourcing in Pushkino and Moscow Region. Over 10 years experience, 150+ clients.', alternates: { - canonical: `https://sag24.ru/${lang}/o-kompanii/`, + canonical: `https://sag24.ru/${lang}/about/`, languages: { - 'ru': 'https://sag24.ru/ru/o-kompanii/', - 'en': 'https://sag24.ru/en/o-kompanii/', - 'x-default': 'https://sag24.ru/ru/o-kompanii/', + '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. Over 10 years experience, 150+ clients.', - url: `https://sag24.ru/${lang}/o-kompanii/`, + ? 'Сисадмингрупп — 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' }], }, } @@ -42,8 +40,6 @@ export default async function AboutPage({ params }: { params: Promise<{ lang: st return (
- -
) } diff --git a/src/app/[lang]/clients/page.tsx b/src/app/[lang]/clients/page.tsx new file mode 100644 index 0000000..5754b33 --- /dev/null +++ b/src/app/[lang]/clients/page.tsx @@ -0,0 +1,45 @@ +import type { Metadata } from 'next' +import { getDictionary, LOCALES, type Locale } from '@/lib/i18n' +import ClientsSection from '@/components/sections/ClientsSection' + +export function generateStaticParams() { + return LOCALES.map(lang => ({ lang })) +} + +export async function generateMetadata({ params }: { params: Promise<{ lang: string }> }): Promise { + const { lang } = await params + const isRu = lang === 'ru' + return { + title: isRu ? 'Наши клиенты — Сисадмингрупп' : 'Our Clients — SysadminGroup', + description: isRu + ? 'Компании, которые доверяют IT-инфраструктуру Сисадмингрупп. 150+ клиентов в Пушкино и Московской области.' + : 'Companies that trust SysadminGroup with their IT infrastructure. 150+ clients in Moscow Region.', + alternates: { + canonical: `https://sag24.ru/${lang}/clients/`, + languages: { + 'ru': 'https://sag24.ru/ru/clients/', + 'en': 'https://sag24.ru/en/clients/', + 'x-default': 'https://sag24.ru/ru/clients/', + }, + }, + openGraph: { + title: isRu ? 'Наши клиенты — Сисадмингрупп' : 'Our Clients — SysadminGroup', + description: isRu + ? '150+ компаний доверяют нам своё IT в Пушкино и Московской области.' + : '150+ companies trust us with their IT in Moscow Region.', + url: `https://sag24.ru/${lang}/clients/`, + images: [{ url: '/og-image.png' }], + }, + } +} + +export default async function ClientsPage({ params }: { params: Promise<{ lang: string }> }) { + const { lang: langStr } = await params + const lang = langStr as Locale + const d = getDictionary(lang) + return ( +
+ +
+ ) +} diff --git a/src/app/[lang]/partners/page.tsx b/src/app/[lang]/partners/page.tsx new file mode 100644 index 0000000..47433db --- /dev/null +++ b/src/app/[lang]/partners/page.tsx @@ -0,0 +1,45 @@ +import type { Metadata } from 'next' +import { getDictionary, LOCALES, type Locale } from '@/lib/i18n' +import PartnersSection from '@/components/sections/PartnersSection' + +export function generateStaticParams() { + return LOCALES.map(lang => ({ lang })) +} + +export async function generateMetadata({ params }: { params: Promise<{ lang: string }> }): Promise { + const { lang } = await params + const isRu = lang === 'ru' + return { + title: isRu ? 'Партнёры — Сисадмингрупп' : 'Partners — SysadminGroup', + description: isRu + ? 'Технологические партнёры Сисадмингрупп: RU-CENTER, REG.RU, МТВ, КОНТУР. Официальные представители.' + : 'Technology partners of SysadminGroup: RU-CENTER, REG.RU, MTV, Kontur. Authorized representatives.', + alternates: { + canonical: `https://sag24.ru/${lang}/partners/`, + languages: { + 'ru': 'https://sag24.ru/ru/partners/', + 'en': 'https://sag24.ru/en/partners/', + 'x-default': 'https://sag24.ru/ru/partners/', + }, + }, + openGraph: { + title: isRu ? 'Партнёры — Сисадмингрупп' : 'Partners — SysadminGroup', + description: isRu + ? 'Технологические партнёры: RU-CENTER, REG.RU, МТВ, КОНТУР.' + : 'Technology partners: RU-CENTER, REG.RU, MTV, Kontur.', + url: `https://sag24.ru/${lang}/partners/`, + images: [{ url: '/og-image.png' }], + }, + } +} + +export default async function PartnersPage({ params }: { params: Promise<{ lang: string }> }) { + const { lang: langStr } = await params + const lang = langStr as Locale + const d = getDictionary(lang) + return ( +
+ +
+ ) +} diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx index 433722c..e8e5b1d 100644 --- a/src/components/layout/Header.tsx +++ b/src/components/layout/Header.tsx @@ -14,7 +14,9 @@ export default function Header({ lang }: { lang: string }) { const links = [ { label: d.nav.services, href: `/${lang}/uslugi/` }, - { label: d.nav.about, href: `/${lang}/o-kompanii/` }, + { label: d.nav.about, href: `/${lang}/about/` }, + { label: d.nav.clients, href: `/${lang}/clients/` }, + { label: d.nav.partners, href: `/${lang}/partners/` }, { label: d.nav.faq, href: `/${lang}/faq/` }, ] diff --git a/src/components/sections/ClientsSection.tsx b/src/components/sections/ClientsSection.tsx index 08988a7..6192354 100644 --- a/src/components/sections/ClientsSection.tsx +++ b/src/components/sections/ClientsSection.tsx @@ -1,11 +1,12 @@ import type { Dictionary } from '@/lib/i18n' -export default function ClientsSection({ d }: { d: Dictionary }) { +export default function ClientsSection({ d, standalone }: { d: Dictionary; standalone?: boolean }) { + const Title = standalone ? 'h1' : 'h2' return ( -
+
-

{d.clients.title}

+ {d.clients.title}

{d.clients.subtitle}

diff --git a/src/components/sections/PartnersSection.tsx b/src/components/sections/PartnersSection.tsx index c2e10e4..b93e1dd 100644 --- a/src/components/sections/PartnersSection.tsx +++ b/src/components/sections/PartnersSection.tsx @@ -7,12 +7,13 @@ const PARTNERS = [ { name: 'КОНТУР', sub: 'Электронная отчётность' }, ] -export default function PartnersSection({ d }: { d: Dictionary }) { +export default function PartnersSection({ d, standalone }: { d: Dictionary; standalone?: boolean }) { + const Title = standalone ? 'h1' : 'h2' return ( -
+
-

{d.partners.title}

+ {d.partners.title}

{d.partners.subtitle}

diff --git a/src/locales/en.ts b/src/locales/en.ts index ef01bdb..98fa5e3 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -2,6 +2,8 @@ export const en = { nav: { services: 'Services', about: 'About', + clients: 'Clients', + partners: 'Partners', faq: 'FAQ', contact: 'Contact', }, diff --git a/src/locales/ru.ts b/src/locales/ru.ts index d6f09d3..16453ad 100644 --- a/src/locales/ru.ts +++ b/src/locales/ru.ts @@ -1,7 +1,9 @@ export const ru = { nav: { services: 'Услуги', - about: 'О нас', + about: 'О компании', + clients: 'Клиенты', + partners: 'Партнёры', faq: 'FAQ', contact: 'Контакты', },