diff --git a/.gitignore b/.gitignore index 5ef6a52..8871a17 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # dependencies /node_modules +.next /.pnp .pnp.* .yarn/* diff --git a/app/globals.css b/app/globals.css index a2dc41e..15e7246 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,8 +1,11 @@ +@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import "tailwindcss"; :root { --background: #ffffff; --foreground: #171717; + --primary: #0c1239; + --secondary: #f2a01c; } @theme inline { @@ -10,6 +13,8 @@ --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); + --color-primary: var(--primary); + --color-secondary: var(--secondary); } @media (prefers-color-scheme: dark) { @@ -20,7 +25,10 @@ } body { - background: var(--background); - color: var(--foreground); font-family: Arial, Helvetica, sans-serif; } + +* { + transition: 0.3s ease-in-out all; + font-family: "Roboto", sans-serif; +} diff --git a/app/layout.tsx b/app/layout.tsx index f7fa87e..10a23ad 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,5 +1,7 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; +import {dir} from "i18next"; +import { languages } from "../i18n/settings"; import "./globals.css"; const geistSans = Geist({ @@ -17,16 +19,17 @@ export const metadata: Metadata = { description: "Generated by create next app", }; + export default function RootLayout({ children, + params }: Readonly<{ children: React.ReactNode; + params:{lang:string} }>) { return ( - - + + {children} diff --git a/app/page.tsx b/app/page.tsx index 21b686d..efa7a72 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,103 +1,12 @@ import Image from "next/image"; +import Header from "../components/nav_foot/header"; +import Navbar from "@/components/nav_foot/navbar"; export default function Home() { return ( -
-
- Next.js logo -
    -
  1. - Get started by editing{" "} - - app/page.tsx - - . -
  2. -
  3. - Save and see your changes instantly. -
  4. -
- -
- - Vercel logomark - Deploy now - - - Read our docs - -
-
- +
+
+
); } diff --git a/assets/404.svg b/assets/404.svg new file mode 100644 index 0000000..5c02e8f --- /dev/null +++ b/assets/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/brands/gehl.png b/assets/brands/gehl.png new file mode 100644 index 0000000..4c263f5 Binary files /dev/null and b/assets/brands/gehl.png differ diff --git a/assets/brands/hyundai.png b/assets/brands/hyundai.png new file mode 100644 index 0000000..78c8402 Binary files /dev/null and b/assets/brands/hyundai.png differ diff --git a/assets/brands/jcb.png b/assets/brands/jcb.png new file mode 100644 index 0000000..ab779d1 Binary files /dev/null and b/assets/brands/jcb.png differ diff --git a/assets/brands/lonking.png b/assets/brands/lonking.png new file mode 100644 index 0000000..227cb35 Binary files /dev/null and b/assets/brands/lonking.png differ diff --git a/assets/brands/mitsubishi.png b/assets/brands/mitsubishi.png new file mode 100644 index 0000000..51e5e42 Binary files /dev/null and b/assets/brands/mitsubishi.png differ diff --git a/assets/brands/xcmg.png b/assets/brands/xcmg.png new file mode 100644 index 0000000..cdc1f5e Binary files /dev/null and b/assets/brands/xcmg.png differ diff --git a/assets/changeImg/1.png b/assets/changeImg/1.png new file mode 100644 index 0000000..a6e1d59 Binary files /dev/null and b/assets/changeImg/1.png differ diff --git a/assets/changeImg/2.jpg b/assets/changeImg/2.jpg new file mode 100644 index 0000000..818de6c Binary files /dev/null and b/assets/changeImg/2.jpg differ diff --git a/assets/changeImg/3.webp b/assets/changeImg/3.webp new file mode 100644 index 0000000..398796f Binary files /dev/null and b/assets/changeImg/3.webp differ diff --git a/assets/changeImg/4.jpg b/assets/changeImg/4.jpg new file mode 100644 index 0000000..eee6618 Binary files /dev/null and b/assets/changeImg/4.jpg differ diff --git a/assets/changeImg/jcb.avif b/assets/changeImg/jcb.avif new file mode 100644 index 0000000..3725c44 Binary files /dev/null and b/assets/changeImg/jcb.avif differ diff --git a/assets/cranes/avtocrane.png b/assets/cranes/avtocrane.png new file mode 100644 index 0000000..5ade5ef Binary files /dev/null and b/assets/cranes/avtocrane.png differ diff --git a/assets/cranes/avtokran.png b/assets/cranes/avtokran.png new file mode 100644 index 0000000..f95316b Binary files /dev/null and b/assets/cranes/avtokran.png differ diff --git a/assets/cranes/crane.png b/assets/cranes/crane.png new file mode 100644 index 0000000..b909ac8 Binary files /dev/null and b/assets/cranes/crane.png differ diff --git a/assets/cranes/dizel.png b/assets/cranes/dizel.png new file mode 100644 index 0000000..ef2327c Binary files /dev/null and b/assets/cranes/dizel.png differ diff --git a/assets/cranes/zoomlion.png b/assets/cranes/zoomlion.png new file mode 100644 index 0000000..125b87c Binary files /dev/null and b/assets/cranes/zoomlion.png differ diff --git a/assets/details/cranes/1-1.png b/assets/details/cranes/1-1.png new file mode 100644 index 0000000..3f8238f Binary files /dev/null and b/assets/details/cranes/1-1.png differ diff --git a/assets/details/cranes/1-2.png b/assets/details/cranes/1-2.png new file mode 100644 index 0000000..7ef3e84 Binary files /dev/null and b/assets/details/cranes/1-2.png differ diff --git a/assets/details/cranes/1-3.png b/assets/details/cranes/1-3.png new file mode 100644 index 0000000..82b754b Binary files /dev/null and b/assets/details/cranes/1-3.png differ diff --git a/assets/details/cranes/1-4.png b/assets/details/cranes/1-4.png new file mode 100644 index 0000000..143af85 Binary files /dev/null and b/assets/details/cranes/1-4.png differ diff --git a/assets/details/cranes/2-1.png b/assets/details/cranes/2-1.png new file mode 100644 index 0000000..94765d3 Binary files /dev/null and b/assets/details/cranes/2-1.png differ diff --git a/assets/details/cranes/2-2.png b/assets/details/cranes/2-2.png new file mode 100644 index 0000000..f0786ff Binary files /dev/null and b/assets/details/cranes/2-2.png differ diff --git a/assets/details/cranes/2-3.webp b/assets/details/cranes/2-3.webp new file mode 100644 index 0000000..fc9a56d Binary files /dev/null and b/assets/details/cranes/2-3.webp differ diff --git a/assets/details/cranes/2-4.webp b/assets/details/cranes/2-4.webp new file mode 100644 index 0000000..8db7540 Binary files /dev/null and b/assets/details/cranes/2-4.webp differ diff --git a/assets/details/cranes/3-1.png b/assets/details/cranes/3-1.png new file mode 100644 index 0000000..d979ad4 Binary files /dev/null and b/assets/details/cranes/3-1.png differ diff --git a/assets/details/cranes/3-2.png b/assets/details/cranes/3-2.png new file mode 100644 index 0000000..82e3314 Binary files /dev/null and b/assets/details/cranes/3-2.png differ diff --git a/assets/details/cranes/3-3.png b/assets/details/cranes/3-3.png new file mode 100644 index 0000000..3cc3afc Binary files /dev/null and b/assets/details/cranes/3-3.png differ diff --git a/assets/details/cranes/4-1.png b/assets/details/cranes/4-1.png new file mode 100644 index 0000000..8495b3b Binary files /dev/null and b/assets/details/cranes/4-1.png differ diff --git a/assets/details/cranes/4-3.png b/assets/details/cranes/4-3.png new file mode 100644 index 0000000..b91e0fa Binary files /dev/null and b/assets/details/cranes/4-3.png differ diff --git a/assets/details/cranes/4-5.jpg b/assets/details/cranes/4-5.jpg new file mode 100644 index 0000000..af5f769 Binary files /dev/null and b/assets/details/cranes/4-5.jpg differ diff --git a/assets/details/cranes/4-6.jpg b/assets/details/cranes/4-6.jpg new file mode 100644 index 0000000..bea3117 Binary files /dev/null and b/assets/details/cranes/4-6.jpg differ diff --git a/assets/details/cranes/4-7.jfif b/assets/details/cranes/4-7.jfif new file mode 100644 index 0000000..7cb8903 Binary files /dev/null and b/assets/details/cranes/4-7.jfif differ diff --git a/assets/details/cranes/4-8.jfif b/assets/details/cranes/4-8.jfif new file mode 100644 index 0000000..c86acc1 Binary files /dev/null and b/assets/details/cranes/4-8.jfif differ diff --git a/assets/details/cranes/5-1.png b/assets/details/cranes/5-1.png new file mode 100644 index 0000000..fb2fd86 Binary files /dev/null and b/assets/details/cranes/5-1.png differ diff --git a/assets/details/cranes/5-2.jpg b/assets/details/cranes/5-2.jpg new file mode 100644 index 0000000..bcbe560 Binary files /dev/null and b/assets/details/cranes/5-2.jpg differ diff --git a/assets/details/cranes/5-3.jfif b/assets/details/cranes/5-3.jfif new file mode 100644 index 0000000..7772b53 Binary files /dev/null and b/assets/details/cranes/5-3.jfif differ diff --git a/assets/details/cranes/5-4.png b/assets/details/cranes/5-4.png new file mode 100644 index 0000000..5ae8b51 Binary files /dev/null and b/assets/details/cranes/5-4.png differ diff --git a/assets/details/excavators/1-1.png b/assets/details/excavators/1-1.png new file mode 100644 index 0000000..22cc6d3 Binary files /dev/null and b/assets/details/excavators/1-1.png differ diff --git a/assets/details/excavators/1-2.png b/assets/details/excavators/1-2.png new file mode 100644 index 0000000..988af69 Binary files /dev/null and b/assets/details/excavators/1-2.png differ diff --git a/assets/details/excavators/1-3.jfif b/assets/details/excavators/1-3.jfif new file mode 100644 index 0000000..214cd93 Binary files /dev/null and b/assets/details/excavators/1-3.jfif differ diff --git a/assets/details/excavators/1-4.jfif b/assets/details/excavators/1-4.jfif new file mode 100644 index 0000000..369cd4b Binary files /dev/null and b/assets/details/excavators/1-4.jfif differ diff --git a/assets/details/excavators/1-5.jfif b/assets/details/excavators/1-5.jfif new file mode 100644 index 0000000..9ec4d2a Binary files /dev/null and b/assets/details/excavators/1-5.jfif differ diff --git a/assets/details/excavators/2-1.png b/assets/details/excavators/2-1.png new file mode 100644 index 0000000..a789257 Binary files /dev/null and b/assets/details/excavators/2-1.png differ diff --git a/assets/details/excavators/2-2.png b/assets/details/excavators/2-2.png new file mode 100644 index 0000000..f9d02b3 Binary files /dev/null and b/assets/details/excavators/2-2.png differ diff --git a/assets/details/excavators/3-1.png b/assets/details/excavators/3-1.png new file mode 100644 index 0000000..c6d9e74 Binary files /dev/null and b/assets/details/excavators/3-1.png differ diff --git a/assets/details/excavators/3-2.png b/assets/details/excavators/3-2.png new file mode 100644 index 0000000..1ff1c73 Binary files /dev/null and b/assets/details/excavators/3-2.png differ diff --git a/assets/details/excavators/3-3.jfif b/assets/details/excavators/3-3.jfif new file mode 100644 index 0000000..49baaed Binary files /dev/null and b/assets/details/excavators/3-3.jfif differ diff --git a/assets/details/excavators/3-4.jfif b/assets/details/excavators/3-4.jfif new file mode 100644 index 0000000..235e5a5 Binary files /dev/null and b/assets/details/excavators/3-4.jfif differ diff --git a/assets/details/excavators/4-1.png b/assets/details/excavators/4-1.png new file mode 100644 index 0000000..18395f5 Binary files /dev/null and b/assets/details/excavators/4-1.png differ diff --git a/assets/details/excavators/4-2.png b/assets/details/excavators/4-2.png new file mode 100644 index 0000000..b6c38d6 Binary files /dev/null and b/assets/details/excavators/4-2.png differ diff --git a/assets/details/excavators/4-3.png b/assets/details/excavators/4-3.png new file mode 100644 index 0000000..5526572 Binary files /dev/null and b/assets/details/excavators/4-3.png differ diff --git a/assets/details/excavators/4-4.jfif b/assets/details/excavators/4-4.jfif new file mode 100644 index 0000000..832244f Binary files /dev/null and b/assets/details/excavators/4-4.jfif differ diff --git a/assets/details/loaders/1-1.png b/assets/details/loaders/1-1.png new file mode 100644 index 0000000..cf3eee9 Binary files /dev/null and b/assets/details/loaders/1-1.png differ diff --git a/assets/details/loaders/1-2.png b/assets/details/loaders/1-2.png new file mode 100644 index 0000000..d4cbe48 Binary files /dev/null and b/assets/details/loaders/1-2.png differ diff --git a/assets/details/loaders/1-3.jpg b/assets/details/loaders/1-3.jpg new file mode 100644 index 0000000..8b7d167 Binary files /dev/null and b/assets/details/loaders/1-3.jpg differ diff --git a/assets/details/loaders/1-4.png b/assets/details/loaders/1-4.png new file mode 100644 index 0000000..50f1e33 Binary files /dev/null and b/assets/details/loaders/1-4.png differ diff --git a/assets/details/loaders/1-5.webp b/assets/details/loaders/1-5.webp new file mode 100644 index 0000000..3aa8d23 Binary files /dev/null and b/assets/details/loaders/1-5.webp differ diff --git a/assets/details/loaders/1-6.webp b/assets/details/loaders/1-6.webp new file mode 100644 index 0000000..a6106ef Binary files /dev/null and b/assets/details/loaders/1-6.webp differ diff --git a/assets/details/loaders/1-7.webp b/assets/details/loaders/1-7.webp new file mode 100644 index 0000000..d267f30 Binary files /dev/null and b/assets/details/loaders/1-7.webp differ diff --git a/assets/details/loaders/2-1.png b/assets/details/loaders/2-1.png new file mode 100644 index 0000000..14b4f6d Binary files /dev/null and b/assets/details/loaders/2-1.png differ diff --git a/assets/details/loaders/2-2.jpg b/assets/details/loaders/2-2.jpg new file mode 100644 index 0000000..e1f9904 Binary files /dev/null and b/assets/details/loaders/2-2.jpg differ diff --git a/assets/details/loaders/2-4.png b/assets/details/loaders/2-4.png new file mode 100644 index 0000000..48bc6b5 Binary files /dev/null and b/assets/details/loaders/2-4.png differ diff --git a/assets/details/loaders/2-5.jpg b/assets/details/loaders/2-5.jpg new file mode 100644 index 0000000..e5608f6 Binary files /dev/null and b/assets/details/loaders/2-5.jpg differ diff --git a/assets/details/loaders/3-1.png b/assets/details/loaders/3-1.png new file mode 100644 index 0000000..2c1e629 Binary files /dev/null and b/assets/details/loaders/3-1.png differ diff --git a/assets/details/loaders/3-2.jpeg b/assets/details/loaders/3-2.jpeg new file mode 100644 index 0000000..a98f2fa Binary files /dev/null and b/assets/details/loaders/3-2.jpeg differ diff --git a/assets/details/loaders/3-3.webp b/assets/details/loaders/3-3.webp new file mode 100644 index 0000000..49eb148 Binary files /dev/null and b/assets/details/loaders/3-3.webp differ diff --git a/assets/details/loaders/3-4.jpg b/assets/details/loaders/3-4.jpg new file mode 100644 index 0000000..4e6e736 Binary files /dev/null and b/assets/details/loaders/3-4.jpg differ diff --git a/assets/details/loaders/3-5.jpg b/assets/details/loaders/3-5.jpg new file mode 100644 index 0000000..9d26ad6 Binary files /dev/null and b/assets/details/loaders/3-5.jpg differ diff --git a/assets/details/loaders/3-6.jpg b/assets/details/loaders/3-6.jpg new file mode 100644 index 0000000..313ec76 Binary files /dev/null and b/assets/details/loaders/3-6.jpg differ diff --git a/assets/details/loaders/3-7.png b/assets/details/loaders/3-7.png new file mode 100644 index 0000000..3353b60 Binary files /dev/null and b/assets/details/loaders/3-7.png differ diff --git a/assets/details/loaders/3-8.jpg b/assets/details/loaders/3-8.jpg new file mode 100644 index 0000000..1ba6e88 Binary files /dev/null and b/assets/details/loaders/3-8.jpg differ diff --git a/assets/details/loaders/3-9.png b/assets/details/loaders/3-9.png new file mode 100644 index 0000000..fad5fe2 Binary files /dev/null and b/assets/details/loaders/3-9.png differ diff --git a/assets/details/roaders/1-1.png b/assets/details/roaders/1-1.png new file mode 100644 index 0000000..24a0f33 Binary files /dev/null and b/assets/details/roaders/1-1.png differ diff --git a/assets/details/roaders/1-2.png b/assets/details/roaders/1-2.png new file mode 100644 index 0000000..41686fb Binary files /dev/null and b/assets/details/roaders/1-2.png differ diff --git a/assets/details/roaders/1-3.png b/assets/details/roaders/1-3.png new file mode 100644 index 0000000..b04909d Binary files /dev/null and b/assets/details/roaders/1-3.png differ diff --git a/assets/details/roaders/2-1.png b/assets/details/roaders/2-1.png new file mode 100644 index 0000000..33b61ff Binary files /dev/null and b/assets/details/roaders/2-1.png differ diff --git a/assets/details/roaders/2-2.png b/assets/details/roaders/2-2.png new file mode 100644 index 0000000..73ebafc Binary files /dev/null and b/assets/details/roaders/2-2.png differ diff --git a/assets/details/roaders/2-3.png b/assets/details/roaders/2-3.png new file mode 100644 index 0000000..3a35370 Binary files /dev/null and b/assets/details/roaders/2-3.png differ diff --git a/assets/details/roaders/2-4.jfif b/assets/details/roaders/2-4.jfif new file mode 100644 index 0000000..c2af96c Binary files /dev/null and b/assets/details/roaders/2-4.jfif differ diff --git a/assets/details/roaders/3-1.png b/assets/details/roaders/3-1.png new file mode 100644 index 0000000..8e72c87 Binary files /dev/null and b/assets/details/roaders/3-1.png differ diff --git a/assets/details/roaders/3-2.png b/assets/details/roaders/3-2.png new file mode 100644 index 0000000..7d3558a Binary files /dev/null and b/assets/details/roaders/3-2.png differ diff --git a/assets/details/roaders/3-3.jfif b/assets/details/roaders/3-3.jfif new file mode 100644 index 0000000..7cd5221 Binary files /dev/null and b/assets/details/roaders/3-3.jfif differ diff --git a/assets/details/roaders/3-4.jfif b/assets/details/roaders/3-4.jfif new file mode 100644 index 0000000..14a6b10 Binary files /dev/null and b/assets/details/roaders/3-4.jfif differ diff --git a/assets/details/roaders/4-1.png b/assets/details/roaders/4-1.png new file mode 100644 index 0000000..c9a9849 Binary files /dev/null and b/assets/details/roaders/4-1.png differ diff --git a/assets/details/roaders/4-2.jfif b/assets/details/roaders/4-2.jfif new file mode 100644 index 0000000..09e01c4 Binary files /dev/null and b/assets/details/roaders/4-2.jfif differ diff --git a/assets/details/roaders/4-3.png b/assets/details/roaders/4-3.png new file mode 100644 index 0000000..9d4a6f5 Binary files /dev/null and b/assets/details/roaders/4-3.png differ diff --git a/assets/details/roaders/4-4.jfif b/assets/details/roaders/4-4.jfif new file mode 100644 index 0000000..48151f6 Binary files /dev/null and b/assets/details/roaders/4-4.jfif differ diff --git a/assets/details/roaders/4-5.png b/assets/details/roaders/4-5.png new file mode 100644 index 0000000..acadeb2 Binary files /dev/null and b/assets/details/roaders/4-5.png differ diff --git a/assets/details/roaders/4-6.jfif b/assets/details/roaders/4-6.jfif new file mode 100644 index 0000000..420caec Binary files /dev/null and b/assets/details/roaders/4-6.jfif differ diff --git a/assets/details/trucks/1-1.png b/assets/details/trucks/1-1.png new file mode 100644 index 0000000..f6c09d0 Binary files /dev/null and b/assets/details/trucks/1-1.png differ diff --git a/assets/details/trucks/1-2.webp b/assets/details/trucks/1-2.webp new file mode 100644 index 0000000..195410a Binary files /dev/null and b/assets/details/trucks/1-2.webp differ diff --git a/assets/details/trucks/1-3.webp b/assets/details/trucks/1-3.webp new file mode 100644 index 0000000..4d65358 Binary files /dev/null and b/assets/details/trucks/1-3.webp differ diff --git a/assets/details/trucks/1-4.webp b/assets/details/trucks/1-4.webp new file mode 100644 index 0000000..861f69a Binary files /dev/null and b/assets/details/trucks/1-4.webp differ diff --git a/assets/details/trucks/1-5.webp b/assets/details/trucks/1-5.webp new file mode 100644 index 0000000..befcc91 Binary files /dev/null and b/assets/details/trucks/1-5.webp differ diff --git a/assets/details/trucks/1-6.webp b/assets/details/trucks/1-6.webp new file mode 100644 index 0000000..fb490e3 Binary files /dev/null and b/assets/details/trucks/1-6.webp differ diff --git a/assets/details/trucks/1-7.webp b/assets/details/trucks/1-7.webp new file mode 100644 index 0000000..68486b8 Binary files /dev/null and b/assets/details/trucks/1-7.webp differ diff --git a/assets/details/trucks/1-8.webp b/assets/details/trucks/1-8.webp new file mode 100644 index 0000000..4d16707 Binary files /dev/null and b/assets/details/trucks/1-8.webp differ diff --git a/assets/details/trucks/1-9.webp b/assets/details/trucks/1-9.webp new file mode 100644 index 0000000..31b8a3d Binary files /dev/null and b/assets/details/trucks/1-9.webp differ diff --git a/assets/details/trucks/2-1.png b/assets/details/trucks/2-1.png new file mode 100644 index 0000000..e88b677 Binary files /dev/null and b/assets/details/trucks/2-1.png differ diff --git a/assets/details/trucks/2-2.webp b/assets/details/trucks/2-2.webp new file mode 100644 index 0000000..ec8fbc2 Binary files /dev/null and b/assets/details/trucks/2-2.webp differ diff --git a/assets/details/trucks/2-3.webp b/assets/details/trucks/2-3.webp new file mode 100644 index 0000000..cef2ac5 Binary files /dev/null and b/assets/details/trucks/2-3.webp differ diff --git a/assets/details/trucks/2-4.webp b/assets/details/trucks/2-4.webp new file mode 100644 index 0000000..3f03c6c Binary files /dev/null and b/assets/details/trucks/2-4.webp differ diff --git a/assets/details/trucks/2-5.jfif b/assets/details/trucks/2-5.jfif new file mode 100644 index 0000000..1dbc387 Binary files /dev/null and b/assets/details/trucks/2-5.jfif differ diff --git a/assets/details/trucks/2-6.jpg b/assets/details/trucks/2-6.jpg new file mode 100644 index 0000000..e619439 Binary files /dev/null and b/assets/details/trucks/2-6.jpg differ diff --git a/assets/details/trucks/2-7.png b/assets/details/trucks/2-7.png new file mode 100644 index 0000000..c1b679d Binary files /dev/null and b/assets/details/trucks/2-7.png differ diff --git a/assets/details/trucks/2-8.webp b/assets/details/trucks/2-8.webp new file mode 100644 index 0000000..140baa6 Binary files /dev/null and b/assets/details/trucks/2-8.webp differ diff --git a/assets/details/trucks/2-9.webp b/assets/details/trucks/2-9.webp new file mode 100644 index 0000000..660ac0f Binary files /dev/null and b/assets/details/trucks/2-9.webp differ diff --git a/assets/details/trucks/3-1.webp b/assets/details/trucks/3-1.webp new file mode 100644 index 0000000..32da2c3 Binary files /dev/null and b/assets/details/trucks/3-1.webp differ diff --git a/assets/details/trucks/3-10.webp b/assets/details/trucks/3-10.webp new file mode 100644 index 0000000..db93500 Binary files /dev/null and b/assets/details/trucks/3-10.webp differ diff --git a/assets/details/trucks/3-2.png b/assets/details/trucks/3-2.png new file mode 100644 index 0000000..f7a3ce9 Binary files /dev/null and b/assets/details/trucks/3-2.png differ diff --git a/assets/details/trucks/3-3.webp b/assets/details/trucks/3-3.webp new file mode 100644 index 0000000..c456574 Binary files /dev/null and b/assets/details/trucks/3-3.webp differ diff --git a/assets/details/trucks/3-4.webp b/assets/details/trucks/3-4.webp new file mode 100644 index 0000000..332a38d Binary files /dev/null and b/assets/details/trucks/3-4.webp differ diff --git a/assets/details/trucks/3-5.webp b/assets/details/trucks/3-5.webp new file mode 100644 index 0000000..bb81a62 Binary files /dev/null and b/assets/details/trucks/3-5.webp differ diff --git a/assets/details/trucks/3-6.webp b/assets/details/trucks/3-6.webp new file mode 100644 index 0000000..59c2649 Binary files /dev/null and b/assets/details/trucks/3-6.webp differ diff --git a/assets/details/trucks/3-7.png b/assets/details/trucks/3-7.png new file mode 100644 index 0000000..fc9e034 Binary files /dev/null and b/assets/details/trucks/3-7.png differ diff --git a/assets/details/trucks/3-8.webp b/assets/details/trucks/3-8.webp new file mode 100644 index 0000000..e7bc7fd Binary files /dev/null and b/assets/details/trucks/3-8.webp differ diff --git a/assets/details/trucks/3-9.webp b/assets/details/trucks/3-9.webp new file mode 100644 index 0000000..5a22c94 Binary files /dev/null and b/assets/details/trucks/3-9.webp differ diff --git a/assets/details/trucks/4-1.png b/assets/details/trucks/4-1.png new file mode 100644 index 0000000..4b3a052 Binary files /dev/null and b/assets/details/trucks/4-1.png differ diff --git a/assets/details/trucks/4-2.png b/assets/details/trucks/4-2.png new file mode 100644 index 0000000..1a91150 Binary files /dev/null and b/assets/details/trucks/4-2.png differ diff --git a/assets/details/trucks/4-3.png b/assets/details/trucks/4-3.png new file mode 100644 index 0000000..1356516 Binary files /dev/null and b/assets/details/trucks/4-3.png differ diff --git a/assets/details/trucks/4-4.png b/assets/details/trucks/4-4.png new file mode 100644 index 0000000..434fbe1 Binary files /dev/null and b/assets/details/trucks/4-4.png differ diff --git a/assets/details/trucks/4-5.png b/assets/details/trucks/4-5.png new file mode 100644 index 0000000..d42d430 Binary files /dev/null and b/assets/details/trucks/4-5.png differ diff --git a/assets/details/trucks/4-6.png b/assets/details/trucks/4-6.png new file mode 100644 index 0000000..0834b6d Binary files /dev/null and b/assets/details/trucks/4-6.png differ diff --git a/assets/excavator-vector.jpg b/assets/excavator-vector.jpg new file mode 100644 index 0000000..6ae77d8 Binary files /dev/null and b/assets/excavator-vector.jpg differ diff --git a/assets/excavator.png b/assets/excavator.png new file mode 100644 index 0000000..e9d2ee5 Binary files /dev/null and b/assets/excavator.png differ diff --git a/assets/excavators/digger.png b/assets/excavators/digger.png new file mode 100644 index 0000000..08ca388 Binary files /dev/null and b/assets/excavators/digger.png differ diff --git a/assets/excavators/excavator.png b/assets/excavators/excavator.png new file mode 100644 index 0000000..d99020b Binary files /dev/null and b/assets/excavators/excavator.png differ diff --git a/assets/excavators/excavator2.png b/assets/excavators/excavator2.png new file mode 100644 index 0000000..d978274 Binary files /dev/null and b/assets/excavators/excavator2.png differ diff --git a/assets/excavators/mini.png b/assets/excavators/mini.png new file mode 100644 index 0000000..f9f2e91 Binary files /dev/null and b/assets/excavators/mini.png differ diff --git a/assets/index.ts b/assets/index.ts new file mode 100644 index 0000000..2d792ef --- /dev/null +++ b/assets/index.ts @@ -0,0 +1,11 @@ +export {default as notFoundPage} from './404.svg' + +export {default as logoImg} from './logo-img.png' + +export {default as uzFlag} from './uz.svg'; + +export {default as ruFlag} from './ru.svg'; + +export { default as ekskavatorImage} from './excavator-vector.jpg'; + +export {default as ekskovator} from './excavator.png' \ No newline at end of file diff --git a/assets/loaders/loader.png b/assets/loaders/loader.png new file mode 100644 index 0000000..c654ed8 Binary files /dev/null and b/assets/loaders/loader.png differ diff --git a/assets/loaders/loader2.png b/assets/loaders/loader2.png new file mode 100644 index 0000000..95a4a12 Binary files /dev/null and b/assets/loaders/loader2.png differ diff --git a/assets/loaders/loader3.png b/assets/loaders/loader3.png new file mode 100644 index 0000000..b09c97f Binary files /dev/null and b/assets/loaders/loader3.png differ diff --git a/assets/logo-img.png b/assets/logo-img.png new file mode 100644 index 0000000..7a3bdb0 Binary files /dev/null and b/assets/logo-img.png differ diff --git a/assets/partners/ezgu.png b/assets/partners/ezgu.png new file mode 100644 index 0000000..89fb9ed Binary files /dev/null and b/assets/partners/ezgu.png differ diff --git a/assets/partners/fidokor.png b/assets/partners/fidokor.png new file mode 100644 index 0000000..5335f71 Binary files /dev/null and b/assets/partners/fidokor.png differ diff --git a/assets/partners/kohota.png b/assets/partners/kohota.png new file mode 100644 index 0000000..2825347 Binary files /dev/null and b/assets/partners/kohota.png differ diff --git a/assets/partners/minerva.png b/assets/partners/minerva.png new file mode 100644 index 0000000..80e0bf6 Binary files /dev/null and b/assets/partners/minerva.png differ diff --git a/assets/partners/nrg.png b/assets/partners/nrg.png new file mode 100644 index 0000000..3a2307b Binary files /dev/null and b/assets/partners/nrg.png differ diff --git a/assets/partners/tashkentcity.png b/assets/partners/tashkentcity.png new file mode 100644 index 0000000..911e783 Binary files /dev/null and b/assets/partners/tashkentcity.png differ diff --git a/assets/pricing/all-trucks.png b/assets/pricing/all-trucks.png new file mode 100644 index 0000000..3ebfd40 Binary files /dev/null and b/assets/pricing/all-trucks.png differ diff --git a/assets/pricing/asphalt.png b/assets/pricing/asphalt.png new file mode 100644 index 0000000..1442118 Binary files /dev/null and b/assets/pricing/asphalt.png differ diff --git a/assets/pricing/crane.png b/assets/pricing/crane.png new file mode 100644 index 0000000..d96c821 Binary files /dev/null and b/assets/pricing/crane.png differ diff --git a/assets/pricing/excavator.png b/assets/pricing/excavator.png new file mode 100644 index 0000000..4e5e3bb Binary files /dev/null and b/assets/pricing/excavator.png differ diff --git a/assets/pricing/loader.png b/assets/pricing/loader.png new file mode 100644 index 0000000..73f1fff Binary files /dev/null and b/assets/pricing/loader.png differ diff --git a/assets/pricing/truck.png b/assets/pricing/truck.png new file mode 100644 index 0000000..bea6646 Binary files /dev/null and b/assets/pricing/truck.png differ diff --git a/assets/product/product-1.jpg b/assets/product/product-1.jpg new file mode 100644 index 0000000..11603e1 Binary files /dev/null and b/assets/product/product-1.jpg differ diff --git a/assets/product/product-2.jpg b/assets/product/product-2.jpg new file mode 100644 index 0000000..11603e1 Binary files /dev/null and b/assets/product/product-2.jpg differ diff --git a/assets/product/product-3.jpg b/assets/product/product-3.jpg new file mode 100644 index 0000000..11603e1 Binary files /dev/null and b/assets/product/product-3.jpg differ diff --git a/assets/product/product-4.jpg b/assets/product/product-4.jpg new file mode 100644 index 0000000..11603e1 Binary files /dev/null and b/assets/product/product-4.jpg differ diff --git a/assets/roders/avtogreyder.png b/assets/roders/avtogreyder.png new file mode 100644 index 0000000..45fbc05 Binary files /dev/null and b/assets/roders/avtogreyder.png differ diff --git a/assets/roders/buldozer.png b/assets/roders/buldozer.png new file mode 100644 index 0000000..c431437 Binary files /dev/null and b/assets/roders/buldozer.png differ diff --git a/assets/roders/kat.png b/assets/roders/kat.png new file mode 100644 index 0000000..65da915 Binary files /dev/null and b/assets/roders/kat.png differ diff --git a/assets/roders/kompressor.png b/assets/roders/kompressor.png new file mode 100644 index 0000000..589d1d3 Binary files /dev/null and b/assets/roders/kompressor.png differ diff --git a/assets/ru.svg b/assets/ru.svg new file mode 100644 index 0000000..7e3c8ec --- /dev/null +++ b/assets/ru.svg @@ -0,0 +1,6 @@ +?xml version="1.0" encoding="UTF-8"?> + + + + + diff --git a/assets/trucks/gazel.png b/assets/trucks/gazel.png new file mode 100644 index 0000000..14896ab Binary files /dev/null and b/assets/trucks/gazel.png differ diff --git a/assets/trucks/mikser.png b/assets/trucks/mikser.png new file mode 100644 index 0000000..17eda25 Binary files /dev/null and b/assets/trucks/mikser.png differ diff --git a/assets/trucks/samosval.png b/assets/trucks/samosval.png new file mode 100644 index 0000000..6e23384 Binary files /dev/null and b/assets/trucks/samosval.png differ diff --git a/assets/trucks/trailer.png b/assets/trucks/trailer.png new file mode 100644 index 0000000..6485726 Binary files /dev/null and b/assets/trucks/trailer.png differ diff --git a/assets/uz.svg b/assets/uz.svg new file mode 100644 index 0000000..8c64515 --- /dev/null +++ b/assets/uz.svg @@ -0,0 +1,12 @@ + + + Created with Pixso. + + + + + + + + + diff --git a/components/nav_foot/header.tsx b/components/nav_foot/header.tsx new file mode 100644 index 0000000..e891d9a --- /dev/null +++ b/components/nav_foot/header.tsx @@ -0,0 +1,28 @@ +import { FaLocationDot } from "react-icons/fa6"; + +export default function Header() { + return ( +
+ {/* */} +
+ {/* */} +
+ + 00 00 232 33 998+ + + + + +
+ {/* */} +
+ Uzbekistan , Tashkent + + + +
+ {/* */} +
+
+ ); +} diff --git a/components/nav_foot/navbar.css b/components/nav_foot/navbar.css new file mode 100644 index 0000000..2a31d98 --- /dev/null +++ b/components/nav_foot/navbar.css @@ -0,0 +1,103 @@ +.nav_link_group_phone { + display: none; + } + + .toggler { + display: none; + } + + .Navbar_btn { + display: none; + } + + .toggler div { + width: 1.5rem; + height: 0.15rem; + margin: 0.5rem; + background: rgb(10, 131, 26); + background-color: rgb(10, 131, 26); + transition: 0.4s ease-in-out; + } + + .toggler .toggle_item2 { + width: 1rem; + } + + .overflow{ + position: absolute; + display: none; + width: 100%; + top: 0; + bottom: 0; + left: 0; + height: 100%; + background-color: rgba(66, 64, 64, 0.199); + } + + .overflow.active{ + display: block; + } + + @media (max-width: 768px) { + .nav_link_group { + display: none; + } + + .toggler { + display: block; + width: 100%; + } + + .toggler.toggle { + display: flex; + flex-direction: column; + align-items: end; + } + + /* animation toggle icon */ + .toggler.toggle .toggle_item1 { + transform: rotate(-45deg) translate(-20px, 5px); + } + .toggler.toggle .toggle_item2 { + opacity: 0; + } + .toggler.toggle .toggle_item3 { + transform: rotate(45deg) translate(-20px, -5px); + } + + .nav_link_group_phone { + position: absolute; + z-index: 1; + top: 0vh; + right: 0; + bottom: 0; + height: 100vh; + width: calc(50% + 100px); + max-width: 100%; + background-color: white; + background: white; + display: flex; + flex-direction: column; + justify-content: start; + align-items: start; + gap: 20px; + padding: 0 10px 10px 10px; + transform: translate(100%); + transition: 0.4s ease-in-out; + } + + .overflow{ + position: absolute; + display: none; + width: 100vh; + top: 0; + bottom: 0; + left: 0; + right: 0; + height: 100vh; + background-color: rgba(66, 64, 64, 0.199); + }} + + .active { + transform: translate(0); + } \ No newline at end of file diff --git a/components/nav_foot/navbar.tsx b/components/nav_foot/navbar.tsx new file mode 100644 index 0000000..8e4b647 --- /dev/null +++ b/components/nav_foot/navbar.tsx @@ -0,0 +1,134 @@ +"use client"; + +import { useTranslation } from "react-i18next"; +import { useState } from "react"; +import i18n from "@/i18n"; +import { Link } from "react-scroll"; +import Text from "../text"; +import "./navbar.css"; +import { logoImg } from "@/assets"; +import Image from "next/image"; + +export default function Navbar() { + // Togle variable + const [toggle, setToggle] = useState(false); + const [togglerIcon, setTogglerIcon] = useState("toggler"); + const [lang, setLang] = useState<"uz" | "ru">("uz"); + + const handleChangeLang = (lng: "uz" | "ru") => { + setLang(lng); + i18n.changeLanguage(lng); + }; + + // change active toggler + const changeToggler = () => { + // for show up responsive navbar + setToggle(!toggle); + + // animation class for toggle icon + togglerIcon === "toggler" + ? setTogglerIcon("toggler toggle") + : setTogglerIcon("toggler"); + }; + + return ( +
+
+
+
+
+ +
+ + {/* change language part */} +
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+ +
+ + SPES-TEXNIKA + + logo +
+ +
+
+
+
+ ); +} + +function LinkGroup({ togle_func }: { togle_func: () => void }) { + return ( + <> + + + + + + + + + + + + ); +} diff --git a/components/pageParts/products.tsx b/components/pageParts/products.tsx new file mode 100644 index 0000000..7138d88 --- /dev/null +++ b/components/pageParts/products.tsx @@ -0,0 +1,15 @@ +'use client' + +import React from 'react' +import Title from '../tools/title' +import { useTranslation } from 'react-i18next'; + + +export default function Products() { + const {t} = useTranslation("common"); + return ( +
+ + </div> + ) +} diff --git a/components/text.tsx b/components/text.tsx new file mode 100644 index 0000000..9bc0fb8 --- /dev/null +++ b/components/text.tsx @@ -0,0 +1,6 @@ +import { useTranslation } from "react-i18next"; + +export default function Text({txt}:{txt:string}) { + const { t } = useTranslation(); + return <div>{t(txt)}</div>; +} diff --git a/components/tools/title.tsx b/components/tools/title.tsx new file mode 100644 index 0000000..933a202 --- /dev/null +++ b/components/tools/title.tsx @@ -0,0 +1,8 @@ +import { TitleType } from '@/types' +import React from 'react' + +export default function Title({text}:TitleType) { + return ( + <div className='text-primary text-3xl ' >{text}</div> + ) +} diff --git a/i18n/index.ts b/i18n/index.ts new file mode 100644 index 0000000..98da6ff --- /dev/null +++ b/i18n/index.ts @@ -0,0 +1,22 @@ +import i18n from "i18next"; +import { initReactI18next } from "react-i18next"; + +i18n + .use(initReactI18next) + .init({ + resources: { + uz: { + common: require("../public/locales/uz/common.json"), + }, + ru: { + common: require("../public/locales/ru/common.json"), + }, + }, + lng: "uz", + fallbackLng: "uz", + interpolation: { + escapeValue: false, + }, + }); + +export default i18n; diff --git a/i18n/settings.ts b/i18n/settings.ts new file mode 100644 index 0000000..9a72f0d --- /dev/null +++ b/i18n/settings.ts @@ -0,0 +1 @@ +export const languages = ["uz", "ru"] as const; diff --git a/next-i18next.config.js b/next-i18next.config.js new file mode 100644 index 0000000..8b4202d --- /dev/null +++ b/next-i18next.config.js @@ -0,0 +1,8 @@ + +module.exports = { + i18n:{ + defaultLocale:'uz', + locales:['uz','ru'] + }, + reloadPrerender:false, +} \ No newline at end of file diff --git a/next.config.ts b/next.config.ts index e9ffa30..0ebf6ac 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,7 +1,8 @@ import type { NextConfig } from "next"; +const {i18n} = require("./next-i18next.config"); const nextConfig: NextConfig = { - /* config options here */ + i18n, }; export default nextConfig; diff --git a/package-lock.json b/package-lock.json index 720ebe9..33754ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,16 +8,25 @@ "name": "spestexnika_next", "version": "0.1.0", "dependencies": { + "i18next": "^25.5.3", + "i18next-resources-to-backend": "^1.2.1", "next": "15.5.4", + "next-i18next": "^15.4.2", "react": "19.1.0", - "react-dom": "19.1.0" + "react-dom": "19.1.0", + "react-i18next": "^16.0.0", + "react-icons": "^5.5.0", + "react-scroll": "^1.9.3" }, "devDependencies": { - "@tailwindcss/postcss": "^4", + "@tailwindcss/postcss": "^4.1.14", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "tailwindcss": "^4", + "@types/react-scroll": "^1.8.10", + "autoprefixer": "^10.4.21", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.14", "typescript": "^5" } }, @@ -34,6 +43,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@emnapi/runtime": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", @@ -954,6 +972,18 @@ "tailwindcss": "4.1.14" } }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.7.tgz", + "integrity": "sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==", + "license": "MIT", + "dependencies": { + "hoist-non-react-statics": "^3.3.0" + }, + "peerDependencies": { + "@types/react": "*" + } + }, "node_modules/@types/node": { "version": "20.19.19", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.19.tgz", @@ -968,7 +998,6 @@ "version": "19.2.0", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.0.tgz", "integrity": "sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA==", - "dev": true, "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -984,6 +1013,98 @@ "@types/react": "^19.2.0" } }, + "node_modules/@types/react-scroll": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/@types/react-scroll/-/react-scroll-1.8.10.tgz", + "integrity": "sha512-RD4Z7grbdNGOKwKnUBKar6zNxqaW3n8m9QSrfvljW+gmkj1GArb8AFBomVr6xMOgHPD3v1uV3BrIf01py57daQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.10.tgz", + "integrity": "sha512-uLfgBi+7IBNay8ECBO2mVMGZAc1VgZWEChxm4lv+TobGdG82LnXMjuNGo/BSSZZL4UmkWhxEHP2f5ziLNwGWMA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/browserslist": { + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001746", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001746.tgz", @@ -1020,11 +1141,21 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, + "node_modules/core-js": { + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz", + "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, "license": "MIT" }, "node_modules/detect-libc": { @@ -1037,6 +1168,13 @@ "node": ">=8" } }, + "node_modules/electron-to-chromium": { + "version": "1.5.228", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.228.tgz", + "integrity": "sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==", + "dev": true, + "license": "ISC" + }, "node_modules/enhanced-resolve": { "version": "5.18.3", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", @@ -1051,6 +1189,30 @@ "node": ">=10.13.0" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1058,6 +1220,70 @@ "dev": true, "license": "ISC" }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", + "dependencies": { + "void-elements": "3.1.0" + } + }, + "node_modules/i18next": { + "version": "25.5.3", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.3.tgz", + "integrity": "sha512-joFqorDeQ6YpIXni944upwnuHBf5IoPMuqAchGVeQLdWC2JOjxgM9V8UGLhNIIH/Q8QleRxIi0BSRQehSrDLcg==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.6" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/i18next-fs-backend": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.6.0.tgz", + "integrity": "sha512-3ZlhNoF9yxnM8pa8bWp5120/Ob6t4lVl1l/tbLmkml/ei3ud8IWySCHt2lrY5xWRlSU5D9IV2sm5bEbGuTqwTw==", + "license": "MIT" + }, + "node_modules/i18next-resources-to-backend": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/i18next-resources-to-backend/-/i18next-resources-to-backend-1.2.1.tgz", + "integrity": "sha512-okHbVA+HZ7n1/76MsfhPqDou0fptl2dAlhRDu2ideXloRRduzHsqDOznJBef+R3DFZnbvWoBW+KxJ7fnFjd6Yw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, "node_modules/jiti": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", @@ -1068,6 +1294,12 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, "node_modules/lightningcss": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", @@ -1307,6 +1539,24 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/magic-string": { "version": "0.30.19", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", @@ -1410,6 +1660,42 @@ } } }, + "node_modules/next-i18next": { + "version": "15.4.2", + "resolved": "https://registry.npmjs.org/next-i18next/-/next-i18next-15.4.2.tgz", + "integrity": "sha512-zgRxWf7kdXtM686ecGIBQL+Bq0+DqAhRlasRZ3vVF0TmrNTWkVhs52n//oU3Fj5O7r/xOKkECDUwfOuXVwTK/g==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + }, + { + "type": "individual", + "url": "https://locize.com" + } + ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@types/hoist-non-react-statics": "^3.3.6", + "core-js": "^3", + "hoist-non-react-statics": "^3.3.2", + "i18next-fs-backend": "^2.6.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "i18next": ">= 23.7.13", + "next": ">= 12.0.0", + "react": ">= 17.0.2", + "react-i18next": ">= 13.5.0" + } + }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -1438,6 +1724,32 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/node-releases": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", + "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1473,6 +1785,24 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/react": { "version": "19.1.0", "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", @@ -1494,6 +1824,61 @@ "react": "^19.1.0" } }, + "node_modules/react-i18next": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-16.0.0.tgz", + "integrity": "sha512-JQ+dFfLnFSKJQt7W01lJHWRC0SX7eDPobI+MSTJ3/gP39xH2g33AuTE7iddAfXYHamJdAeMGM0VFboPaD3G68Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.6", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 25.5.2", + "react": ">= 16.8.0", + "typescript": "^5" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/react-icons": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", + "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-scroll": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.9.3.tgz", + "integrity": "sha512-xv7FXqF3k63aSLNu4/NjFvRNI0ge7DmmmsbeGarP7LZVAlJMSjUuW3dTtLxp1Afijyv0lS2qwC0GiFHvx1KBHQ==", + "license": "MIT", + "dependencies": { + "lodash.throttle": "^4.1.1", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", @@ -1636,7 +2021,7 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -1653,6 +2038,46 @@ "dev": true, "license": "MIT" }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/yallist": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", diff --git a/package.json b/package.json index 07be9a1..59eeb39 100644 --- a/package.json +++ b/package.json @@ -8,16 +8,25 @@ "start": "next start" }, "dependencies": { + "i18next": "^25.5.3", + "i18next-resources-to-backend": "^1.2.1", + "next": "15.5.4", + "next-i18next": "^15.4.2", "react": "19.1.0", "react-dom": "19.1.0", - "next": "15.5.4" + "react-i18next": "^16.0.0", + "react-icons": "^5.5.0", + "react-scroll": "^1.9.3" }, "devDependencies": { - "typescript": "^5", + "@tailwindcss/postcss": "^4.1.14", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "@tailwindcss/postcss": "^4", - "tailwindcss": "^4" + "@types/react-scroll": "^1.8.10", + "autoprefixer": "^10.4.21", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.14", + "typescript": "^5" } } diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json new file mode 100644 index 0000000..16b5fae --- /dev/null +++ b/public/locales/ru/common.json @@ -0,0 +1,171 @@ +{ + "home": "Главное", + "products": "Продукты", + "news": "Новости", + "contact": "Контакты", + "home-h1-1": "Постройте свою мечту с нашим строительным оборудованием", + "home-h1-2": "Мы предоставляем лучшее строительное оборудование для вас", + "home-p-1": "Высокая производительность и долговечность для любых строительных задач.", + "home-p-2": "Надежность, производительность и долговечность для успешного выполнения любых строительных проектов.", + "pricing-h2": "Прокат спецтехники в Ташкенте", + "amazing": "Потрясающее", + "equipment": "Оборудование", + "trucks": "Грузовые автомобили", + "cranes": "Краны", + "forklift-trucks": "Вилочные погрузчики", + "forklift-truck": "Вилочный погрузчик", + "excavators": "Экскаваторы", + "excavator": "Экскаватор", + "road-repairs": "Дорожные ремонтные", + "agreement": "По договоренности", + "cement-trucks": "Автоцементовозы", + "dumb-trucks": "Самосвалы", + "dumb-truck": "Самосвал", + "trailers": "Тягачи", + "trailer": "Тягач", + "gazels": "Газели", + "avtotowers": "Автовышки", + "avtocranes": "Автокраны", + "crawler-cranes": "Гусеничные краны", + "crawler-crane": "Гусеничный кран", + "tower-cranes": "Башенные краны", + "tower-crane": "Башенный кран", + "lifters": "Дизельные подъемники", + "lifter": "Дизельный подъемник", + "front-loaders": "Фронтальные погрузчики", + "front-loader": "Фронтальный погрузчик", + "tele-loaders": "Телескопические погрузчики", + "tele-loader": "Телескопические погрузчики", + "crawler-excavators": "Гусеничные экскаваторы", + "crawler-excavator": "Гусеничный экскаватор", + "wheel-excavators": "Колесные экскаваторы", + "wheel-excavator": "Колесный экскаватор", + "mini-excavators": "Мини-экскаваторы", + "excavator-loaders": "Экскаватор-погрузчики", + "excavator-loader": "Экскаватор-погрузчик", + "avtograders": "Автогрейдеры", + "avtograder": "Автогрейдер", + "buldozers": "Бульдозеры", + "buldozer": "Бульдозер", + "katkas": "Катки", + "katka": "Катка", + "compressors": "Компрессоры", + "testimonials": "Отзывы", + "clients'": "Клиентов", + "testimonial-h2": "Что говорят о нас наши прекрасные клиенты", + "feedback-1": "Мы доверяем этой компании в аренде тяжелой техники в течение последних трех лет, и мы очень довольны ее обслуживанием. Качество их оборудования на высшем уровне, а их поддержка клиентов не имеет себе равных. От кранов до экскаваторов - у них есть все необходимое для эффективного и безопасного выполнения работ.", + "feedback-2": "На протяжении многих лет я работал с несколькими компаниями по аренде, но эта компания выделяется своим профессионализмом и надежностью. Погрузчики и компрессоры, которые мы арендовали, были в отличном состоянии, а доставка была произведена точно в срок. Их команда всегда готова прийти на помощь и обеспечить бесперебойную работу. Настоятельно рекомендую!", + "feedback-3": "Когда речь заходит о тяжелой технике, простой невозможен. Именно поэтому мы доверяем SPES-TEXNIKA все наши услуги по аренде. Обширный парк самосвалов и экскаваторов компании позволяет нам всегда получать необходимое оборудование в нужное время. Их быстрая реакция и гибкие условия аренды делают их идеальным выбором для любого проекта.", + "feedback-4": "Мы уже более года пользуемся услугами компании SPES-TEXNIKA для аренды оборудования, и они неизменно предоставляют отличный сервис. Краны и компрессоры, которые мы арендовали, были в хорошем состоянии и работали безупречно. Их команда обладает знаниями и всегда делает все возможное, чтобы обеспечить бесперебойную работу наших проектов. Мы бы никому другому не доверили наше оборудование.", + "brand-h2": "Транспортный парк состоит из спецтехники мировых брендов", + "about-h2": "Мы предлагаем вам лучшее", + "about-p": "Мы предлагаем в аренду только надежное и современное оборудование от ведущих мировых производителей. Наша техника регулярно проходит техническое обслуживание, что гарантирует ее бесперебойную работу на протяжении всего срока аренды. Кроме того, наши специалисты всегда готовы оказать вам квалифицированную помощь и консультацию по всем вопросам, связанным с эксплуатацией арендованного оборудования.", + "about-block-quote": "Пожалуйста, обратите внимание на наши специальные предложения и скидки! Свяжитесь с нами сегодня и получите консультацию от наших экспертов", + "contact-us": "Свяжитесь с нами", + "news-h2": "Последние новости и обновления", + "Excavator": "Экскаватор", + "faq-h2": "Часто задаваемые вопросы", + "faq1": "Можно ли заказать спецтехнику на выходных ?", + "faq-answer-1": "Да, можно. Мы принимаем и выполняем заказы 24/7.", + "faq2": "Какой минимальный срок оказания услуг по спецтехнике ?", + "faq-answer-2": "Минимальный срок аренды составляет от 30 часов.", + "faq3": "Какие виды спецтехники есть у вас ?", + "faq-answer-3": "В нашем автопарке имеется:", + "faq-answer-3-1": "Манипуляторы грузоподъемностью до 7 тонн", + "faq-answer-3-2": "Колесные и гусеничные экскаваторы", + "faq-answer-3-3": "Фронтальные и вилочные(телескопические) погрузчики и другие", + "faq4": " Форма оплата?", + "faq-answer-4": "Форма оплата любая, в том числе через мобильное приложения.", + "partner-h2": "Наши партнёры", + "contact-h2": "Заказать звонок", + "footer-p": "Надежность, производительность и долговечность для успешного выполнения любых строительных проектов.", + "call": "Перезвони мне", + "subscribe": "Подписывайтесь на нас", + "links": "Полезная ссылка", + "contact-info": "Контактная информация", + "length": "Длина", + "width": "Ширина", + "height": "Высота", + "load": "Грузоподъемность", + "compressor": "Компрессор", + "conditioning": "Кондиционер", + "rent-tower-crane": "Аренда башенные краны", + "more": "Узнать больше", + "presssing-width": "Ширина уплотнения", + "max-height": "Максимальная высота", + "max-length": "Максимальная длина", + "gasoline": "Тип топлива", + "gasoline-volume": "Емкость топлива", + "air-volume": "Емкость воздуха", + "compressor-volume": "Емкость компрессора", + "compressing-volume": "Давление сжатия", + "power": "Мощность двигателя", + "transmission": "Коробка передач", + "max-speed": "Максимальная скорость", + "compressor-desc": "Емкость бака, показанная на картинке, средняя и может составлять от 30 до 60 литров. Такого объема будет достаточно для длительного использования. Этот компрессор можно использовать в автомобильных мастерских, на небольших промышленных предприятиях и во многих других местах. Он удобен в использовании со многими воздушными инструментами и приспособлениями.", + "book": "Заказать", + "ask": "Спросить в Telegram", + "description": "Описание", + "avtotower": "Автовышка", + "avtocrane": "Автокран", + "samosval": "Самосвалы", + "details": "Детали", + "feature1": "Лучшая строительная техника", + "feature2": "По доступной цене", + "feature3": "Вопреки общему мнению", + "feature4": "Проверка качества", + "feature5": "Техническая поддержка", + "feature6": "Сервис в нужное время", + "weight": "Вес", + "contacts": "Контакты", + "rent-samosval" :"Аренда Самосвалов", + "rent-cement-trucks": "Аренда Автоцементовозов", + "rent-avtocranes": "Аренда Автокранов", + "rent-trailers": "Аренда Тягачов", + "rent-gazels": "Аренда Газелов", + "rent-avtotower": "Аренда Автовышков", + "rent-crawler-cranes": "Аренда Гусеничной кранов", + "rent-lifters": "Аренда Дизельное подъемников", + "rent-excavator-loader": "Аренда Экскаватор-погрузчиков", + "rent-crawler-excavators": "Аренда Гусеничное экскаваторов", + "rent-mini-excavators": "Аренда Мини-экскаваторов", + "rent-wheel-excavators": "Аренда Колесное экскаваторов", + "rent-forklift-trucks": "Аренда вилочное Погрузчиков", + "rent-front-loaders": "Аренда Фронтальное погрузчиков", + "rent-tele-loaders": "Аренда телескопическое погрузчиков", + "rent-avtograder": "Аренда Автогрейдеров", + "rent-buldozer": "Аренда Бульдозеров", + "rent-compressor": "Аренда Компрессоров", + "rent-katkas": "Аренда Катков", + "cement-truck": "Автоцементовоз", + "tank-volume": "Объем бака", + "intercooler": "Интеркулер", + "yes": "Есть", + "turbo-dizel": "Турбодизель", + "digging-depth": "Глубина копания", + "gazel": "Газель", + "knife": "Ширина лезвия", + "bom-length": "Длина стрелы", + "header-location": "Узбекистан, Ташкент", + "phone": "Номер телефона", + "trailer-desc": "Грузовик, представленный на изображении, представляет собой мощную и универсальную машину, способную выполнять широкий спектр задач. Прочная конструкция и мощный двигатель делают его идеальным для перевозки тяжелых грузов, а удобная кабина и удобное управление обеспечивают безопасность оператора и производительность. Передовые технологии и инновационные функции грузовика делают его лидером в отрасли грузоперевозок. Благодаря своим впечатляющим эксплуатационным характеристикам и долговечности грузовик, несомненно, превзойдет все ожидания и обеспечит выдающиеся результаты.", + "cement-truck-desc": "Цементовоз, представленный на снимке, представляет собой прочное транспортное средство, предназначенное для эффективной перевозки цемента и других сыпучих материалов. Его мощный двигатель и прочное шасси обеспечивают бесперебойную работу и длительный срок службы даже в сложных условиях. Большая вместимость цистерны и усовершенствованная система разгрузки обеспечивают быструю и эффективную доставку, сводя к минимуму время простоя и повышая производительность. Благодаря исключительной грузоподъемности, топливной экономичности и удобству для водителя, эта цистерна с цементом является экономичным и рациональным решением для перевозки сыпучих материалов.", + "gazel-desc": "Грузовик 'Газель NEXT' - это универсальный и надежный коммерческий автомобиль, который идеально подходит для различных применений. Гладкий белый кузов и синий брезент, закрывающий грузовой отсек, придают ему современный и стильный вид. Мощный двигатель и прочная конструкция грузовика позволяют ему справляться даже с самыми сложными задачами, а удобная кабина и удобное управление обеспечивают безопасность оператора и производительность. Благодаря впечатляющей грузоподъемности и топливной экономичности грузовик GAZelle NEXT является экономичным и результативным решением для предприятий любого размера.", + "avtocrane-desc": "Автокран - это мощный и универсальный автомобильный кран, предназначенный для различных применений, включая строительство, транспортировку и промышленные операции. Он оснащен прочным шасси, мощной стрелой с грузоподъемностью и гидравлической системой для бесперебойной работы. Кран оснащен выносными опорами для дополнительной устойчивости, и благодаря своей конструкции, устанавливаемой на грузовике, его можно легко транспортировать на различные рабочие места.", + "avtotower-desc": "На этом снимке изображен шарнирно-сочлененный подъемник стрелы - универсальное оборудование, используемое для подъема на возвышенности. Он оснащен мощной трансмиссией 4x4, обеспечивающей оптимальную работу на неровной местности, и просторной платформой для комфорта и безопасности оператора. Шарнирная конструкция стрелы обеспечивает точное позиционирование и доступ к труднодоступным местам. Благодаря максимальной рабочей высоте в 45 футов, этот подъемник идеально подходит для различных наружных работ, включая строительство, техническое обслуживание и ландшафтный дизайн. При работе на возвышенностях, например, при ремонте зданий, покраске, мытье окон. В строительных работах, например, монтаж металлоконструкций, выполнение электротехнических и алхимических работ по дереву. Очень требователен к уходу за высокими деревьями в лесоводстве и садоводстве", + "lifter-desc": "На снимках показаны надежные ножничные подъемники с дизельным двигателем, предназначенные для использования на открытом воздухе. Они оснащены просторной платформой с достаточным рабочим пространством и гидравлической системой для плавного и контролируемого подъема. Ножничный подъемник оснащен выдвижными опорами для устойчивости на неровной местности, а его максимальная рабочая высота составляет 10,2 метра. Эта модель идеально подходит для строительства, технического обслуживания и промышленного применения, где требуется надежный и эффективный доступ к рабочим пространствам на возвышенности.", + "tower-crane-desc": " На изображениях показаны мощные башенные краны, предназначенные для различных применений, включая строительные и инфраструктурные проекты. Он оснащен прочной мачтой с высокой грузоподъемностью и гидравлической системой для бесперебойной работы. Кран оснащен удобной кабиной оператора для улучшения обзора и контроля, а также имеет широкий диапазон перемещения благодаря стреле и крюку. Эта модель известна своей надежностью и эффективностью, что делает ее популярным выбором для сложных строительных проектов.", + "excavator-loader-desc": "Это мощная и универсальная машина, которая идеально подходит для различных применений, включая строительство, сельское хозяйство и ландшафтный дизайн. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. Он также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот экскаватор-погрузчик оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.", + "crawler-excavator-desc": "Этот экскаватор является мощной и универсальной машиной, способной выполнять даже самые сложные работы. Благодаря прочной конструкции и мощному двигателю он идеально подходит для тяжелых строительных и земляных работ. Усовершенствованная гидравлическая система экскаватора обеспечивает точное управление и бесперебойную работу, а удобная кабина - безопасность и эффективность работы оператора. Обладая впечатляющей глубиной копания и радиусом действия, этот экскаватор с легкостью справится с любым проектом.", + "wheel-excavator-desc": "Это мощный и универсальный колесный экскаватор, предназначенный для различных применений, включая строительство, ландшафтный дизайн и сельское хозяйство. Он оснащен просторной кабиной оператора с отличным обзором, мощным двигателем и гидравлической системой для бесперебойной работы. Экскаватор оснащен стандартным ковшом для копания и перемещения материалов, а также гидравлическим рычагом для точного перемещения предметов. Он также оснащен отвалом для выравнивания поверхностей.", + "avtograder-desc": "Это мощная и универсальная машина, которая идеально подходит для различных применений, включая дорожное строительство, техническое обслуживание и ремонт. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. 14-метровый автогрейдер также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономику. Кроме того, этот автогрейдер оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.", + "forklift-truck-desc": "Это прочная и надежная рабочая лошадка, созданная для работы в сложных условиях. Мощный двигатель и прочная конструкция позволяют ей без особых усилий переносить тяжелые грузы на неровной местности, что делает ее идеальной для строительных площадок, складов и работ на открытом воздухе. Усовершенствованная гидравлическая система вилочного погрузчика обеспечивает точный и плавный подъем, а удобная кабина обеспечивает безопасное и эргономичное рабочее пространство для оператора. Обладая исключительными внедорожными возможностями, впечатляющей грузоподъемностью и прочной конструкцией, этот вилочный погрузчик Hangcha сконструирован таким образом, чтобы выдерживать самые суровые условия и обеспечивать выдающуюся производительность.", + "front-loader-desc": "Представленный на снимке колесный погрузчик - это мощная и универсальная машина, предназначенная для выполнения самых сложных работ. Прочная конструкция и мощный двигатель позволяют без особых усилий загружать, перемещать и транспортировать тяжелые материалы, что делает его идеальным решением для строительства, добычи полезных ископаемых и промышленного применения. Усовершенствованная гидравлическая система колесного погрузчика обеспечивает точную и плавную работу, а просторная и удобная кабина обеспечивает оператору оптимальный обзор и контроль. Обладая впечатляющей грузоподъемностью, отличной маневренностью и прочной конструкцией, этот колесный погрузчик обеспечивает исключительную производительность.", + "buldozer-desc": "Это мощный и универсальный гусеничный трактор, который идеально подходит для различных областей применения, включая добычу полезных ископаемых, строительство и лесное хозяйство. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. Он также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот трактор оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.", + "katka-desc": "Это мощный и универсальный тандемный каток, который идеально подходит для различных применений, включая дорожное строительство, техническое обслуживание и ремонт. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. ARX 95 также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот каток оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.", + "dumb-truck-desc": "Грузовик, представленный на изображении, представляет собой надежную и мощную машину, созданную для перевозки грузов в тяжелых условиях на труднопроходимой местности. Прочная конструкция и мощный двигатель позволяют ему без особых усилий перевозить большие объемы материалов по неровным дорогам и покрытиям. Гидравлическая система подъема самосвала обеспечивает быструю и эффективную разгрузку, повышая производительность и сводя к минимуму время простоя. Благодаря исключительной грузоподъемности, проходимости на бездорожье и прочному дизайну этот самосвал является надежным и эффективным решением для строительной, горнодобывающей и других требовательных отраслей промышленности.", + "news-title1": "Лучший прокат оборудования для твой следующий проект", + "news-title2": "Новый погрузчик - это именно то, что вам нужно!", + "news-title3": "Новый комплект компрессоров специально для вас", + "news-title4": "С нашими мощными кранами ваша работа станет проще" +} \ No newline at end of file diff --git a/public/locales/uz/common.json b/public/locales/uz/common.json new file mode 100644 index 0000000..218a9c1 --- /dev/null +++ b/public/locales/uz/common.json @@ -0,0 +1,173 @@ +{ + "home": "Asosiy", + "products": "Maxsulotlar", + "news": "Yangiliklar", + "contact": "Kontakt", + "home-h1-1": "Bizning qurilish uskunalarimiz bilan orzuingizni yarating", + "home-h1-2": "Biz siz uchun eng yaxshi qurilish uskunalarini taqdim etamiz", + "home-p-1": "Har qanday qurilish vazifalari uchun yuqori mahsuldorlik va chidamlilik.", + "home-p-2": "Har qanday qurilish loyihalarini muvaffaqiyatli bajarish uchun ishonchlilik, ishlash va chidamlilik.", + "pricing-h2": "Toshkentda maxsus texnika ijarasi", + "amazing": "Ajoyib", + "equipment": "Qurilmalar", + "trucks": "Yuk mashinalari", + "cranes": "Kranlar", + "forklift-trucks": "Forkliftlar", + "forklift-truck": "Forklift", + "excavators": "Ekskavatorlar", + "excavator": "Ekskavator", + "road-repairs": "Yo'l ta'miri", + "agreement": "Kelishuv asosida", + "cement-trucks": "Avtosementovozlar", + "dumb-trucks": "Samosvallar", + "dumb-truck": "Samosval", + "trailers": "Treylerlar", + "trailer": "Treyler", + "gazels": "Gazellar", + "avtotowers": "Avtominoralar", + "avtocranes": "Avtokranlar", + "crawler-cranes": "Paletli kranlar", + "crawler-crane": "Paletli kran", + "tower-cranes": "Minora kranlari", + "tower-crane": "Minora krani", + "lifters": "Dizel ko'targichlar", + "lifter": "Dizel ko'targich", + "front-loaders": "Old yuklagichlar", + "front-loader": "Old yuklagich", + "tele-loaders": "Teleskopik yuklagichlar", + "tele-loader": "Teleskopik yuklagich", + "crawler-excavators": "Paletli ekskavatorlar", + "crawler-excavator": "Paletli ekskavator", + "wheel-excavators": "G'ildirakli ekskavatorlar", + "wheel-excavator": "G'ildirakli ekskavator", + "mini-excavators": "Mini-ekskavatorlar", + "excavator-loaders": "Ekskavator yuklagichlari", + "excavator-loader": "Ekskavator-yuklagich", + "avtograders": "Avtogreyderlar", + "avtograder": "Avtogreyder", + "buldozers": "Buldozerlar", + "buldozer": "Buldozer", + "katkas": "Katkalar", + "katka": "Katka", + "compressors": "Kompressorlar", + "testimonials": "Sharhlar", + "clients'": "Mijozlar", + "testimonial-h2": "Bizning ajoyib mijozlarimiz biz haqimizda nima deyishadi", + "feedback-1": "iz bu kompaniyaga ogʻir texnika ijaraga olish boʻyicha soʻnggi uch yil ichida ishonch bildirib kelamiz va uning xizmatidan juda mamnunmiz. Uning jihozlarining sifatini eng yuqori darajada, mijozlarga xizmat koʻrsatish borasida tengsizdir. Kranlardan ekskavatorlargacha, ularda ishlarni samarali va xavfsiz bajarish uchun barcha zarur jihozlar mavjud.", + "feedback-2": "Koʻp yillar davomida men bir nechta ijaraga beruvchi kompaniyalar bilan ishlaganman, ammo bu kompaniya oʻzining professionalligi va ishonchliligi bilan ajralib turadi. Biz ijaraga olgan yuk mashinalari va kompressorlar aʼlo holatda boʻlib, yetkazib berish aniq belgilangan vaqtda amalga oshirildi. Ularning jamoasi har doim yordam berishga tayyor va uzluksiz ishni taʼminlaydi. Ishonch bilan tavsiya etaman!", + "feedback-3": "Ogʻir texnika masalasida ishonchli sherikni tanlash juda muhim. Shuning uchun biz barcha ijaraga berish xizmatlari uchun SPES-TEXNIKA kompaniyasiga ishonamiz. Ularning keng koʻlamli samoсval va ekskavator parki bizga har doim zarur texnika ni oʻz vaqtida olish imkoniyatini beradi. Tezkor xizmat koʻrsatish va moslashuvchan ijarа shartlari ularni har qanday loyiha uchun eng yaxshi tanlovga aylantiradi.", + "feedback-4": "Biz SPES-TEXNIKA kompaniyasining ijaraga berish xizmatlaridan bir yildan ortiq vaqt davomida foydalanib kelmoqdamiz va ular doimo yuqori sifatli xizmat ko'rsatishmoqda. Ijaraga olgan kranlarimiz va kompressorlarimiz yaxshi holatda bo'lib, muammosiz ishladi. Ularning jamoasi yuqori malakali bo'lib, loyihalarimiz uzluksiz davom etishi uchun barcha imkoniyatlarni ishga soladilar. Biz boshqa hech kimga o'z jihozlarimizni ishonib topshirmaymiz.", + "brand-h2": "Avtoparkimiz jahon brendlarining maxsus texnikalaridan iborat", + "about-h2": "Biz sizga eng yaxshisini taklif qilamiz", + "about-p": "Toshkentda ixtisoslashtirilgan uskunalarni ijaraga olish murakkab loyihalarni amalga oshirishni soddalashtiradigan va qurilish jarayonlarini tezlashtiradigan, shu bilan birga eng yuqori natijani ta'minlaydigan eng muhim xizmatdir. Bunday uskunani sotib olish muammosi bir nechta jihozlarni sotib olish bilan bog'liq yuqori xarajatlar va uzoq muddatli qoplash muddatlarini hisobga olgan holda qiyin bo'lishi mumkin. Yaxshiyamki, bizning kompaniyamiz tejamkor alternativani taklif qiladi: ixtisoslashtirilgan uskunalarni ijaraga berish xizmatlari.", + "about-block-quote": "Iltimos, bizning maxsus takliflarimiz va chegirmalarimizga e'tibor bering! Bugun biz bilan bog'laning va mutaxassislarimizdan maslahat oling", + "contact-us": "Biz bilan bog'laning", + "news-h2": "So'nggi yangiliklar va yangilanishlar", + "Excavator": "Ekskavator", + "faq-h2": "Tez-tez so'raladigan savollar", + "faq1": "Dam olish kunlari maxsus jihozlarga buyurtma berish mumkinmi ?", + "faq-answer-1": "Ha, mumkin. Biz 24/7 buyurtmalarni qabul qilamiz va bajaramiz.", + "faq2": "Maxsus texnika xizmatlarini ko'rsatishning minimal muddati qancha ?", + "faq-answer-2": "Minimal ijara muddati 30 soatdan boshlanadi.", + "faq3": "Sizda qanday maxsus uskunalar mavjud?", + "faq-answer-3": "Bizning parkimizda quyidagilar mavjud:", + "faq-answer-3-1": "Yuk ko'tarish quvvati 7 tonnagacha bo'lgan manipulyatorlar", + "faq-answer-3-2": "G'ildirakli va izli ekskavatorlar", + "faq-answer-3-3": "Old va vilkalar (teleskopik) yuklagichlar va boshqalar", + "faq4": "To'lov shakli qanday?", + "faq-answer-4": "Shakl to'lov har qanday, shu jumladan mobil ilovalar orqali.", + "partner-h2": "Bizning sheriklarimiz", + "contact-h2": "Qo'ng'iroqni buyurtma qiling", + "footer-p": "Har qanday qurilish loyihalarini muvaffaqiyatli bajarish uchun ishonchlilik, ishlash va chidamlilik.", + "call": "Menga qo'ng'iroq qiling", + "subscribe": "Bizni kuzatib boring", + "links": "Foydali linklar", + "contact-info": "Aloqa ma'lumotlari", + "length": "Uzunligi", + "width": "Kengligi", + "height": "Balandligi", + "load": "Yuk ko'tarish qobiliyati", + "compressor": "Kompressor", + "rent-tower-crane": "Minora kranlari ijarasi", + "more": "Batafsil", + "gasoline": "Yoqilg'i turi", + "gasoline-volume": "Yoqilg'i sig'imi", + "air-volume": "Havo sig'imi", + "compressor-volume": "Kompressor sig'imi", + "compressing-volume": "Siqish bosimi", + "conditioning": "Konditsioner", + "presssing-width": "Zichlash kengligi", + "max-height": "Maksimum balandligi", + "max-length": "Maksimum uzunligi", + "power": "Dvigatel quvvati", + "transmission": "O'tkazmalar qutisi", + "max-speed": "Maksimum tezligi", + "compressor-desc": "Rasmda ko'rinib turgan tankning hajmi o'rtacha bo'lib, taxminan 30 litrdan 60 litrgacha bo'lishi mumkin. Bu hajm uzoq muddatli foydalanish uchun yetarli bo'ladi. Ushbu kompressor avtomobil ustaxonalari, kichik sanoat korxonalari va boshqa ko'plab joylarda ishlatilishi mumkin. U ko'plab havo asboblari va moslamalarini ishlatish uchun qulaydir.", + "book": "Buyurtma berish", + "ask": "Telegramdan so'rang", + "description": "Tavsif", + "avtocrane-desc": "Avtokran-bu qurilish, transport va sanoat operatsiyalarini o'z ichiga olgan turli xil ilovalar uchun mo'ljallangan kuchli va ko'p qirrali avtomobil krani. Unda mustahkam shassi, yuk ko'tarish qobiliyatiga ega kuchli o'q va uzluksiz ishlash uchun gidravlik tizim mavjud. Kran qo'shimcha barqarorlik uchun tashqi tayanchlar bilan jihozlangan va yuk mashinasiga o'rnatilgan dizayni tufayli uni turli ish joylariga osongina tashish mumkin.", + "avtotower-desc": "Avtominora — bu balandliklarga ko'tarilish uchun ishlatiladigan universal uskunadir. U tekis bo'lmagan maydonda optimal ishlashni ta'minlovchi kuchli 4x4 transmissiya bilan jihozlangan va operatorning qulayligi va xavfsizligi uchun keng platformaga ega. Sharning qo'shni konstruktsiyasi aniq joylashtirish va qiyin erishiladigan joylarga kirishni ta'minlaydi. 45 futgacha maksimal ishlash balandligi bilan bu lift turli xil tashqi ishlarda, shu jumladan qurilish, texnik xizmat ko'rsatish va landshaft dizayni uchun ideal hisoblanadi. U balandliklarda, masalan, binolarni ta'mirlash, bo'yash, derazalarni yuvishda, qurilish ishlarida, masalan, metall konstruktsiyalarni o'rnatishda, elektr va yog'och ishlari uchun, shuningdek, o'rmonchilik va bog'dorchilikda baland daraxtlarga g'amxo'rlik qilishda juda talabchan.", + "avtotower": "Avtominora", + "avtocrane": "Avtokran", + "rent-cement-trucks": "Sementovozlar ijarasi", + "details": "Tafsilotlar", + "feature1": "Eng yaxshi qurilish texnikasi", + "feature2": "Arzon narxda", + "feature3": "Boshqalardan farqli xizmat", + "feature4": "Sifat nazorati", + "feature5": "Texnik qo'llovlar", + "feature6": "Kerakli paytdagi servis xizmati", + "rent-avtocranes": "Avtokranlar ijarasi", + "weight": "Og'irligi", + "contacts": "Aloqa", + "digging-depth": "Qazish chuqurligi", + "rent-samosval": "Samosvallar ijarasi", + "samosval": "Samosvallar", + "rent-trailers": "Treylerlar ijarasi", + "rent-gazels": "Gazellar ijarasi", + "rent-avtotower": "Avtominoralar ijarasi", + "rent-crawler-cranes": "Paletli kranlar ijarasi", + "rent-lifters": "Dizel ko'targichlar ijarasi", + "rent-excavator-loader": "Ekskavator yuklagichlar ijarasi", + "rent-crawler-excavators": "Paletli ekskavatorlar ijarasi", + "rent-mini-excavators": "Mini ekskavatorlar ijarasi", + "rent-wheel-excavators": "G'ildirakli ekskavatorlar ijarasi", + "rent-forklift-trucks": "Forkliftlar ijarasi", + "rent-front-loaders": "Old yuklagichlar ijarasi", + "rent-tele-loaders": "Teleskopik yuklagichlar ijarasi", + "rent-avtograder": "Avtogreyder ijarasi", + "rent-buldozer": "Buldozerlar ijarasi", + "rent-compressor": "Kompressorlar ijarasi", + "rent-katka": "Katkalar ijarasi", + "intercooler": "Interkuler", + "cement-truck": "Avtosementovoz", + "tank-volume": "Tank hajmi", + "yes": "Bor", + "turbo-dizel": "Turbo dizel", + "gazel": "Gazel", + "knife": "Pichoq kengligi", + "bom-length": "Bomning uzunligi", + "header-location": "O'zbekiston, Toshkent", + "phone": "Telefon nomer", + "trailer-desc":"Rasmda tasvirlangan yuk mashinasi kuchli va koʻp qirrali boʻlib, turli xil vazifalarni bajarishga qodir. Mustahkam tuzilishi va kuchli dvigatelli boʻlgani uchun ogʻir yuklarni tashish uchun juda mos keladi. Qulay kabinasi va boshqaruv tizimi operator xavfsizligi va ish unumdorligini taʼminlaydi. Yuk mashinasining ilgʻor texnologiyalari va innovatsion xususiyatlari uni yuk tashish sohasida etakchiga aylantiradi. Taʼsirchan ishlash koʻrsatkichlari va uzoq umrligi tufayli yuk mashinasi, shubhasiz, barcha kutganlardan oshib ketadi va aʼlo natijalarga erishadi.", + "cement-truck-desc": "Rasmda tasvirlangan sement tashish mashinasi sement va boshqa to'kiladigan materiallarni samarali tashish uchun mo'ljallangan mustahkam transport vositasidir. Uning kuchli dvigateli va mustahkam shassisi qiyin sharoitlarda ham uzluksiz ishlash va uzoq xizmat muddatini ta'minlaydi. Katta sig'imli tank va takomillashtirilgan tushirish tizimi tez va samarali yetkazib berishni ta'minlab, to'xtash vaqtini minimallashtiradi va ishlab chiqarishni oshiradi. Ajoyib yuk ko'tarish qobiliyati, yoqilg'i iqtisodiyligi va haydovchiga qulayligi bilan bu sement tashish mashinasi to'kiladigan materiallarni tashish uchun iqtisodiy va ratsional yechim hisoblanadi.", + "gazel-desc": "‘Gazelle NEXT’ yuk mashinasi — bu turli xil qo‘llanmalar uchun ideal bo‘lgan universal va ishonchli tijorat avtomobili. Silliq oq korpus va yuk bo‘limini qoplovchi ko‘k plyonka mashinaga zamonaviy va uslubiy ko‘rinish beradi. Kuchli dvigatel va mustahkam konstruktsiya yuk mashinasiga eng murakkab vazifalarni bajarishga imkon beradi, qulay kabina va boshqaruv esa operatorning xavfsizligini va samaradorligini ta’minlaydi. Ta'sirchan yuk ko‘tarish qobiliyati va yoqilg‘i iqtisodiyligi bilan ‘Gazelle NEXT’ yuk mashinasi har qanday o‘lchamdagi korxonalar uchun iqtisodiy va samarali yechim hisoblanadi.", + "lifter-desc": "Rasmlarda ochiq havoda foydalanish uchun mo‘ljallangan ishonchli qisqichli liftlar ko‘rsatilgan. Ular keng platforma va to‘g‘ri va nazorat qilinadigan ko‘tarilish uchun gidravlik tizim bilan jihozlangan. Qisqichli lift qiyin erlarni barqarorlashtirish uchun tortib olinadigan qo‘llarga ega, maksimal ishlash balandligi esa 10,2 metrni tashkil etadi. Ushbu model qurilish, texnik xizmat ko‘rsatish va sanoat ishlanmalarida, balandlikdagi ish joylariga ishonchli va samarali kirishni talab qiladigan joylarda ideal hisoblanadi.", + "tower-crane-desc": "Rasmlarda turli qo‘llanmalar, jumladan qurilish va infratuzilma loyihalari uchun mo‘ljallangan kuchli minorali kranlar ko‘rsatilgan. U yuqori yuk ko‘tarish qobiliyatiga ega mustahkam asos va uzluksiz ishlashni ta'minlovchi gidravlik tizim bilan jihozlangan. Kran qulay ko‘rish va nazoratni yaxshilash uchun operator kabinasi bilan jihozlangan va boom va qarich orqali keng ko‘lamli harakatlanish imkoniyatiga ega. Ushbu model o‘zining ishonchliligi va samaradorligi bilan tanilgan, bu esa uni murakkab qurilish loyihalari uchun mashhur tanlovga aylantiradi.", + "excavator-loader-desc": "Bu kuchli va universal mashina turli xil qo‘llanmalar uchun, jumladan qurilish, qishloq xo‘jaligi va landshaft dizayni uchun ideal hisoblanadi. Mashina juda murakkab vazifalarni bajarish uchun zarur bo‘lgan kuchni ta'minlaydigan kuchli dvigatel bilan jihozlangan. Shuningdek, u ajoyib ko‘rish va ergonomikani ta'minlaydigan qulay va keng operator kabinasi bilan jihozlangan. Bundan tashqari, ushbu ekskavator-yuklagich bir qator qo‘shimcha funksiyalar bilan jihozlangan bo‘lib, uning ekspluatatsiyasini va texnik xizmat ko‘rsatishni osonlashtiradi.", + "crawler-excavator-desc": "Ushbu ekskavator kuchli va universal mashina bo'lib, hatto eng murakkab ishlarga ham qodir. Mustahkam konstruktsiya va kuchli dvigatel tufayli u og'ir qurilish va yer ishlariga juda mos keladi. Ekskavatorning takomillashtirilgan gidravlik tizimi aniq boshqarish va uzluksiz ishlashni ta'minlaydi, qulay kabina esa operatorning xavfsizligi va samaradorligini oshiradi. Ta'sirchan qirqish chuqurligi va harakat radiusiga ega bo'lgan bu ekskavator har qanday loyiha bilan osonlik bilan kurashadi.", + "mini-excavator-desc": "Ushbu ekskavator turli xil qo‘llanmalar, jumladan qurilish, landshaft dizayni va qishloq xo‘jaligi uchun mo‘ljallangan universal mashinadir. U kuchli dvigatel, ajoyib ko‘rish imkoniyatiga ega keng operator kabinasi va uzluksiz ishlashni ta'minlovchi gidravlik tizim bilan jihozlangan. Ekskavator materiallarni qirqish va ko‘chirish uchun standart kovsh va aniq joylashtirish uchun gidravlik qo‘l bilan jihozlangan. Shuningdek, u yuzalarni tekislash uchun otval bilan jihozlangan.", + "wheel-excavator-desc": "Bu kuchli va universal g'ildirakli ekskavator turli xil qo'llanmalar, jumladan qurilish, landshaft dizayni va qishloq xo'jaligi uchun mo'ljallangan. U ajoyib ko'rish imkoniyatiga ega keng operator kabinasi, kuchli dvigatel va uzluksiz ishlashni ta'minlovchi gidravlik tizim bilan jihozlangan. Ekskavator materiallarni qirqish va ko'chirish uchun standart kovsh, shuningdek, aniq joylashtirish uchun gidravlik qo'l bilan jihozlangan. Shuningdek, u yuzalarni tekislash uchun otval bilan ta'minlangan.", + "avtograder-desc": "Bu kuchli va universal mashina turli xil qo'llanmalar, jumladan yo'l qurilishi, texnik xizmat ko'rsatish va ta'mirlash uchun ideal hisoblanadi. Mashina juda murakkab vazifalarni bajarish uchun zarur bo‘lgan kuchni ta'minlaydigan kuchli dvigatel bilan jihozlangan. 14 metrli avtogreyder qulay va keng operator kabinasi bilan jihozlangan bo'lib, bu ajoyib ko'rish imkoniyatini va ergonomikani ta'minlaydi. Bundan tashqari, ushbu avtogreyder bir qator qo'shimcha funksiyalar bilan jihozlangan bo'lib, uning ekspluatatsiyasini va texnik xizmat ko'rsatishni osonlashtiradi.", + "forklift-truck-desc": "Bu mustahkam va ishonchli mashina, qiyin sharoitlarda ishlash uchun yaratilgan. Kuchli dvigatel va mustahkam konstruktsiya uning qiyin maydonlarda og'ir yuklarni osonlik bilan ko‘chirishi mumkinligini ta'minlaydi, bu uni qurilish maydonchalari, omborlar va ochiq havoda ishlash uchun ideal qiladi. Vintli yuklagichning takomillashtirilgan gidravlik tizimi aniq va silliq ko‘tarishni ta'minlaydi, qulay kabina esa operator uchun xavfsiz va ergonomik ish maydonini yaratadi. Ajoyib yo‘l-ovoz imkoniyatlari, ta'sirchan yuk ko‘tarish qobiliyati va mustahkam konstruktsiyasi bilan, bu Hangcha brendli vintli yuklagich eng qattiq sharoitlarga chidamlilik va a'lo darajadagi ishlab chiqarish samaradorligini ta'minlash uchun mo‘ljallangan.", + "front-loader-desc": "Rasmdagi g'ildirakli yuklagich kuchli va universal mashina bo'lib, eng murakkab ishlarni bajarish uchun mo'ljallangan. Mustahkam konstruktsiya va kuchli dvigatel yuklarni yuklash, ko'chirish va transport qilishda katta qulaylik yaratadi, bu uni qurilish, foydali qazilmalar qazish va sanoat ishlanmalarida ideal yechimga aylantiradi. G'ildirakli yuklagichning takomillashtirilgan gidravlik tizimi aniq va silliq ishlashni ta'minlaydi, keng va qulay kabina esa operator uchun optimal ko'rish va nazoratni ta'minlaydi. Ta'sirchan yuk ko'tarish qobiliyati, ajoyib manevralik va mustahkam konstruktsiyasi bilan bu g'ildirakli yuklagich yuqori darajadagi ishlab chiqarish samaradorligini ta'minlaydi.", + "tele-loader-desc": "Rasmda ko'rsatilgan teleskopik yuklagich — bu universal va kuchli mashina bo'lib, keng spektrdagi vazifalarni osonlik bilan bajaradi. Mustahkam konstruktsiya va kuchli dvigatel uni og'ir yuklarni ko'tarish va yuklash uchun ideal yechimga aylantiradi, yuqori manevralik esa tor sharoitlarda samarali ishlash imkonini beradi. Teleskopik yuklagichlarning ta'sirchan ko'tarish balandligi va harakat radiusi qishloq xo'jaligi va logistika sohalarida yuqori samaradorlikni ta'minlaydi. Bundan tashqari, mashinaning qulay kabinasi va oson boshqaruvi operatorning xavfsizligini va samaradorligini ta'minlaydi. Ajoyib ishlash qobiliyati va uzoq xizmat muddati bilan bu teleskopik yuklagich barcha kutganlardan yuqori natijalarni ta'minlaydi.", + "buldozer-desc": "Bu kuchli va universal chenakli traktor turli xil sohalarda, jumladan foydali qazilmalar qazish, qurilish va o'rmonchilikda ideal hisoblanadi. Mashina kuchli dvigatel bilan jihozlangan bo'lib, eng murakkab vazifalarni bajarish uchun zarur bo‘lgan kuchni ta'minlaydi. Shuningdek, u qulay va keng operator kabinasi bilan ta'minlangan bo'lib, bu ajoyib ko‘rish imkoniyatini va ergonomikani yaratadi. Bundan tashqari, bu traktor bir qator qo‘shimcha funksiyalar bilan jihozlangan bo‘lib, uning ekspluatatsiyasini va texnik xizmat ko‘rsatishni osonlashtiradi.", + "katka-desc": "Bu kuchli va universal tandemli maydalagich turli xil qo'llanmalar uchun, jumladan yo'l qurilishi, texnik xizmat ko'rsatish va ta'mirlash uchun ideal hisoblanadi. Mashina kuchli dvigatel bilan jihozlangan bo'lib, eng murakkab vazifalarni bajarish uchun zarur bo‘lgan kuchni ta'minlaydi. ARX 95 qulay va keng operator kabinasi bilan ta'minlangan bo'lib, bu ajoyib ko'rish imkoniyatini va ergonomikani yaratadi. Bundan tashqari, bu maydalagich bir qator qo'shimcha funksiyalar bilan jihozlangan bo'lib, uning ekspluatatsiyasini va texnik xizmat ko'rsatishni osonlashtiradi.", + "dumb-truck-desc": "Rasmda ko'rsatilgan yuk mashinasi og'ir sharoitlarda va qiyin erlarda yuk tashish uchun mo'ljallangan ishonchli va kuchli mashinadir. Mustahkam konstruktsiya va kuchli dvigatel uning katta hajmdagi materiallarni nizoqli yo'llar va qoplamalarda osonlik bilan tashish imkonini beradi. Samosvalning gidravlik ko'tarish tizimi tez va samarali tushirishni ta'minlaydi, ishlab chiqarishni oshiradi va to'xtash vaqtini minimallashtiradi. Ta'sirchan yuk ko'tarish qobiliyati, yo'l-ovoz imkoniyatlari va mustahkam dizayni bilan bu samosval qurilish, foydali qazilmalar qazish va boshqa talabchan sanoat sohalari uchun ishonchli va samarali yechim hisoblanadi.", + "news-title1": "Keyingi loyihangiz uchun eng yaxshi texnikalar ijarasi", + "news-title2": "Yangi yuklagich siz uchun eng yaxshi texnika!", + "news-title3": "Yangi kompressorlar to'plami aynan siz uchun", + "news-title4": "Bizning kuchli kranlarimiz bilan ishingiz yanada osonlashadi." +} \ No newline at end of file diff --git a/types/index.ts b/types/index.ts new file mode 100644 index 0000000..d037c94 --- /dev/null +++ b/types/index.ts @@ -0,0 +1,6 @@ + + +//// ============ tool's types ============ ////// +export interface TitleType{ + text:string; +} \ No newline at end of file