feat: phase 1 - i18n core infrastructure with EN/DE/FR locales

- Add middleware.ts for locale detection (URL path, cookie, Accept-Language)
- Update routing.ts to include en, de, fr locales
- Update layout.tsx with NextIntlClientProvider and dynamic lang attribute
- Create EN/DE/FR homepages, product listings, product details, about, and contact pages
- Serbian remains at root URL (/products, /about, /contact)
- English at /en/*, German at /de/*, French at /fr/*
This commit is contained in:
Unchained
2026-03-23 18:11:08 +02:00
parent ace1ac104e
commit f72f32fe60
18 changed files with 1495 additions and 198 deletions

15
middleware.ts Normal file
View File

@@ -0,0 +1,15 @@
import createMiddleware from "next-intl/middleware";
import { routing } from "./src/i18n/routing";
export default createMiddleware({
...routing,
localePrefix: "as-needed",
});
export const config = {
matcher: [
"/",
"/(sr|en|de|fr)/:path*",
"/((?!api|_next|_vercel|.*\\..*).*)",
],
};