diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx
new file mode 100644
index 0000000..981388d
--- /dev/null
+++ b/src/app/[locale]/layout.tsx
@@ -0,0 +1,72 @@
+"use client";
+
+import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
+import ReactLenis from "lenis/react";
+import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
+import ProductCart from '@/components/ecommerce/cart/ProductCart';
+import { useParams } from 'next/navigation';
+import { LanguageSwitcher } from '@/components/LanguageSwitcher';
+import { Locale } from '@/lib/i18nConfig';
+
+export default function LocaleLayout({
+ children,
+}: Readonly<{ children: React.ReactNode }>)
+{
+ const params = useParams();
+ const locale = params.locale as Locale;
+
+ return (
+
+
+
+
+
+
+
+ {children}
+ {/* The ProductCart is a global component, typically rendered within a layout. Moved here. */}
+
+
{}}
+ items={[
+ {
+ id: "item1", name: "Sample Product", price: "99.99", quantity: 1,
+ imageSrc: "http://img.b2bpic.net/free-photo/modern-equipped-computer-lab_23-2149241207.jpg", imageAlt: "Sample Product Image"
+ }
+ ]}
+ total="99.99"
+ buttons={[
+ { text: "Checkout", onClick: () => console.log("Checkout clicked") }
+ ]}
+ />
+
+
+
+ );
+}
diff --git a/src/app/[locale]/page.tsx b/src/app/[locale]/page.tsx
new file mode 100644
index 0000000..2d87793
--- /dev/null
+++ b/src/app/[locale]/page.tsx
@@ -0,0 +1,74 @@
+"use client";
+
+import SplitAbout from '@/components/sections/about/SplitAbout';
+import ProductCardThree from '@/components/sections/product/ProductCardThree';
+import TeamCardTwo from '@/components/sections/team/TeamCardTwo';
+import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
+
+export default function LocalizedLandingPage() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index a8f719e..946d842 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,36 +1,25 @@
import type { Metadata } from "next";
-import { Halant } from "next/font/google";
-import { Inter } from "next/font/google";
+import { Public_Sans } from "next/font/google";
import "./globals.css";
import "@/lib/gsap-setup";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
-import { Public_Sans } from "next/font/google";
-
-
+import { i18n } from '@/lib/i18nConfig'; // New import
export const metadata: Metadata = {
title: 'Enkidu Soft - Engineering Excellence',
description: 'Enkidu Soft partners with enterprise leaders to architect, build, and scale transformative software solutions with rigorous engineering and deep market insight.',
openGraph: {
- "title": "Enkidu Soft - Engineering Excellence",
- "description": "Enkidu Soft partners with enterprise leaders to architect, build, and scale transformative software solutions with rigorous engineering and deep market insight.",
- "url": "https://www.enkidusoft.com/en",
- "siteName": "Enkidu Soft",
- "images": [
+ "title": "Enkidu Soft - Engineering Excellence", "description": "Enkidu Soft partners with enterprise leaders to architect, build, and scale transformative software solutions with rigorous engineering and deep market insight.", "url": "https://www.enkidusoft.com/en", "siteName": "Enkidu Soft", "images": [
{
- "url": "http://img.b2bpic.net/free-photo/geometric-abstract-background-technology-concept-connecting-dots-design_53876-153353.jpg",
- "alt": "Abstract data flow and secure connections"
+ "url": "http://img.b2bpic.net/free-photo/geometric-abstract-background-technology-concept-connecting-dots-design_53876-153353.jpg", "alt": "Abstract data flow and secure connections"
}
],
"type": "website"
},
twitter: {
- "card": "summary_large_image",
- "title": "Enkidu Soft - Engineering Excellence",
- "description": "Enkidu Soft partners with enterprise leaders to architect, build, and scale transformative software solutions with rigorous engineering and deep market insight.",
- "images": [
+ "card": "summary_large_image", "title": "Enkidu Soft - Engineering Excellence", "description": "Enkidu Soft partners with enterprise leaders to architect, build, and scale transformative software solutions with rigorous engineering and deep market insight.", "images": [
"http://img.b2bpic.net/free-photo/geometric-abstract-background-technology-concept-connecting-dots-design_53876-153353.jpg"
]
},
@@ -41,17 +30,23 @@ export const metadata: Metadata = {
};
const publicSans = Public_Sans({
- variable: "--font-public-sans",
- subsets: ["latin"],
+ variable: "--font-public-sans", subsets: ["latin"],
});
+// Generate static params for all locales
+export function generateStaticParams() {
+ return i18n.locales.map((locale) => ({ locale }));
+}
+
export default function RootLayout({
children,
+ params: { locale }, // Accept locale from the URL
}: Readonly<{
children: React.ReactNode;
+ params: { locale: string }; // Type definition for params
}>) {
return (
-
+
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 81874d5..66f0800 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -4,10 +4,11 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import ProductCardThree from '@/components/sections/product/ProductCardThree';
-import ProductCart from '@/components/ecommerce/cart/ProductCart';
import SplitAbout from '@/components/sections/about/SplitAbout';
import TeamCardTwo from '@/components/sections/team/TeamCardTwo';
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
+import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
+import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
export default function LandingPage() {
return (
@@ -63,14 +64,35 @@ export default function LandingPage() {
/>
-
+
+
+
+
@@ -108,19 +130,19 @@ export default function LandingPage() {
/>
-
-
{}}
- items={[
- {
- id: "item1", name: "Sample Product", price: "99.99", quantity: 1,
- imageSrc: "http://img.b2bpic.net/free-photo/modern-equipped-computer-lab_23-2149241207.jpg", imageAlt: "Sample Product Image"}
- ]}
- total="99.99"
- buttons={[
- { text: "Checkout", onClick: () => console.log("Checkout clicked") }
+
+
diff --git a/src/components/LanguageSwitcher.tsx b/src/components/LanguageSwitcher.tsx
new file mode 100644
index 0000000..8961b56
--- /dev/null
+++ b/src/components/LanguageSwitcher.tsx
@@ -0,0 +1,63 @@
+"use client";
+
+import { useRouter, usePathname } from 'next/navigation';
+import { i18n, Locale } from '@/lib/i18nConfig';
+import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './ui/select'; // Assuming shadcn-ui select component
+import { useState, useEffect } from 'react';
+
+// Placeholder for shadcn-ui select if not available:
+// Replace with your actual UI kit's Select/Dropdown or a simple