diff --git a/messages/pl.json b/messages/pl.json index e9741b3..721a0be 100644 --- a/messages/pl.json +++ b/messages/pl.json @@ -8,7 +8,7 @@ }, "navigation": { "platform": "Platforma", - "demos": "Dema", + "demos": "Demo", "features": "Funkcje", "faq": "FAQ", "contact": "Kontakt", @@ -79,9 +79,9 @@ }, "demos": { "desk": { - "slug": "demo", + "slug": "demo-biurko", "eyebrow": "Demo produktowe", - "title": "Konfigurator 3D, który sprzedaje za Ciebie", + "title": "Konfigurator - Biurko", "intro": "Pozwalaj klientom tworzyć własne biurka regulowane w czasie rzeczywistym.", "description": "Klient może zobaczyć swoje biurko w naturalnym oświetleniu, obrócić je o 360 stopni, powiększyć detale, zmienić dodatki i sprawdzić jak całość będzie wyglądała w jego przestrzeni.", "imageUrl": "https://backend.ultifide.com/uploads/offer/page-header-element/optimized/b64b9dddfb838bfafea9da0ee5c04c68.png?width=1000&height=1000", @@ -117,9 +117,9 @@ } }, "room": { - "slug": "demo-room", + "slug": "demo-pokoj", "eyebrow": "Demo wnętrzarskie", - "title": "Konfigurator 3D, który sprzedaje całe wnętrza", + "title": "Konfigurator - Wnętrze", "intro": "Twórz i prezentuj kompletne aranżacje pomieszczeń oraz meble w interaktywnym środowisku 3D.", "description": "Klient może zaprojektować pokój od podstaw, ustawić meble, zmienić kolory ścian, materiały, dodatki i zobaczyć wszystko w realistycznym oświetleniu.", "imageUrl": "https://backend.ultifide.com/uploads/offer/page-header-element/optimized/e78aac1388ff07761422e12272690878.png?width=1000&height=1000", @@ -155,12 +155,12 @@ } }, "door": { - "slug": "demo-door", + "slug": "demo-drzwi", "eyebrow": "Demo produktowe", - "title": "Konfigurator 3D drzwi dla producentów i sprzedawców", + "title": "Konfigurator - Drzwi", "intro": "Pozwól klientom dobrać model, kolor, przeszklenie, klamkę i detale drzwi w interaktywnym podglądzie 3D.", "description": "Konfigurator drzwi ułatwia sprzedaż produktów z wieloma wariantami. Klient widzi efekt wyborów od razu, a konfiguracja może zostać przekazana do koszyka, zapytania ofertowego albo systemu sprzedaży.", - "imageUrl": "/demo-door-preview.svg", + "imageUrl": "/demo-door-preview.png", "openLabel": "Otwórz konfigurator drzwi", "benefitsIntro": "Dla firm, które sprzedają drzwi, fronty, zabudowy i produkty wymagające precyzyjnego dopasowania wariantów.", "stats": [ diff --git a/public/demo-door-preview.png b/public/demo-door-preview.png new file mode 100644 index 0000000..28d14d0 Binary files /dev/null and b/public/demo-door-preview.png differ diff --git a/public/demo-door-preview.svg b/public/demo-door-preview.svg deleted file mode 100644 index 436d682..0000000 --- a/public/demo-door-preview.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/app/[locale]/dema/page.tsx b/src/app/[locale]/dema/page.tsx index dea33af..57de6cf 100644 --- a/src/app/[locale]/dema/page.tsx +++ b/src/app/[locale]/dema/page.tsx @@ -1,7 +1,8 @@ import type {Metadata} from 'next'; import {DemoBrowser} from '@/components/DemoBrowser'; +import {DemoSubnav} from '@/components/DemoSubnav'; import {SectionHeader} from '@/components/SectionHeader'; -import {demoContent} from '@/config/content'; +import {orderedDemos} from '@/config/content'; export const metadata: Metadata = { title: 'Dema konfiguratorów 3D | Ultifide', @@ -9,8 +10,6 @@ export const metadata: Metadata = { }; export default function DemosPage() { - const demos = [demoContent.desk, demoContent.room, demoContent.door]; - return (
@@ -20,7 +19,8 @@ export default function DemosPage() { title="Sprawdź konfiguratory 3D w jednym miejscu" description="Wybierz demo z listy, przetestuj je od razu w podglądzie, a potem przejdź do strony z opisem zastosowania i korzyści." /> - + +
diff --git a/src/app/[locale]/demo-biurko/page.tsx b/src/app/[locale]/demo-biurko/page.tsx new file mode 100644 index 0000000..85f3c97 --- /dev/null +++ b/src/app/[locale]/demo-biurko/page.tsx @@ -0,0 +1,14 @@ +import type {Metadata} from 'next'; +import {DemoPage} from '@/components/DemoPage'; +import {demoContent} from '@/config/content'; +import messages from '../../../../messages/pl.json'; + +export const metadata: Metadata = { + title: messages.metadata.deskTitle, + description: + 'Poznaj konfigurator 3D, który zwiększa konwersję i pozwala klientom tworzyć własne biurka regulowane w czasie rzeczywistym.' +}; + +export default function DeskDemoPage() { + return ; +} diff --git a/src/app/[locale]/demo-door/page.tsx b/src/app/[locale]/demo-door/page.tsx index 9df2189..ab2fd12 100644 --- a/src/app/[locale]/demo-door/page.tsx +++ b/src/app/[locale]/demo-door/page.tsx @@ -1,14 +1,5 @@ -import type {Metadata} from 'next'; -import {DemoPage} from '@/components/DemoPage'; -import {demoContent} from '@/config/content'; -import messages from '../../../../messages/pl.json'; - -export const metadata: Metadata = { - title: messages.metadata.doorTitle, - description: - 'Poznaj konfigurator 3D drzwi, który pozwala klientom dobrać model, kolor, przeszklenie, klamkę i detale w czasie rzeczywistym.' -}; +import {redirect} from 'next/navigation'; export default function DoorDemoPage() { - return ; + redirect('/pl/demo-drzwi'); } diff --git a/src/app/[locale]/demo-drzwi/page.tsx b/src/app/[locale]/demo-drzwi/page.tsx new file mode 100644 index 0000000..9df2189 --- /dev/null +++ b/src/app/[locale]/demo-drzwi/page.tsx @@ -0,0 +1,14 @@ +import type {Metadata} from 'next'; +import {DemoPage} from '@/components/DemoPage'; +import {demoContent} from '@/config/content'; +import messages from '../../../../messages/pl.json'; + +export const metadata: Metadata = { + title: messages.metadata.doorTitle, + description: + 'Poznaj konfigurator 3D drzwi, który pozwala klientom dobrać model, kolor, przeszklenie, klamkę i detale w czasie rzeczywistym.' +}; + +export default function DoorDemoPage() { + return ; +} diff --git a/src/app/[locale]/demo-pokoj/page.tsx b/src/app/[locale]/demo-pokoj/page.tsx new file mode 100644 index 0000000..3a84c90 --- /dev/null +++ b/src/app/[locale]/demo-pokoj/page.tsx @@ -0,0 +1,14 @@ +import type {Metadata} from 'next'; +import {DemoPage} from '@/components/DemoPage'; +import {demoContent} from '@/config/content'; +import messages from '../../../../messages/pl.json'; + +export const metadata: Metadata = { + title: messages.metadata.roomTitle, + description: + 'Poznaj konfigurator 3D, który pozwala klientom projektować całe pomieszczenia i zestawy mebli w czasie rzeczywistym.' +}; + +export default function RoomDemoPage() { + return ; +} diff --git a/src/app/[locale]/demo-room/page.tsx b/src/app/[locale]/demo-room/page.tsx index 3a84c90..a75755a 100644 --- a/src/app/[locale]/demo-room/page.tsx +++ b/src/app/[locale]/demo-room/page.tsx @@ -1,14 +1,5 @@ -import type {Metadata} from 'next'; -import {DemoPage} from '@/components/DemoPage'; -import {demoContent} from '@/config/content'; -import messages from '../../../../messages/pl.json'; - -export const metadata: Metadata = { - title: messages.metadata.roomTitle, - description: - 'Poznaj konfigurator 3D, który pozwala klientom projektować całe pomieszczenia i zestawy mebli w czasie rzeczywistym.' -}; +import {redirect} from 'next/navigation'; export default function RoomDemoPage() { - return ; + redirect('/pl/demo-pokoj'); } diff --git a/src/app/[locale]/demo/page.tsx b/src/app/[locale]/demo/page.tsx index 85f3c97..ad12179 100644 --- a/src/app/[locale]/demo/page.tsx +++ b/src/app/[locale]/demo/page.tsx @@ -1,14 +1,5 @@ -import type {Metadata} from 'next'; -import {DemoPage} from '@/components/DemoPage'; -import {demoContent} from '@/config/content'; -import messages from '../../../../messages/pl.json'; - -export const metadata: Metadata = { - title: messages.metadata.deskTitle, - description: - 'Poznaj konfigurator 3D, który zwiększa konwersję i pozwala klientom tworzyć własne biurka regulowane w czasie rzeczywistym.' -}; +import {redirect} from 'next/navigation'; export default function DeskDemoPage() { - return ; + redirect('/pl/demo-biurko'); } diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx index acd6d64..50c4ee2 100644 --- a/src/app/[locale]/layout.tsx +++ b/src/app/[locale]/layout.tsx @@ -1,8 +1,9 @@ import type {Metadata} from 'next'; -import {Poppins} from 'next/font/google'; +import localFont from 'next/font/local'; import {NextIntlClientProvider} from 'next-intl'; import {getMessages} from 'next-intl/server'; import {notFound} from 'next/navigation'; +import {ContactSection} from '@/components/ContactSection'; import {Footer} from '@/components/Footer'; import {Header} from '@/components/Header'; import {routing} from '@/i18n/routing'; @@ -12,9 +13,24 @@ type LocaleLayoutProps = { params: Promise<{locale: string}>; }; -const poppins = Poppins({ - subsets: ['latin', 'latin-ext'], - weight: ['400', '600', '700'], +const poppins = localFont({ + src: [ + { + path: '../fonts/Poppins-Regular.ttf', + weight: '400', + style: 'normal' + }, + { + path: '../fonts/Poppins-SemiBold.ttf', + weight: '600', + style: 'normal' + }, + { + path: '../fonts/Poppins-Bold.ttf', + weight: '700', + style: 'normal' + } + ], display: 'swap' }); @@ -44,6 +60,7 @@ export default async function LocaleLayout({children, params}: LocaleLayoutProps
{children} +