carType page over
This commit is contained in:
9
app/[lang]/[carType]/[carDeatil]/layout.tsx
Normal file
9
app/[lang]/[carType]/[carDeatil]/layout.tsx
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import React, { ReactNode } from "react";
|
||||||
|
|
||||||
|
export default function Layout({ children }: { children: ReactNode }) {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
13
app/[lang]/[carType]/[carDeatil]/page.tsx
Normal file
13
app/[lang]/[carType]/[carDeatil]/page.tsx
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { useCarDetail } from '@/components/lib_components/carDetailProvider'
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
export default function page() {
|
||||||
|
const {detail} = useCarDetail();
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{detail?.name}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -1,13 +1,120 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import Title from "@/components/title";
|
import InnerProductcard from "@/components/cards/innerProductcard";
|
||||||
|
import Title from "@/components/lib_components/title";
|
||||||
|
import { avtogreyderlar, avtokran, avtominora, buldozerlar, cement_trucks, dizel, dumb_trucks, eks_yuklagichlar, forkliftlar, gazels, gildirakli_eks, katkalar, kompressorlar, mini_eks, minora, old_yuklagichlar, paletli_eks, paletli_kranlar, teleskop_yuklagichlar, trailers } from "@/data";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
|
|
||||||
export default function CartType() {
|
export default function CartType() {
|
||||||
const router = useParams();
|
const router = useParams();
|
||||||
|
const carType = router.carType;
|
||||||
return (
|
return (
|
||||||
<div dir="ltr" className="my-20" >
|
<div dir="ltr" className="my-20">
|
||||||
<Title text="tex-rent" />
|
<Title text="tex-rent" />
|
||||||
|
|
||||||
|
{/* car type groups */}
|
||||||
|
<div className="mt-10 grid grid-cols-3 gap-5 max-w-[1200px] w-full mx-auto">
|
||||||
|
|
||||||
|
{/* Avtosementavoz */}
|
||||||
|
{carType === "cement-truck" && cement_trucks.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Samasvallar */}
|
||||||
|
{carType === "dumb-truck" && dumb_trucks.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Traylerlar */}
|
||||||
|
{carType === "trailers" && trailers.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Gazellar */}
|
||||||
|
{carType === "gazels" && gazels.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Avtominora */}
|
||||||
|
{carType === "avtotowers" && avtominora.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Avtokran */}
|
||||||
|
{carType === "avtocranes" && avtokran.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Minora kranlar */}
|
||||||
|
{carType === "tower-cranes" && minora.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Dizel ko'targichlar */}
|
||||||
|
{carType === "lifters" && dizel.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Paletli kranlar */}
|
||||||
|
{carType === "crawler-cranes" && paletli_kranlar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* old yuklagichlar */}
|
||||||
|
{carType === "front-loaders" && old_yuklagichlar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Teleskopik yuklagichlar */}
|
||||||
|
{carType === "tele-loaders" && teleskop_yuklagichlar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* forkliftlar */}
|
||||||
|
{carType === "forklift-trucks" && forkliftlar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Paletli ekskavatorlar */}
|
||||||
|
{carType === "crawler-excavators" && paletli_eks.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* G'ildirakli ekskavatorlar */}
|
||||||
|
{carType === "wheel-excavators" && gildirakli_eks.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Mini-ekskavatorlar */}
|
||||||
|
{carType === "mini-excavators" && mini_eks.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* ekskavator yuklagichlar */}
|
||||||
|
{carType === "excavator-loaders" && eks_yuklagichlar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* avtogreyderlar */}
|
||||||
|
{carType === "avtograders" && avtogreyderlar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Buldozerlar */}
|
||||||
|
{carType === "buldozers" && buldozerlar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Katkalar */}
|
||||||
|
{carType === "katkas" && katkalar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* Kampressorlar */}
|
||||||
|
{carType === "compressors" && kompressorlar.map((item)=>{
|
||||||
|
return <InnerProductcard data={item} key={item.id} />
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import Header from "@/components/nav_foot/header";
|
|||||||
import Navbar from "@/components/nav_foot/navbar";
|
import Navbar from "@/components/nav_foot/navbar";
|
||||||
import Footer from "@/components/nav_foot/footer";
|
import Footer from "@/components/nav_foot/footer";
|
||||||
import Contact from "@/components/pageParts/contact";
|
import Contact from "@/components/pageParts/contact";
|
||||||
import UpScrollIcon from "@/components/upScroll";
|
import UpScrollIcon from "@/components/lib_components/upScroll";
|
||||||
|
|
||||||
export default async function LangLayout({
|
export default async function LangLayout({
|
||||||
children,
|
children,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import type { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import { Geist, Geist_Mono } from "next/font/google";
|
import { Geist, Geist_Mono } from "next/font/google";
|
||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
|
import { CarDetailProvider } from "@/components/lib_components/carDetailProvider";
|
||||||
|
|
||||||
const geistSans = Geist({
|
const geistSans = Geist({
|
||||||
variable: "--font-geist-sans",
|
variable: "--font-geist-sans",
|
||||||
@@ -23,8 +24,10 @@ export default function RootLayout({
|
|||||||
}: Readonly<{ children: React.ReactNode }>) {
|
}: Readonly<{ children: React.ReactNode }>) {
|
||||||
return (
|
return (
|
||||||
<html lang="uz">
|
<html lang="uz">
|
||||||
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>
|
<body
|
||||||
{children}
|
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
|
||||||
|
>
|
||||||
|
<CarDetailProvider>{children}</CarDetailProvider>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import { backOne } from "@/assets";
|
import { backOne } from "@/assets";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
import Text from "../text";
|
import Text from "../lib_components/text";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
|
||||||
export default function CarType_Header() {
|
export default function CarType_Header() {
|
||||||
@@ -41,13 +41,13 @@ export default function CarType_Header() {
|
|||||||
className="text-white flex items-center justify-center gap-3"
|
className="text-white flex items-center justify-center gap-3"
|
||||||
>
|
>
|
||||||
<Link
|
<Link
|
||||||
href='/'
|
href="/"
|
||||||
className="hover:cursor-pointer hover:text-secondary "
|
className="hover:cursor-pointer hover:text-secondary "
|
||||||
>
|
>
|
||||||
<Text txt="home" />
|
<Text txt="home" />
|
||||||
</Link>
|
</Link>
|
||||||
/
|
/
|
||||||
<div className="text-secondary" >
|
<div className="text-secondary">
|
||||||
<Text txt={`${params.carType}`} />
|
<Text txt={`${params.carType}`} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
49
components/cards/innerProductcard.tsx
Normal file
49
components/cards/innerProductcard.tsx
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { innerCardTypes } from "@/types";
|
||||||
|
import Link from "next/link";
|
||||||
|
import { useParams } from "next/navigation";
|
||||||
|
import React from "react";
|
||||||
|
import Image from "next/image";
|
||||||
|
import Text from "../lib_components/text";
|
||||||
|
import { useCarDetail } from "../lib_components/carDetailProvider";
|
||||||
|
|
||||||
|
export default function InnerProductcard({ data }: { data: innerCardTypes }) {
|
||||||
|
const route = useParams();
|
||||||
|
const { setDetail } = useCarDetail();
|
||||||
|
return (
|
||||||
|
<Link
|
||||||
|
href={`/${route.lang}/${route.carType}/${data.name}`}
|
||||||
|
onClick={() => setDetail(data)}
|
||||||
|
className=" flex flex-col items-center justify-between rounded-sm hover:scale-105 hover:cursor-pointer hover:shadow-[0px_0px_5px_10px_#ebebeb]"
|
||||||
|
>
|
||||||
|
<div className="rounded-t-lg bg-white">
|
||||||
|
<Image
|
||||||
|
src={data.image}
|
||||||
|
alt={data.name}
|
||||||
|
width={0}
|
||||||
|
height={200}
|
||||||
|
className="object-fill w-full max-h-[200px] h-full rounded-t-sm"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="bg-[#fafafa] w-full p-2 px-4 rounded-b-lg flex flex-col items-start justify-start gap-2">
|
||||||
|
<div className="text-xl font-semibold ">
|
||||||
|
<Text txt={data.name} />
|
||||||
|
</div>
|
||||||
|
<div className="flex gap-2">
|
||||||
|
<Text txt="hour-price" />
|
||||||
|
{data.price?.toLocaleString("uz-UZ")}
|
||||||
|
<Text txt="wallet" />
|
||||||
|
</div>
|
||||||
|
<div className="flex gap-2">
|
||||||
|
<Text txt="min-time" />
|
||||||
|
{data.min_order_time}
|
||||||
|
<Text txt="time" />
|
||||||
|
</div>
|
||||||
|
<button className="w-full p-3 bg-secondary rounded-lg text-white border-2 border-secondary hover:cursor-pointer hover:bg-white hover:text-secondary">
|
||||||
|
<Text txt="more" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -3,14 +3,17 @@
|
|||||||
import { ProductTypes } from "@/types";
|
import { ProductTypes } from "@/types";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import Text from "../text";
|
import Text from "../lib_components/text";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
|
|
||||||
export default function ProductCard({data}:{data: ProductTypes}) {
|
export default function ProductCard({ data }: { data: ProductTypes }) {
|
||||||
const {lang} = useParams();
|
const { lang } = useParams();
|
||||||
return (
|
return (
|
||||||
<Link href={`/${lang}/${data.path}`} className="h-[400px] flex flex-col items-center justify-between rounded-sm hover:scale-105 hover:cursor-pointer hover:shadow-[0px_0px_5px_10px_#ebebeb]">
|
<Link
|
||||||
<div className="rounded-t-lg bg-white py-15 px-2" >
|
href={`/${lang}/${data.path}`}
|
||||||
|
className="h-[400px] flex flex-col items-center justify-between rounded-sm hover:scale-105 hover:cursor-pointer hover:shadow-[0px_0px_5px_10px_#ebebeb]"
|
||||||
|
>
|
||||||
|
<div className="rounded-t-lg bg-white py-15 px-2">
|
||||||
<Image
|
<Image
|
||||||
src={data.image}
|
src={data.image}
|
||||||
alt={data.truck_name}
|
alt={data.truck_name}
|
||||||
@@ -20,8 +23,12 @@ export default function ProductCard({data}:{data: ProductTypes}) {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="bg-[#fafafa] w-full py-5 rounded-b-lg flex flex-col items-center justify-center ">
|
<div className="bg-[#fafafa] w-full py-5 rounded-b-lg flex flex-col items-center justify-center ">
|
||||||
<p><Text txt={data.truck_name}/></p>
|
<p>
|
||||||
<p className="text-secondary"><Text txt={data.desc}/></p>
|
<Text txt={data.truck_name} />
|
||||||
|
</p>
|
||||||
|
<p className="text-secondary">
|
||||||
|
<Text txt={data.desc} />
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,24 +1,30 @@
|
|||||||
import { ProductTypes } from "@/types";
|
import { ProductTypes } from "@/types";
|
||||||
import Image, { StaticImageData } from "next/image";
|
import Image, { StaticImageData } from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import Text from "../text";
|
import Text from "../lib_components/text";
|
||||||
|
|
||||||
export default function SliderCard({data}:{data:ProductTypes}) {
|
export default function SliderCard({ data }: { data: ProductTypes }) {
|
||||||
return (
|
return (
|
||||||
<Link href={data.path} id="news_slider_card" className="group hover:cursor-pointer" >
|
<Link
|
||||||
<Image
|
href={data.path}
|
||||||
|
id="news_slider_card"
|
||||||
|
className="group hover:cursor-pointer"
|
||||||
|
>
|
||||||
|
<Image
|
||||||
src={data.image}
|
src={data.image}
|
||||||
alt="slider image"
|
alt="slider image"
|
||||||
width={600}
|
width={600}
|
||||||
height={600}
|
height={600}
|
||||||
className="object-cover max-w-[600px] w-full h-[300px]"
|
className="object-cover max-w-[600px] w-full h-[300px]"
|
||||||
/>
|
/>
|
||||||
<div className="relative overflow-visible mt-6 text-primary flex flex-col items-start p-4 justify-start bg-gray-50 border-b-6 border-gray-400 group hover:border-b-secondary">
|
<div className="relative overflow-visible mt-6 text-primary flex flex-col items-start p-4 justify-start bg-gray-50 border-b-6 border-gray-400 group hover:border-b-secondary">
|
||||||
<div className="absolute -top-10 sm:-top-8 text-[16px] font-semibold left-5 bg-secondary py-1 px-3 clip-trapezoid">
|
<div className="absolute -top-10 sm:-top-8 text-[16px] font-semibold left-5 bg-secondary py-1 px-3 clip-trapezoid">
|
||||||
<Text txt={data.truck_name}/>
|
<Text txt={data.truck_name} />
|
||||||
</div>
|
|
||||||
<div className="text-xl font-bold flex items-center h-[60px] hover:text-secondary"><Text txt={data.desc}/></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div className="text-xl font-bold flex items-center h-[60px] hover:text-secondary">
|
||||||
|
<Text txt={data.desc} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
33
components/lib_components/carDetailProvider.tsx
Normal file
33
components/lib_components/carDetailProvider.tsx
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import React, { createContext, useContext, useState, ReactNode } from 'react';
|
||||||
|
import { innerCardTypes } from '@/types';
|
||||||
|
|
||||||
|
// 1️⃣ Context tipi
|
||||||
|
interface CarDetailContextType {
|
||||||
|
detail: innerCardTypes | null;
|
||||||
|
setDetail: React.Dispatch<React.SetStateAction<innerCardTypes | null>>;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2️⃣ Default context qiymatini yaratamiz
|
||||||
|
const CarDetailContext = createContext<CarDetailContextType | undefined>(undefined);
|
||||||
|
|
||||||
|
// 3️⃣ Provider komponent
|
||||||
|
export const CarDetailProvider = ({ children }: { children: ReactNode }) => {
|
||||||
|
const [detail, setDetail] = useState<innerCardTypes | null>(null);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<CarDetailContext.Provider value={{ detail, setDetail }}>
|
||||||
|
{children}
|
||||||
|
</CarDetailContext.Provider>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 4️⃣ Custom hook (Context’ni qulay ishlatish uchun)
|
||||||
|
export const useCarDetail = () => {
|
||||||
|
const context = useContext(CarDetailContext);
|
||||||
|
if (!context) {
|
||||||
|
throw new Error('useCarDetail must be used within a CarDetailProvider');
|
||||||
|
}
|
||||||
|
return context;
|
||||||
|
};
|
||||||
11
components/lib_components/title.tsx
Normal file
11
components/lib_components/title.tsx
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { TitleType } from "@/types";
|
||||||
|
import React from "react";
|
||||||
|
import Text from "./text";
|
||||||
|
|
||||||
|
export default function Title({ text }: TitleType) {
|
||||||
|
return (
|
||||||
|
<div className="text-primary md:text-[40px] text-[25px] w-full text-center font-bold ">
|
||||||
|
<Text txt={text} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Text from "../text";
|
import Text from "../lib_components/text";
|
||||||
import {
|
import {
|
||||||
FaFacebookF,
|
FaFacebookF,
|
||||||
FaTwitter,
|
FaTwitter,
|
||||||
@@ -110,62 +110,62 @@ export default function Footer() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className=" max-[1200px]:absolute z-10 bottom-30 right-5 group flex flex-col items-end justify-end pt-15">
|
<div className=" max-[1200px]:absolute z-10 bottom-30 right-5 group flex flex-col items-end justify-end pt-15">
|
||||||
<div className="group relative">
|
<div className="group relative">
|
||||||
<div
|
<div
|
||||||
className="
|
className="
|
||||||
flex gap-1 items-center text-white text-xl
|
flex gap-1 items-center text-white text-xl
|
||||||
opacity-0 translate-x-8 pointer-events-none
|
opacity-0 translate-x-8 pointer-events-none
|
||||||
group-hover:opacity-100 group-hover:translate-x-0 group-hover:pointer-events-auto
|
group-hover:opacity-100 group-hover:translate-x-0 group-hover:pointer-events-auto
|
||||||
transition-all duration-1000 ease-in-out delay-800 hover:cursor-pointer
|
transition-all duration-1000 ease-in-out delay-800 hover:cursor-pointer
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<p className="bg-[#0e76a8] p-2 rounded-[8px]">Telegram</p>
|
<p className="bg-[#0e76a8] p-2 rounded-[8px]">Telegram</p>
|
||||||
<span className="rounded-full p-2 bg-[#0e76a8] ml-2">
|
<span className="rounded-full p-2 bg-[#0e76a8] ml-2">
|
||||||
<FaTelegram />
|
<FaTelegram />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="group relative my-2 ">
|
<div className="group relative my-2 ">
|
||||||
<div
|
<div
|
||||||
className="
|
className="
|
||||||
flex gap-1 items-center text-white text-xl
|
flex gap-1 items-center text-white text-xl
|
||||||
opacity-0 translate-x-6 pointer-events-none
|
opacity-0 translate-x-6 pointer-events-none
|
||||||
group-hover:opacity-100 group-hover:translate-x-0 group-hover:pointer-events-auto
|
group-hover:opacity-100 group-hover:translate-x-0 group-hover:pointer-events-auto
|
||||||
transition-all duration-500 ease-in-out delay-600 hover:cursor-pointer
|
transition-all duration-500 ease-in-out delay-600 hover:cursor-pointer
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<p className="bg-[#00900c] p-2 rounded-[8px] bg-linear-to-tr from-[#feda75] via-[#cc2980] to-[#9a2eba] ">
|
<p className="bg-[#00900c] p-2 rounded-[8px] bg-linear-to-tr from-[#feda75] via-[#cc2980] to-[#9a2eba] ">
|
||||||
Instagram
|
Instagram
|
||||||
</p>
|
</p>
|
||||||
<span className="bg-linear-to-tr from-[#feda75] via-[#cc2980] to-[#9a2eba] rounded-[50%] p-2 ">
|
<span className="bg-linear-to-tr from-[#feda75] via-[#cc2980] to-[#9a2eba] rounded-[50%] p-2 ">
|
||||||
<FaInstagram />
|
<FaInstagram />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="group relative">
|
<div className="group relative">
|
||||||
<div
|
<div
|
||||||
className="
|
className="
|
||||||
flex gap-1 items-center text-white text-xl
|
flex gap-1 items-center text-white text-xl
|
||||||
opacity-0 translate-x-2 pointer-events-none
|
opacity-0 translate-x-2 pointer-events-none
|
||||||
group-hover:opacity-100 group-hover:translate-x-0 group-hover:pointer-events-auto
|
group-hover:opacity-100 group-hover:translate-x-0 group-hover:pointer-events-auto
|
||||||
transition-all duration-100 ease-in-out delay-200 hover:cursor-pointer
|
transition-all duration-100 ease-in-out delay-200 hover:cursor-pointer
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<p className="bg-[#00900c] p-2 rounded-[8px]">Phone</p>
|
<p className="bg-[#00900c] p-2 rounded-[8px]">Phone</p>
|
||||||
<span className="rounded-[50%] p-2 bg-[#00900c] ">
|
<span className="rounded-[50%] p-2 bg-[#00900c] ">
|
||||||
<FaPhone />
|
<FaPhone />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<Image
|
</div>
|
||||||
src={Ekxkavator_vektor}
|
<Image
|
||||||
width={90}
|
src={Ekxkavator_vektor}
|
||||||
height={90}
|
width={90}
|
||||||
className="mt-3 hover:cursor-pointer icon_animation rounded-[50%] object-cover"
|
height={90}
|
||||||
alt="icon image"
|
className="mt-3 hover:cursor-pointer icon_animation rounded-[50%] object-cover"
|
||||||
/>
|
alt="icon image"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { useTranslation } from "react-i18next";
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import i18n from "@/i18n";
|
import i18n from "@/i18n";
|
||||||
import { Link } from "react-scroll";
|
import { Link } from "react-scroll";
|
||||||
import Text from "../text";
|
import Text from "../lib_components/text";
|
||||||
import "./navbar.css";
|
import "./navbar.css";
|
||||||
import { logoImg } from "@/assets";
|
import { logoImg } from "@/assets";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
@@ -70,27 +70,27 @@ export default function Navbar() {
|
|||||||
|
|
||||||
{/* change language part */}
|
{/* change language part */}
|
||||||
<div className=" max-[580px]:flex hidden items-center justify-center gap-5">
|
<div className=" max-[580px]:flex hidden items-center justify-center gap-5">
|
||||||
<button
|
<button
|
||||||
onClick={() => handleChangeLang("uz")}
|
onClick={() => handleChangeLang("uz")}
|
||||||
className={`hover:cursor-pointer ${
|
className={`hover:cursor-pointer ${
|
||||||
lang === "uz" && "bg-secondary text-primary rounded-[8px]"
|
lang === "uz" && "bg-secondary text-primary rounded-[8px]"
|
||||||
} px-2 py-1 text-[20px] ${
|
} px-2 py-1 text-[20px] ${
|
||||||
lang !== "uz" && "border-l-2 border-b-2 border-primary"
|
lang !== "uz" && "border-l-2 border-b-2 border-primary"
|
||||||
} `}
|
} `}
|
||||||
>
|
>
|
||||||
UZ
|
UZ
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
onClick={() => handleChangeLang("ru")}
|
onClick={() => handleChangeLang("ru")}
|
||||||
className={`hover:cursor-pointer ${
|
className={`hover:cursor-pointer ${
|
||||||
lang === "ru" && "bg-secondary text-primary rounded-[8px]"
|
lang === "ru" && "bg-secondary text-primary rounded-[8px]"
|
||||||
} px-2 py-1 text-[20px] ${
|
} px-2 py-1 text-[20px] ${
|
||||||
lang !== "ru" && "border-r-2 border-b-2 border-primary"
|
lang !== "ru" && "border-r-2 border-b-2 border-primary"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
RU
|
RU
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div onClick={changeToggler} className={togglerIcon}>
|
<div onClick={changeToggler} className={togglerIcon}>
|
||||||
<div className="toggle_item1"></div>
|
<div className="toggle_item1"></div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { CollapseProps } from "antd";
|
import type { CollapseProps } from "antd";
|
||||||
import { Collapse } from "antd";
|
import { Collapse } from "antd";
|
||||||
import Text from "../text";
|
import Text from "../lib_components/text";
|
||||||
import Title from "../title";
|
import Title from "../lib_components/title";
|
||||||
|
|
||||||
const FaqTexts: CollapseProps["items"] = [
|
const FaqTexts: CollapseProps["items"] = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import Title from "../title";
|
import Title from "../lib_components/title";
|
||||||
import { FaPhoneAlt, FaTelegram } from "react-icons/fa";
|
import { FaPhoneAlt, FaTelegram } from "react-icons/fa";
|
||||||
import { BiTargetLock } from "react-icons/bi";
|
import { BiTargetLock } from "react-icons/bi";
|
||||||
import GoogleMap from "../google.map";
|
import GoogleMap from "../lib_components/google.map";
|
||||||
|
|
||||||
export default function Map() {
|
export default function Map() {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { Swiper, SwiperSlide } from "swiper/react";
|
|||||||
import { Navigation } from "swiper/modules";
|
import { Navigation } from "swiper/modules";
|
||||||
import "swiper/css";
|
import "swiper/css";
|
||||||
import "swiper/css/navigation";
|
import "swiper/css/navigation";
|
||||||
import Title from "../title";
|
import Title from "../lib_components/title";
|
||||||
import SliderCard from "../cards/sliderCard";
|
import SliderCard from "../cards/sliderCard";
|
||||||
import { sliderData } from "@/data";
|
import { sliderData } from "@/data";
|
||||||
|
|
||||||
@@ -14,27 +14,35 @@ const navigationNextEl = ".custom-swiper-next";
|
|||||||
|
|
||||||
export default function CustomSlider() {
|
export default function CustomSlider() {
|
||||||
return (
|
return (
|
||||||
<div dir="ltr" className="max-w-[1400px] w-full mx-auto relative my-20 px-4">
|
<div
|
||||||
|
dir="ltr"
|
||||||
|
className="max-w-[1400px] w-full mx-auto relative my-20 px-4"
|
||||||
|
>
|
||||||
{/* Title */}
|
{/* Title */}
|
||||||
<div className="my-10 mb-20 flex items-center justify-between ">
|
<div className="my-10 mb-20 flex items-center justify-between ">
|
||||||
<div className="">
|
<div className="">
|
||||||
<Title text="news-h2" />
|
<Title text="news-h2" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Custom buttons */}
|
{/* Custom buttons */}
|
||||||
<div className="flex gap-2 items-center justify-center">
|
<div className="flex gap-2 items-center justify-center">
|
||||||
<button
|
<button
|
||||||
className={`${navigationPrevEl.replace('.', '')} w-10 h-10 p-0 bg-primary text-[30px] text-center text-white flex items-center justify-center hover:bg-secondary hover:cursor-pointer transition`}
|
className={`${navigationPrevEl.replace(
|
||||||
>
|
".",
|
||||||
‹
|
""
|
||||||
</button>
|
)} w-10 h-10 p-0 bg-primary text-[30px] text-center text-white flex items-center justify-center hover:bg-secondary hover:cursor-pointer transition`}
|
||||||
<button
|
>
|
||||||
className={`${navigationNextEl.replace('.', '')} w-10 h-10 bg-primary text-[30px] text-center text-white flex items-center justify-center hover:bg-secondary hover:cursor-pointer transition `}
|
‹
|
||||||
>
|
</button>
|
||||||
›
|
<button
|
||||||
</button>
|
className={`${navigationNextEl.replace(
|
||||||
</div>
|
".",
|
||||||
|
""
|
||||||
|
)} w-10 h-10 bg-primary text-[30px] text-center text-white flex items-center justify-center hover:bg-secondary hover:cursor-pointer transition `}
|
||||||
|
>
|
||||||
|
›
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Swiper */}
|
{/* Swiper */}
|
||||||
@@ -60,7 +68,6 @@ export default function CustomSlider() {
|
|||||||
</SwiperSlide>
|
</SwiperSlide>
|
||||||
))}
|
))}
|
||||||
</Swiper>
|
</Swiper>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Title from "../title";
|
import Title from "../lib_components/title";
|
||||||
import Text from "../text";
|
import Text from "../lib_components/text";
|
||||||
import { Ekskavator_offer } from "@/assets";
|
import { Ekskavator_offer } from "@/assets";
|
||||||
|
|
||||||
export default function Offer() {
|
export default function Offer() {
|
||||||
@@ -25,8 +25,8 @@ export default function Offer() {
|
|||||||
</div>
|
</div>
|
||||||
<div className="text-primary flex flex-col text-[18px] relative pl-8">
|
<div className="text-primary flex flex-col text-[18px] relative pl-8">
|
||||||
<div className=" absolute left-0">
|
<div className=" absolute left-0">
|
||||||
<div className="bg-primary w-[3px] h-[28px]"></div>
|
<div className="bg-primary w-[3px] h-[28px]"></div>
|
||||||
<div className="bg-secondary w-[3px] h-[100px]"></div>
|
<div className="bg-secondary w-[3px] h-[100px]"></div>
|
||||||
</div>
|
</div>
|
||||||
<span>"</span>
|
<span>"</span>
|
||||||
<Text txt="about-block-quote" />
|
<Text txt="about-block-quote" />
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import Title from "../title";
|
import Title from "../lib_components/title";
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
// Import Swiper React components
|
// Import Swiper React components
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import Title from "../title";
|
import Title from "../lib_components/title";
|
||||||
import Text from "../text";
|
import Text from "../lib_components/text";
|
||||||
import { Asphalt, Ekskavator, Forklift, Kran, Truck } from "@/assets";
|
import { Asphalt, Ekskavator, Forklift, Kran, Truck } from "@/assets";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import type { productFilterTypes, ProductTypes } from "@/types";
|
import type { productFilterTypes, ProductTypes } from "@/types";
|
||||||
import { allProducts, cranes, excavators, forklift, road_repairs, trucks } from "@/data";
|
import {
|
||||||
|
allProducts,
|
||||||
|
cranes,
|
||||||
|
excavators,
|
||||||
|
forklift,
|
||||||
|
road_repairs,
|
||||||
|
trucks,
|
||||||
|
} from "@/data";
|
||||||
import ProductCard from "../cards/productCard";
|
import ProductCard from "../cards/productCard";
|
||||||
|
|
||||||
const productFilterTypesMainPage: productFilterTypes[] = [
|
const productFilterTypesMainPage: productFilterTypes[] = [
|
||||||
@@ -15,31 +22,30 @@ const productFilterTypesMainPage: productFilterTypes[] = [
|
|||||||
{ name: "forklift-trucks", image: Ekskavator },
|
{ name: "forklift-trucks", image: Ekskavator },
|
||||||
{ name: "excavators", image: Forklift },
|
{ name: "excavators", image: Forklift },
|
||||||
{ name: "road-repairs", image: Asphalt },
|
{ name: "road-repairs", image: Asphalt },
|
||||||
{ name: "all", image: '' },
|
{ name: "all", image: "" },
|
||||||
];
|
];
|
||||||
|
|
||||||
export default function Products() {
|
export default function Products() {
|
||||||
|
|
||||||
const [productFilter, setProductFilter] = useState<string | null>(null);
|
const [productFilter, setProductFilter] = useState<string | null>(null);
|
||||||
|
|
||||||
const [cars,setCars] = useState(allProducts)
|
const [cars, setCars] = useState(allProducts);
|
||||||
|
|
||||||
// execute filetr function
|
// execute filetr function
|
||||||
useEffect(()=>{
|
useEffect(() => {
|
||||||
if(productFilter === 'trucks'){
|
if (productFilter === "trucks") {
|
||||||
setCars(trucks);
|
setCars(trucks);
|
||||||
}else if(productFilter === 'cranes'){
|
} else if (productFilter === "cranes") {
|
||||||
setCars(cranes);
|
setCars(cranes);
|
||||||
}else if(productFilter === 'forklift-trucks'){
|
} else if (productFilter === "forklift-trucks") {
|
||||||
setCars(forklift);
|
setCars(forklift);
|
||||||
} else if(productFilter === 'excavators'){
|
} else if (productFilter === "excavators") {
|
||||||
setCars(excavators);
|
setCars(excavators);
|
||||||
}else if(productFilter === 'road-repairs'){
|
} else if (productFilter === "road-repairs") {
|
||||||
setCars(road_repairs)
|
setCars(road_repairs);
|
||||||
}else {
|
} else {
|
||||||
setCars(allProducts)
|
setCars(allProducts);
|
||||||
}
|
}
|
||||||
},[productFilter])
|
}, [productFilter]);
|
||||||
return (
|
return (
|
||||||
<div dir="ltr" className="max-w-[1200px] w-full mx-auto">
|
<div dir="ltr" className="max-w-[1200px] w-full mx-auto">
|
||||||
{/* title part */}
|
{/* title part */}
|
||||||
@@ -66,13 +72,15 @@ export default function Products() {
|
|||||||
} flex items-center gap-2 h-[58px] hover:bg-secondary border-gray-300 hover:border-secondary border-[1px] px-7 text-2xl rounded-tr-full rounded-bl-full `}
|
} flex items-center gap-2 h-[58px] hover:bg-secondary border-gray-300 hover:border-secondary border-[1px] px-7 text-2xl rounded-tr-full rounded-bl-full `}
|
||||||
>
|
>
|
||||||
<Text txt={item.name} />
|
<Text txt={item.name} />
|
||||||
{item.image && (<Image
|
{item.image && (
|
||||||
src={item.image}
|
<Image
|
||||||
alt="Truck images"
|
src={item.image}
|
||||||
width={50}
|
alt="Truck images"
|
||||||
height={50}
|
width={50}
|
||||||
className="object-cover"
|
height={50}
|
||||||
/>)}
|
className="object-cover"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</button>
|
</button>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
@@ -80,7 +88,7 @@ export default function Products() {
|
|||||||
{/* products */}
|
{/* products */}
|
||||||
<div className="px-4 grid gap-5 grid-cols-1 place-content-center min-[500px]:grid-cols-2 min-lg:grid-cols-4 min-[1210px]:grid-cols-4">
|
<div className="px-4 grid gap-5 grid-cols-1 place-content-center min-[500px]:grid-cols-2 min-lg:grid-cols-4 min-[1210px]:grid-cols-4">
|
||||||
{cars.map((item: ProductTypes, index: number) => (
|
{cars.map((item: ProductTypes, index: number) => (
|
||||||
<div key={index} >
|
<div key={index}>
|
||||||
<ProductCard data={item} />
|
<ProductCard data={item} />
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import Title from "../title";
|
import Title from "../lib_components/title";
|
||||||
import { Gehl, Hyundai, JCB, Lonking, Mitsubishi, XCMG } from "@/assets";
|
import { Gehl, Hyundai, JCB, Lonking, Mitsubishi, XCMG } from "@/assets";
|
||||||
import Image, { StaticImageData } from "next/image";
|
import Image, { StaticImageData } from "next/image";
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ export default function Texnika() {
|
|||||||
className="mySwiper flex items-center justify-around"
|
className="mySwiper flex items-center justify-around"
|
||||||
>
|
>
|
||||||
{slideImage.map((item, index) => (
|
{slideImage.map((item, index) => (
|
||||||
<SwiperSlide key={index} className="!w-[200px] mx-10 " >
|
<SwiperSlide key={index} className="!w-[200px] mx-10 ">
|
||||||
<Image
|
<Image
|
||||||
src={item}
|
src={item}
|
||||||
alt="Partner images"
|
alt="Partner images"
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
import { TitleType } from '@/types'
|
|
||||||
import React from 'react'
|
|
||||||
import Text from './text'
|
|
||||||
|
|
||||||
export default function Title({text}:TitleType) {
|
|
||||||
return (
|
|
||||||
<div className='text-primary md:text-[40px] text-[25px] w-full text-center font-bold '><Text txt={text} /></div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
190
data/index.ts
190
data/index.ts
@@ -1,13 +1,52 @@
|
|||||||
import {
|
import {
|
||||||
|
Avtokran1,
|
||||||
|
Avtokran2,
|
||||||
|
Avtokran4,
|
||||||
AvtokranSlider,
|
AvtokranSlider,
|
||||||
Balon,
|
Balon,
|
||||||
|
Balon1,
|
||||||
|
Balon2,
|
||||||
Buldozer,
|
Buldozer,
|
||||||
|
Buldozer1,
|
||||||
|
Buldozer2,
|
||||||
|
Chakman1,
|
||||||
|
Chakman2,
|
||||||
Digger,
|
Digger,
|
||||||
|
Digger1,
|
||||||
|
Digger2,
|
||||||
|
Dizel1,
|
||||||
|
Dizel2,
|
||||||
|
Dizel3,
|
||||||
ekskavatorSlider,
|
ekskavatorSlider,
|
||||||
|
Fork1,
|
||||||
|
Fork2,
|
||||||
|
Fork3,
|
||||||
Forkliftlar,
|
Forkliftlar,
|
||||||
Gazel,
|
Gazel,
|
||||||
|
Gazel1,
|
||||||
|
Gazel2,
|
||||||
|
Gazel3,
|
||||||
|
Gazel5,
|
||||||
|
Gazel6,
|
||||||
Grayder,
|
Grayder,
|
||||||
|
Grayder1,
|
||||||
|
Howo1,
|
||||||
|
Howo2,
|
||||||
|
Howo2_1,
|
||||||
|
Howo2_2,
|
||||||
|
Howo2_3,
|
||||||
|
Howo3,
|
||||||
|
Howo3_1,
|
||||||
|
Isuzu1,
|
||||||
|
Isuzu2,
|
||||||
|
Kaimei1,
|
||||||
|
Kaimei2,
|
||||||
|
Kampressor1,
|
||||||
|
Kampressor2,
|
||||||
|
Kampressor3,
|
||||||
Kat,
|
Kat,
|
||||||
|
Katka1,
|
||||||
|
Katka2,
|
||||||
Kompressor,
|
Kompressor,
|
||||||
kompressorSlider,
|
kompressorSlider,
|
||||||
Kran1,
|
Kran1,
|
||||||
@@ -15,18 +54,38 @@ import {
|
|||||||
Kran3,
|
Kran3,
|
||||||
Kran4,
|
Kran4,
|
||||||
Kran5,
|
Kran5,
|
||||||
|
Kranmexanik1,
|
||||||
|
Kranminora1,
|
||||||
Mikser,
|
Mikser,
|
||||||
Mini,
|
Mini,
|
||||||
|
Mini1,
|
||||||
|
Mini2,
|
||||||
|
Minora1,
|
||||||
|
Minora4,
|
||||||
Old,
|
Old,
|
||||||
|
Old1,
|
||||||
|
Old2,
|
||||||
|
Old3,
|
||||||
oldYuklagich,
|
oldYuklagich,
|
||||||
|
Palet1,
|
||||||
|
Palet3,
|
||||||
Paletli,
|
Paletli,
|
||||||
|
Paletli1,
|
||||||
|
Paletli2,
|
||||||
Samasval,
|
Samasval,
|
||||||
|
Tel1,
|
||||||
|
Tel2,
|
||||||
Teleskop,
|
Teleskop,
|
||||||
Treyler,
|
Treyler,
|
||||||
|
Treyler1,
|
||||||
|
Treyler10,
|
||||||
|
Treyler2,
|
||||||
|
Treyler3,
|
||||||
|
Treyler6,
|
||||||
} from "@/assets";
|
} from "@/assets";
|
||||||
import { ProductTypes } from "@/types";
|
import { innerCardTypes, ProductTypes } from "@/types";
|
||||||
import { StaticImageData } from "next/image";
|
|
||||||
|
|
||||||
|
// all truck information
|
||||||
export const trucks: ProductTypes[] = [
|
export const trucks: ProductTypes[] = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
@@ -68,9 +127,9 @@ export const cranes: ProductTypes[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
truck_name: "crawler-cranes",
|
truck_name: "avtocranes",
|
||||||
desc: "agreement",
|
desc: "agreement",
|
||||||
path: "crawler-cranes",
|
path: "avtocranes",
|
||||||
image: Kran2,
|
image: Kran2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -78,20 +137,20 @@ export const cranes: ProductTypes[] = [
|
|||||||
truck_name: "tower-cranes",
|
truck_name: "tower-cranes",
|
||||||
desc: "agreement",
|
desc: "agreement",
|
||||||
path: "tower-cranes",
|
path: "tower-cranes",
|
||||||
image: Kran3,
|
image: Kran4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 4,
|
id: 4,
|
||||||
truck_name: "lifters",
|
truck_name: "lifters",
|
||||||
desc: "agreement",
|
desc: "agreement",
|
||||||
path: "lifters",
|
path: "lifters",
|
||||||
image: Kran4,
|
image: Kran3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 5,
|
id: 5,
|
||||||
truck_name: "lifters",
|
truck_name: "crawler-cranes",
|
||||||
desc: "agreement",
|
desc: "agreement",
|
||||||
path: "lifters",
|
path: "crawler-cranes",
|
||||||
image: Kran5,
|
image: Kran5,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
@@ -190,8 +249,123 @@ export const allProducts : ProductTypes[] = [
|
|||||||
...road_repairs,
|
...road_repairs,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// inner car information by types of trucks
|
||||||
|
|
||||||
|
//yuk mashinalari
|
||||||
|
export const cement_trucks: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Howo1, name: "Avtosementavoz Howo 1", min_order_time: 4, price: 350000, path: "" },
|
||||||
|
{ id: 4, image: Howo2_1, name: "Avtosementavoz Howo 4", min_order_time: 4, price: 365000, path: "" },
|
||||||
|
{ id: 5, image: Howo3_1, name: "Avtosementavoz Howo 5", min_order_time: 4, price: 370000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const dumb_trucks: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Kaimei1, name: "Kaimei Samasval", min_order_time: 3, price: 400000, path: "" },
|
||||||
|
{ id: 2, image: Chakman2, name: "Chakman Samasval", min_order_time: 3, price: 410000, path: "" },
|
||||||
|
{ id: 3, image: Isuzu2, name: "Isuzu Samasval", min_order_time: 3, price: 430000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const trailers: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Treyler1, name: "Treyler XCMG", min_order_time: 5, price: 500000, path: "" },
|
||||||
|
{ id: 2, image: Treyler2, name: "Treyler Long", min_order_time: 5, price: 520000, path: "" },
|
||||||
|
{ id: 3, image: Treyler6, name: "Treyler Platforma", min_order_time: 5, price: 560000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const gazels: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Gazel2, name: "Gazel mini", min_order_time: 2, price: 260000, path: "" },
|
||||||
|
{ id: 2, image: Gazel5, name: "Gazel 4x2", min_order_time: 2, price: 280000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
//kranlar
|
||||||
|
export const avtominora: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Kranminora1, name: "Avtominora Kran", min_order_time: 5, price: 600000, path: "" },
|
||||||
|
{ id: 2, image: Kranmexanik1, name: "Avtokran Zoomlion", min_order_time: 5, price: 620000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const avtokran: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Avtokran1, name: "Avtokran", min_order_time: 5, price: 600000, path: "" },
|
||||||
|
{ id: 2, image: Avtokran4, name: "Avtokran", min_order_time: 5, price: 620000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const minora: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Minora1, name: "Avtominora Kran", min_order_time: 5, price: 600000, path: "" },
|
||||||
|
{ id: 2, image: Minora4, name: "Avtominora Kran", min_order_time: 5, price: 620000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const dizel: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Dizel2, name: "Dizel Ko'targichlar", min_order_time: 5, price: 600000, path: "" },
|
||||||
|
{ id: 2, image: Dizel3, name: "Dizel Ko'targichlar", min_order_time: 5, price: 620000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const paletli_kranlar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Palet1, name: "Paletli kran", min_order_time: 5, price: 600000, path: "" },
|
||||||
|
{ id: 2, image: Palet3, name: "Paletli kran", min_order_time: 5, price: 620000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
//forkliftlar
|
||||||
|
export const old_yuklagichlar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Old1, name: "Old Yuklagich GEHL", min_order_time: 3, price: 350000, path: "" },
|
||||||
|
{ id: 2, image: Old2, name: "Old Yuklagich Hyundai", min_order_time: 3, price: 365000, path: "" },
|
||||||
|
{ id: 3, image: Old3, name: "Old Yuklagich Lonking", min_order_time: 3, price: 370000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const teleskop_yuklagichlar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Tel1, name: "Teleskopik Yuklagich JCB", min_order_time: 3, price: 400000, path: "" },
|
||||||
|
{ id: 2, image: Tel2, name: "Teleskopik Yuklagich XCMG", min_order_time: 3, price: 420000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const forkliftlar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Fork1, name: "Forklift Mitsubishi", min_order_time: 2, price: 300000, path: "" },
|
||||||
|
{ id: 2, image: Fork2, name: "Forklift Lonking", min_order_time: 2, price: 310000, path: "" },
|
||||||
|
{ id: 3, image: Fork3, name: "Forklift JCB", min_order_time: 2, price: 320000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
//ekskavatorlar
|
||||||
|
export const paletli_eks: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Paletli1, name: "Paletli Ekskavator Hyundai", min_order_time: 4, price: 450000, path: "" },
|
||||||
|
{ id: 2, image: Paletli2, name: "Paletli Ekskavator XCMG", min_order_time: 4, price: 470000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const gildirakli_eks: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Balon1, name: "G‘ildirakli Ekskavator GEHL", min_order_time: 4, price: 440000, path: "" },
|
||||||
|
{ id: 2, image: Balon2, name: "G‘ildirakli Ekskavator Lonking", min_order_time: 4, price: 460000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const mini_eks: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Mini1, name: "Mini Ekskavator JCB", min_order_time: 3, price: 400000, path: "" },
|
||||||
|
{ id: 2, image: Mini2, name: "Mini Ekskavator XCMG", min_order_time: 3, price: 410000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const eks_yuklagichlar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Digger1, name: "Ekskavator Yuklagich Hyundai", min_order_time: 3, price: 420000, path: "" },
|
||||||
|
{ id: 2, image: Digger2, name: "Ekskavator Yuklagich Gehl", min_order_time: 3, price: 430000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
// yo'l tamiri
|
||||||
|
export const avtogreyderlar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Grayder1, name: "Avtogreyder XCMG", min_order_time: 4, price: 500000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const buldozerlar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Buldozer1, name: "Buldozer Lonking", min_order_time: 4, price: 520000, path: "" },
|
||||||
|
{ id: 2, image: Buldozer2, name: "Buldozer XCMG", min_order_time: 4, price: 540000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const katkalar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Katka1, name: "Katka JCB", min_order_time: 4, price: 490000, path: "" },
|
||||||
|
{ id: 2, image: Katka2, name: "Katka Hyundai", min_order_time: 4, price: 510000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const kompressorlar: innerCardTypes[] = [
|
||||||
|
{ id: 1, image: Kampressor1, name: "Kompressor Mitsubishi", min_order_time: 3, price: 350000, path: "" },
|
||||||
|
{ id: 2, image: Kampressor2, name: "Kompressor XCMG", min_order_time: 3, price: 370000, path: "" },
|
||||||
|
{ id: 3, image: Kampressor3, name: "Kompressor Hyundai", min_order_time: 3, price: 390000, path: "" },
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// slider data
|
||||||
export const sliderData : ProductTypes[] = [
|
export const sliderData : ProductTypes[] = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
|
|||||||
@@ -1,173 +1,178 @@
|
|||||||
{
|
{
|
||||||
"all":"Все машины",
|
"all": "Все машины",
|
||||||
"home": "Главное",
|
"home": "Главное",
|
||||||
"products": "Продукты",
|
"products": "Продукты",
|
||||||
"news": "Новости",
|
"news": "Новости",
|
||||||
"contact": "Контакты",
|
"contact": "Контакты",
|
||||||
"home-h1-1": "Постройте свою мечту с нашим строительным оборудованием",
|
"home-h1-1": "Постройте свою мечту с нашим строительным оборудованием",
|
||||||
"home-h1-2": "Мы предоставляем лучшее строительное оборудование для вас",
|
"home-h1-2": "Мы предоставляем лучшее строительное оборудование для вас",
|
||||||
"home-p-1": "Высокая производительность и долговечность для любых строительных задач.",
|
"home-p-1": "Высокая производительность и долговечность для любых строительных задач.",
|
||||||
"home-p-2": "Надежность, производительность и долговечность для успешного выполнения любых строительных проектов.",
|
"home-p-2": "Надежность, производительность и долговечность для успешного выполнения любых строительных проектов.",
|
||||||
"pricing-h2": "Прокат спецтехники в Ташкенте",
|
"pricing-h2": "Прокат спецтехники в Ташкенте",
|
||||||
"amazing": "Потрясающее",
|
"amazing": "Потрясающее",
|
||||||
"equipment": "Оборудование",
|
"equipment": "Оборудование",
|
||||||
"trucks": "Грузовые автомобили",
|
"trucks": "Грузовые автомобили",
|
||||||
"cranes": "Краны",
|
"cranes": "Краны",
|
||||||
"forklift-trucks": "Вилочные погрузчики",
|
"forklift-trucks": "Вилочные погрузчики",
|
||||||
"forklift-truck": "Вилочный погрузчик",
|
"forklift-truck": "Вилочный погрузчик",
|
||||||
"excavators": "Экскаваторы",
|
"excavators": "Экскаваторы",
|
||||||
"excavator": "Экскаватор",
|
"excavator": "Экскаватор",
|
||||||
"road-repairs": "Дорожные ремонтные",
|
"road-repairs": "Дорожные ремонтные",
|
||||||
"agreement": "По договоренности",
|
"agreement": "По договоренности",
|
||||||
"cement-trucks": "Автоцементовозы",
|
"cement-trucks": "Автоцементовозы",
|
||||||
"dumb-trucks": "Самосвалы",
|
"dumb-trucks": "Самосвалы",
|
||||||
"dumb-truck": "Самосвал",
|
"dumb-truck": "Самосвал",
|
||||||
"trailers": "Тягачи",
|
"trailers": "Тягачи",
|
||||||
"trailer": "Тягач",
|
"trailer": "Тягач",
|
||||||
"gazels": "Газели",
|
"gazels": "Газели",
|
||||||
"avtotowers": "Автовышки",
|
"avtotowers": "Автовышки",
|
||||||
"avtocranes": "Автокраны",
|
"avtocranes": "Автокраны",
|
||||||
"crawler-cranes": "Гусеничные краны",
|
"crawler-cranes": "Гусеничные краны",
|
||||||
"crawler-crane": "Гусеничный кран",
|
"crawler-crane": "Гусеничный кран",
|
||||||
"tower-cranes": "Башенные краны",
|
"tower-cranes": "Башенные краны",
|
||||||
"tower-crane": "Башенный кран",
|
"tower-crane": "Башенный кран",
|
||||||
"lifters": "Дизельные подъемники",
|
"lifters": "Дизельные подъемники",
|
||||||
"lifter": "Дизельный подъемник",
|
"lifter": "Дизельный подъемник",
|
||||||
"front-loaders": "Фронтальные погрузчики",
|
"front-loaders": "Фронтальные погрузчики",
|
||||||
"front-loader": "Фронтальный погрузчик",
|
"front-loader": "Фронтальный погрузчик",
|
||||||
"tele-loaders": "Телескопические погрузчики",
|
"tele-loaders": "Телескопические погрузчики",
|
||||||
"tele-loader": "Телескопические погрузчики",
|
"tele-loader": "Телескопические погрузчики",
|
||||||
"crawler-excavators": "Гусеничные экскаваторы",
|
"crawler-excavators": "Гусеничные экскаваторы",
|
||||||
"crawler-excavator": "Гусеничный экскаватор",
|
"crawler-excavator": "Гусеничный экскаватор",
|
||||||
"wheel-excavators": "Колесные экскаваторы",
|
"wheel-excavators": "Колесные экскаваторы",
|
||||||
"wheel-excavator": "Колесный экскаватор",
|
"wheel-excavator": "Колесный экскаватор",
|
||||||
"mini-excavators": "Мини-экскаваторы",
|
"mini-excavators": "Мини-экскаваторы",
|
||||||
"excavator-loaders": "Экскаватор-погрузчики",
|
"excavator-loaders": "Экскаватор-погрузчики",
|
||||||
"excavator-loader": "Экскаватор-погрузчик",
|
"excavator-loader": "Экскаватор-погрузчик",
|
||||||
"avtograders": "Автогрейдеры",
|
"avtograders": "Автогрейдеры",
|
||||||
"avtograder": "Автогрейдер",
|
"avtograder": "Автогрейдер",
|
||||||
"buldozers": "Бульдозеры",
|
"buldozers": "Бульдозеры",
|
||||||
"buldozer": "Бульдозер",
|
"buldozer": "Бульдозер",
|
||||||
"katkas": "Катки",
|
"katkas": "Катки",
|
||||||
"katka": "Катка",
|
"katka": "Катка",
|
||||||
"compressors": "Компрессоры",
|
"compressors": "Компрессоры",
|
||||||
"testimonials": "Отзывы",
|
"testimonials": "Отзывы",
|
||||||
"clients'": "Клиентов",
|
"clients'": "Клиентов",
|
||||||
"testimonial-h2": "Что говорят о нас наши прекрасные клиенты",
|
"testimonial-h2": "Что говорят о нас наши прекрасные клиенты",
|
||||||
"feedback-1": "Мы доверяем этой компании в аренде тяжелой техники в течение последних трех лет, и мы очень довольны ее обслуживанием. Качество их оборудования на высшем уровне, а их поддержка клиентов не имеет себе равных. От кранов до экскаваторов - у них есть все необходимое для эффективного и безопасного выполнения работ.",
|
"feedback-1": "Мы доверяем этой компании в аренде тяжелой техники в течение последних трех лет, и мы очень довольны ее обслуживанием. Качество их оборудования на высшем уровне, а их поддержка клиентов не имеет себе равных. От кранов до экскаваторов - у них есть все необходимое для эффективного и безопасного выполнения работ.",
|
||||||
"feedback-2": "На протяжении многих лет я работал с несколькими компаниями по аренде, но эта компания выделяется своим профессионализмом и надежностью. Погрузчики и компрессоры, которые мы арендовали, были в отличном состоянии, а доставка была произведена точно в срок. Их команда всегда готова прийти на помощь и обеспечить бесперебойную работу. Настоятельно рекомендую!",
|
"feedback-2": "На протяжении многих лет я работал с несколькими компаниями по аренде, но эта компания выделяется своим профессионализмом и надежностью. Погрузчики и компрессоры, которые мы арендовали, были в отличном состоянии, а доставка была произведена точно в срок. Их команда всегда готова прийти на помощь и обеспечить бесперебойную работу. Настоятельно рекомендую!",
|
||||||
"feedback-3": "Когда речь заходит о тяжелой технике, простой невозможен. Именно поэтому мы доверяем SPES-TEXNIKA все наши услуги по аренде. Обширный парк самосвалов и экскаваторов компании позволяет нам всегда получать необходимое оборудование в нужное время. Их быстрая реакция и гибкие условия аренды делают их идеальным выбором для любого проекта.",
|
"feedback-3": "Когда речь заходит о тяжелой технике, простой невозможен. Именно поэтому мы доверяем SPES-TEXNIKA все наши услуги по аренде. Обширный парк самосвалов и экскаваторов компании позволяет нам всегда получать необходимое оборудование в нужное время. Их быстрая реакция и гибкие условия аренды делают их идеальным выбором для любого проекта.",
|
||||||
"feedback-4": "Мы уже более года пользуемся услугами компании SPES-TEXNIKA для аренды оборудования, и они неизменно предоставляют отличный сервис. Краны и компрессоры, которые мы арендовали, были в хорошем состоянии и работали безупречно. Их команда обладает знаниями и всегда делает все возможное, чтобы обеспечить бесперебойную работу наших проектов. Мы бы никому другому не доверили наше оборудование.",
|
"feedback-4": "Мы уже более года пользуемся услугами компании SPES-TEXNIKA для аренды оборудования, и они неизменно предоставляют отличный сервис. Краны и компрессоры, которые мы арендовали, были в хорошем состоянии и работали безупречно. Их команда обладает знаниями и всегда делает все возможное, чтобы обеспечить бесперебойную работу наших проектов. Мы бы никому другому не доверили наше оборудование.",
|
||||||
"brand-h2": "Транспортный парк состоит из спецтехники мировых брендов",
|
"brand-h2": "Транспортный парк состоит из спецтехники мировых брендов",
|
||||||
"about-h2": "Мы предлагаем вам лучшее",
|
"about-h2": "Мы предлагаем вам лучшее",
|
||||||
"about-p": "Мы предлагаем в аренду только надежное и современное оборудование от ведущих мировых производителей. Наша техника регулярно проходит техническое обслуживание, что гарантирует ее бесперебойную работу на протяжении всего срока аренды. Кроме того, наши специалисты всегда готовы оказать вам квалифицированную помощь и консультацию по всем вопросам, связанным с эксплуатацией арендованного оборудования.",
|
"about-p": "Мы предлагаем в аренду только надежное и современное оборудование от ведущих мировых производителей. Наша техника регулярно проходит техническое обслуживание, что гарантирует ее бесперебойную работу на протяжении всего срока аренды. Кроме того, наши специалисты всегда готовы оказать вам квалифицированную помощь и консультацию по всем вопросам, связанным с эксплуатацией арендованного оборудования.",
|
||||||
"about-block-quote": "Пожалуйста, обратите внимание на наши специальные предложения и скидки! Свяжитесь с нами сегодня и получите консультацию от наших экспертов",
|
"about-block-quote": "Пожалуйста, обратите внимание на наши специальные предложения и скидки! Свяжитесь с нами сегодня и получите консультацию от наших экспертов",
|
||||||
"contact-us": "Свяжитесь с нами",
|
"contact-us": "Свяжитесь с нами",
|
||||||
"news-h2": "Последние новости и обновления",
|
"news-h2": "Последние новости и обновления",
|
||||||
"Excavator": "Экскаватор",
|
"Excavator": "Экскаватор",
|
||||||
"faq-h2": "Часто задаваемые вопросы",
|
"faq-h2": "Часто задаваемые вопросы",
|
||||||
"faq1": "Можно ли заказать спецтехнику на выходных ?",
|
"faq1": "Можно ли заказать спецтехнику на выходных ?",
|
||||||
"faq-answer-1": "Да, можно. Мы принимаем и выполняем заказы 24/7.",
|
"faq-answer-1": "Да, можно. Мы принимаем и выполняем заказы 24/7.",
|
||||||
"faq2": "Какой минимальный срок оказания услуг по спецтехнике ?",
|
"faq2": "Какой минимальный срок оказания услуг по спецтехнике ?",
|
||||||
"faq-answer-2": "Минимальный срок аренды составляет от 30 часов.",
|
"faq-answer-2": "Минимальный срок аренды составляет от 30 часов.",
|
||||||
"faq3": "Какие виды спецтехники есть у вас ?",
|
"faq3": "Какие виды спецтехники есть у вас ?",
|
||||||
"faq-answer-3": "В нашем автопарке имеется:",
|
"faq-answer-3": "В нашем автопарке имеется:",
|
||||||
"faq-answer-3-1": "Манипуляторы грузоподъемностью до 7 тонн",
|
"faq-answer-3-1": "Манипуляторы грузоподъемностью до 7 тонн",
|
||||||
"faq-answer-3-2": "Колесные и гусеничные экскаваторы",
|
"faq-answer-3-2": "Колесные и гусеничные экскаваторы",
|
||||||
"faq-answer-3-3": "Фронтальные и вилочные(телескопические) погрузчики и другие",
|
"faq-answer-3-3": "Фронтальные и вилочные(телескопические) погрузчики и другие",
|
||||||
"faq4": " Форма оплата?",
|
"faq4": " Форма оплата?",
|
||||||
"faq-answer-4": "Форма оплата любая, в том числе через мобильное приложения.",
|
"faq-answer-4": "Форма оплата любая, в том числе через мобильное приложения.",
|
||||||
"partner-h2": "Наши партнёры",
|
"partner-h2": "Наши партнёры",
|
||||||
"contact-h2": "Заказать звонок",
|
"contact-h2": "Заказать звонок",
|
||||||
"footer-p": "Надежность, производительность и долговечность для успешного выполнения любых строительных проектов.",
|
"footer-p": "Надежность, производительность и долговечность для успешного выполнения любых строительных проектов.",
|
||||||
"call": "Перезвони мне",
|
"call": "Перезвони мне",
|
||||||
"subscribe": "Подписывайтесь на нас",
|
"subscribe": "Подписывайтесь на нас",
|
||||||
"links": "Полезная ссылка",
|
"links": "Полезная ссылка",
|
||||||
"contact-info": "Контактная информация",
|
"contact-info": "Контактная информация",
|
||||||
"length": "Длина",
|
"length": "Длина",
|
||||||
"width": "Ширина",
|
"width": "Ширина",
|
||||||
"height": "Высота",
|
"height": "Высота",
|
||||||
"load": "Грузоподъемность",
|
"load": "Грузоподъемность",
|
||||||
"compressor": "Компрессор",
|
"compressor": "Компрессор",
|
||||||
"conditioning": "Кондиционер",
|
"conditioning": "Кондиционер",
|
||||||
"rent-tower-crane": "Аренда башенные краны",
|
"rent-tower-crane": "Аренда башенные краны",
|
||||||
"more": "Узнать больше",
|
"more": "Узнать больше",
|
||||||
"presssing-width": "Ширина уплотнения",
|
"presssing-width": "Ширина уплотнения",
|
||||||
"max-height": "Максимальная высота",
|
"max-height": "Максимальная высота",
|
||||||
"max-length": "Максимальная длина",
|
"max-length": "Максимальная длина",
|
||||||
"gasoline": "Тип топлива",
|
"gasoline": "Тип топлива",
|
||||||
"gasoline-volume": "Емкость топлива",
|
"gasoline-volume": "Емкость топлива",
|
||||||
"air-volume": "Емкость воздуха",
|
"air-volume": "Емкость воздуха",
|
||||||
"compressor-volume": "Емкость компрессора",
|
"compressor-volume": "Емкость компрессора",
|
||||||
"compressing-volume": "Давление сжатия",
|
"compressing-volume": "Давление сжатия",
|
||||||
"power": "Мощность двигателя",
|
"power": "Мощность двигателя",
|
||||||
"transmission": "Коробка передач",
|
"transmission": "Коробка передач",
|
||||||
"max-speed": "Максимальная скорость",
|
"max-speed": "Максимальная скорость",
|
||||||
"compressor-desc": "Емкость бака, показанная на картинке, средняя и может составлять от 30 до 60 литров. Такого объема будет достаточно для длительного использования. Этот компрессор можно использовать в автомобильных мастерских, на небольших промышленных предприятиях и во многих других местах. Он удобен в использовании со многими воздушными инструментами и приспособлениями.",
|
"compressor-desc": "Емкость бака, показанная на картинке, средняя и может составлять от 30 до 60 литров. Такого объема будет достаточно для длительного использования. Этот компрессор можно использовать в автомобильных мастерских, на небольших промышленных предприятиях и во многих других местах. Он удобен в использовании со многими воздушными инструментами и приспособлениями.",
|
||||||
"book": "Заказать",
|
"book": "Заказать",
|
||||||
"ask": "Спросить в Telegram",
|
"ask": "Спросить в Telegram",
|
||||||
"description": "Описание",
|
"description": "Описание",
|
||||||
"avtotower": "Автовышка",
|
"avtotower": "Автовышка",
|
||||||
"avtocrane": "Автокран",
|
"avtocrane": "Автокран",
|
||||||
"samosval": "Самосвалы",
|
"samosval": "Самосвалы",
|
||||||
"details": "Детали",
|
"details": "Детали",
|
||||||
"feature1": "Лучшая строительная техника",
|
"feature1": "Лучшая строительная техника",
|
||||||
"feature2": "По доступной цене",
|
"feature2": "По доступной цене",
|
||||||
"feature3": "Вопреки общему мнению",
|
"feature3": "Вопреки общему мнению",
|
||||||
"feature4": "Проверка качества",
|
"feature4": "Проверка качества",
|
||||||
"feature5": "Техническая поддержка",
|
"feature5": "Техническая поддержка",
|
||||||
"feature6": "Сервис в нужное время",
|
"feature6": "Сервис в нужное время",
|
||||||
"weight": "Вес",
|
"weight": "Вес",
|
||||||
"contacts": "Контакты",
|
"contacts": "Контакты",
|
||||||
"rent-samosval" :"Аренда Самосвалов",
|
"rent-samosval": "Аренда Самосвалов",
|
||||||
"rent-cement-trucks": "Аренда Автоцементовозов",
|
"rent-cement-trucks": "Аренда Автоцементовозов",
|
||||||
"rent-avtocranes": "Аренда Автокранов",
|
"rent-avtocranes": "Аренда Автокранов",
|
||||||
"rent-trailers": "Аренда Тягачов",
|
"rent-trailers": "Аренда Тягачов",
|
||||||
"rent-gazels": "Аренда Газелов",
|
"rent-gazels": "Аренда Газелов",
|
||||||
"rent-avtotower": "Аренда Автовышков",
|
"rent-avtotower": "Аренда Автовышков",
|
||||||
"rent-crawler-cranes": "Аренда Гусеничной кранов",
|
"rent-crawler-cranes": "Аренда Гусеничной кранов",
|
||||||
"rent-lifters": "Аренда Дизельное подъемников",
|
"rent-lifters": "Аренда Дизельное подъемников",
|
||||||
"rent-excavator-loader": "Аренда Экскаватор-погрузчиков",
|
"rent-excavator-loader": "Аренда Экскаватор-погрузчиков",
|
||||||
"rent-crawler-excavators": "Аренда Гусеничное экскаваторов",
|
"rent-crawler-excavators": "Аренда Гусеничное экскаваторов",
|
||||||
"rent-mini-excavators": "Аренда Мини-экскаваторов",
|
"rent-mini-excavators": "Аренда Мини-экскаваторов",
|
||||||
"rent-wheel-excavators": "Аренда Колесное экскаваторов",
|
"rent-wheel-excavators": "Аренда Колесное экскаваторов",
|
||||||
"rent-forklift-trucks": "Аренда вилочное Погрузчиков",
|
"rent-forklift-trucks": "Аренда вилочное Погрузчиков",
|
||||||
"rent-front-loaders": "Аренда Фронтальное погрузчиков",
|
"rent-front-loaders": "Аренда Фронтальное погрузчиков",
|
||||||
"rent-tele-loaders": "Аренда телескопическое погрузчиков",
|
"rent-tele-loaders": "Аренда телескопическое погрузчиков",
|
||||||
"rent-avtograder": "Аренда Автогрейдеров",
|
"rent-avtograder": "Аренда Автогрейдеров",
|
||||||
"rent-buldozer": "Аренда Бульдозеров",
|
"rent-buldozer": "Аренда Бульдозеров",
|
||||||
"rent-compressor": "Аренда Компрессоров",
|
"rent-compressor": "Аренда Компрессоров",
|
||||||
"rent-katkas": "Аренда Катков",
|
"rent-katkas": "Аренда Катков",
|
||||||
"cement-truck": "Автоцементовоз",
|
"cement-truck": "Автоцементовоз",
|
||||||
"tank-volume": "Объем бака",
|
"cement-truck-howo": "Автоцементовоз HOWO",
|
||||||
"intercooler": "Интеркулер",
|
"tank-volume": "Объем бака",
|
||||||
"yes": "Есть",
|
"intercooler": "Интеркулер",
|
||||||
"turbo-dizel": "Турбодизель",
|
"yes": "Есть",
|
||||||
"digging-depth": "Глубина копания",
|
"turbo-dizel": "Турбодизель",
|
||||||
"gazel": "Газель",
|
"digging-depth": "Глубина копания",
|
||||||
"knife": "Ширина лезвия",
|
"gazel": "Газель",
|
||||||
"bom-length": "Длина стрелы",
|
"knife": "Ширина лезвия",
|
||||||
"header-location": "Узбекистан, Ташкент",
|
"bom-length": "Длина стрелы",
|
||||||
"phone": "Номер телефона",
|
"header-location": "Узбекистан, Ташкент",
|
||||||
"trailer-desc": "Грузовик, представленный на изображении, представляет собой мощную и универсальную машину, способную выполнять широкий спектр задач. Прочная конструкция и мощный двигатель делают его идеальным для перевозки тяжелых грузов, а удобная кабина и удобное управление обеспечивают безопасность оператора и производительность. Передовые технологии и инновационные функции грузовика делают его лидером в отрасли грузоперевозок. Благодаря своим впечатляющим эксплуатационным характеристикам и долговечности грузовик, несомненно, превзойдет все ожидания и обеспечит выдающиеся результаты.",
|
"phone": "Номер телефона",
|
||||||
"cement-truck-desc": "Цементовоз, представленный на снимке, представляет собой прочное транспортное средство, предназначенное для эффективной перевозки цемента и других сыпучих материалов. Его мощный двигатель и прочное шасси обеспечивают бесперебойную работу и длительный срок службы даже в сложных условиях. Большая вместимость цистерны и усовершенствованная система разгрузки обеспечивают быструю и эффективную доставку, сводя к минимуму время простоя и повышая производительность. Благодаря исключительной грузоподъемности, топливной экономичности и удобству для водителя, эта цистерна с цементом является экономичным и рациональным решением для перевозки сыпучих материалов.",
|
"trailer-desc": "Грузовик, представленный на изображении, представляет собой мощную и универсальную машину, способную выполнять широкий спектр задач. Прочная конструкция и мощный двигатель делают его идеальным для перевозки тяжелых грузов, а удобная кабина и удобное управление обеспечивают безопасность оператора и производительность. Передовые технологии и инновационные функции грузовика делают его лидером в отрасли грузоперевозок. Благодаря своим впечатляющим эксплуатационным характеристикам и долговечности грузовик, несомненно, превзойдет все ожидания и обеспечит выдающиеся результаты.",
|
||||||
"gazel-desc": "Грузовик 'Газель NEXT' - это универсальный и надежный коммерческий автомобиль, который идеально подходит для различных применений. Гладкий белый кузов и синий брезент, закрывающий грузовой отсек, придают ему современный и стильный вид. Мощный двигатель и прочная конструкция грузовика позволяют ему справляться даже с самыми сложными задачами, а удобная кабина и удобное управление обеспечивают безопасность оператора и производительность. Благодаря впечатляющей грузоподъемности и топливной экономичности грузовик GAZelle NEXT является экономичным и результативным решением для предприятий любого размера.",
|
"cement-truck-desc": "Цементовоз, представленный на снимке, представляет собой прочное транспортное средство, предназначенное для эффективной перевозки цемента и других сыпучих материалов. Его мощный двигатель и прочное шасси обеспечивают бесперебойную работу и длительный срок службы даже в сложных условиях. Большая вместимость цистерны и усовершенствованная система разгрузки обеспечивают быструю и эффективную доставку, сводя к минимуму время простоя и повышая производительность. Благодаря исключительной грузоподъемности, топливной экономичности и удобству для водителя, эта цистерна с цементом является экономичным и рациональным решением для перевозки сыпучих материалов.",
|
||||||
"avtocrane-desc": "Автокран - это мощный и универсальный автомобильный кран, предназначенный для различных применений, включая строительство, транспортировку и промышленные операции. Он оснащен прочным шасси, мощной стрелой с грузоподъемностью и гидравлической системой для бесперебойной работы. Кран оснащен выносными опорами для дополнительной устойчивости, и благодаря своей конструкции, устанавливаемой на грузовике, его можно легко транспортировать на различные рабочие места.",
|
"gazel-desc": "Грузовик 'Газель NEXT' - это универсальный и надежный коммерческий автомобиль, который идеально подходит для различных применений. Гладкий белый кузов и синий брезент, закрывающий грузовой отсек, придают ему современный и стильный вид. Мощный двигатель и прочная конструкция грузовика позволяют ему справляться даже с самыми сложными задачами, а удобная кабина и удобное управление обеспечивают безопасность оператора и производительность. Благодаря впечатляющей грузоподъемности и топливной экономичности грузовик GAZelle NEXT является экономичным и результативным решением для предприятий любого размера.",
|
||||||
"avtotower-desc": "На этом снимке изображен шарнирно-сочлененный подъемник стрелы - универсальное оборудование, используемое для подъема на возвышенности. Он оснащен мощной трансмиссией 4x4, обеспечивающей оптимальную работу на неровной местности, и просторной платформой для комфорта и безопасности оператора. Шарнирная конструкция стрелы обеспечивает точное позиционирование и доступ к труднодоступным местам. Благодаря максимальной рабочей высоте в 45 футов, этот подъемник идеально подходит для различных наружных работ, включая строительство, техническое обслуживание и ландшафтный дизайн. При работе на возвышенностях, например, при ремонте зданий, покраске, мытье окон. В строительных работах, например, монтаж металлоконструкций, выполнение электротехнических и алхимических работ по дереву. Очень требователен к уходу за высокими деревьями в лесоводстве и садоводстве",
|
"avtocrane-desc": "Автокран - это мощный и универсальный автомобильный кран, предназначенный для различных применений, включая строительство, транспортировку и промышленные операции. Он оснащен прочным шасси, мощной стрелой с грузоподъемностью и гидравлической системой для бесперебойной работы. Кран оснащен выносными опорами для дополнительной устойчивости, и благодаря своей конструкции, устанавливаемой на грузовике, его можно легко транспортировать на различные рабочие места.",
|
||||||
"lifter-desc": "На снимках показаны надежные ножничные подъемники с дизельным двигателем, предназначенные для использования на открытом воздухе. Они оснащены просторной платформой с достаточным рабочим пространством и гидравлической системой для плавного и контролируемого подъема. Ножничный подъемник оснащен выдвижными опорами для устойчивости на неровной местности, а его максимальная рабочая высота составляет 10,2 метра. Эта модель идеально подходит для строительства, технического обслуживания и промышленного применения, где требуется надежный и эффективный доступ к рабочим пространствам на возвышенности.",
|
"avtotower-desc": "На этом снимке изображен шарнирно-сочлененный подъемник стрелы - универсальное оборудование, используемое для подъема на возвышенности. Он оснащен мощной трансмиссией 4x4, обеспечивающей оптимальную работу на неровной местности, и просторной платформой для комфорта и безопасности оператора. Шарнирная конструкция стрелы обеспечивает точное позиционирование и доступ к труднодоступным местам. Благодаря максимальной рабочей высоте в 45 футов, этот подъемник идеально подходит для различных наружных работ, включая строительство, техническое обслуживание и ландшафтный дизайн. При работе на возвышенностях, например, при ремонте зданий, покраске, мытье окон. В строительных работах, например, монтаж металлоконструкций, выполнение электротехнических и алхимических работ по дереву. Очень требователен к уходу за высокими деревьями в лесоводстве и садоводстве",
|
||||||
"tower-crane-desc": " На изображениях показаны мощные башенные краны, предназначенные для различных применений, включая строительные и инфраструктурные проекты. Он оснащен прочной мачтой с высокой грузоподъемностью и гидравлической системой для бесперебойной работы. Кран оснащен удобной кабиной оператора для улучшения обзора и контроля, а также имеет широкий диапазон перемещения благодаря стреле и крюку. Эта модель известна своей надежностью и эффективностью, что делает ее популярным выбором для сложных строительных проектов.",
|
"lifter-desc": "На снимках показаны надежные ножничные подъемники с дизельным двигателем, предназначенные для использования на открытом воздухе. Они оснащены просторной платформой с достаточным рабочим пространством и гидравлической системой для плавного и контролируемого подъема. Ножничный подъемник оснащен выдвижными опорами для устойчивости на неровной местности, а его максимальная рабочая высота составляет 10,2 метра. Эта модель идеально подходит для строительства, технического обслуживания и промышленного применения, где требуется надежный и эффективный доступ к рабочим пространствам на возвышенности.",
|
||||||
"excavator-loader-desc": "Это мощная и универсальная машина, которая идеально подходит для различных применений, включая строительство, сельское хозяйство и ландшафтный дизайн. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. Он также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот экскаватор-погрузчик оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.",
|
"tower-crane-desc": " На изображениях показаны мощные башенные краны, предназначенные для различных применений, включая строительные и инфраструктурные проекты. Он оснащен прочной мачтой с высокой грузоподъемностью и гидравлической системой для бесперебойной работы. Кран оснащен удобной кабиной оператора для улучшения обзора и контроля, а также имеет широкий диапазон перемещения благодаря стреле и крюку. Эта модель известна своей надежностью и эффективностью, что делает ее популярным выбором для сложных строительных проектов.",
|
||||||
"crawler-excavator-desc": "Этот экскаватор является мощной и универсальной машиной, способной выполнять даже самые сложные работы. Благодаря прочной конструкции и мощному двигателю он идеально подходит для тяжелых строительных и земляных работ. Усовершенствованная гидравлическая система экскаватора обеспечивает точное управление и бесперебойную работу, а удобная кабина - безопасность и эффективность работы оператора. Обладая впечатляющей глубиной копания и радиусом действия, этот экскаватор с легкостью справится с любым проектом.",
|
"excavator-loader-desc": "Это мощная и универсальная машина, которая идеально подходит для различных применений, включая строительство, сельское хозяйство и ландшафтный дизайн. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. Он также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот экскаватор-погрузчик оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.",
|
||||||
"wheel-excavator-desc": "Это мощный и универсальный колесный экскаватор, предназначенный для различных применений, включая строительство, ландшафтный дизайн и сельское хозяйство. Он оснащен просторной кабиной оператора с отличным обзором, мощным двигателем и гидравлической системой для бесперебойной работы. Экскаватор оснащен стандартным ковшом для копания и перемещения материалов, а также гидравлическим рычагом для точного перемещения предметов. Он также оснащен отвалом для выравнивания поверхностей.",
|
"crawler-excavator-desc": "Этот экскаватор является мощной и универсальной машиной, способной выполнять даже самые сложные работы. Благодаря прочной конструкции и мощному двигателю он идеально подходит для тяжелых строительных и земляных работ. Усовершенствованная гидравлическая система экскаватора обеспечивает точное управление и бесперебойную работу, а удобная кабина - безопасность и эффективность работы оператора. Обладая впечатляющей глубиной копания и радиусом действия, этот экскаватор с легкостью справится с любым проектом.",
|
||||||
"avtograder-desc": "Это мощная и универсальная машина, которая идеально подходит для различных применений, включая дорожное строительство, техническое обслуживание и ремонт. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. 14-метровый автогрейдер также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономику. Кроме того, этот автогрейдер оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.",
|
"wheel-excavator-desc": "Это мощный и универсальный колесный экскаватор, предназначенный для различных применений, включая строительство, ландшафтный дизайн и сельское хозяйство. Он оснащен просторной кабиной оператора с отличным обзором, мощным двигателем и гидравлической системой для бесперебойной работы. Экскаватор оснащен стандартным ковшом для копания и перемещения материалов, а также гидравлическим рычагом для точного перемещения предметов. Он также оснащен отвалом для выравнивания поверхностей.",
|
||||||
"forklift-truck-desc": "Это прочная и надежная рабочая лошадка, созданная для работы в сложных условиях. Мощный двигатель и прочная конструкция позволяют ей без особых усилий переносить тяжелые грузы на неровной местности, что делает ее идеальной для строительных площадок, складов и работ на открытом воздухе. Усовершенствованная гидравлическая система вилочного погрузчика обеспечивает точный и плавный подъем, а удобная кабина обеспечивает безопасное и эргономичное рабочее пространство для оператора. Обладая исключительными внедорожными возможностями, впечатляющей грузоподъемностью и прочной конструкцией, этот вилочный погрузчик Hangcha сконструирован таким образом, чтобы выдерживать самые суровые условия и обеспечивать выдающуюся производительность.",
|
"avtograder-desc": "Это мощная и универсальная машина, которая идеально подходит для различных применений, включая дорожное строительство, техническое обслуживание и ремонт. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. 14-метровый автогрейдер также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономику. Кроме того, этот автогрейдер оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.",
|
||||||
"front-loader-desc": "Представленный на снимке колесный погрузчик - это мощная и универсальная машина, предназначенная для выполнения самых сложных работ. Прочная конструкция и мощный двигатель позволяют без особых усилий загружать, перемещать и транспортировать тяжелые материалы, что делает его идеальным решением для строительства, добычи полезных ископаемых и промышленного применения. Усовершенствованная гидравлическая система колесного погрузчика обеспечивает точную и плавную работу, а просторная и удобная кабина обеспечивает оператору оптимальный обзор и контроль. Обладая впечатляющей грузоподъемностью, отличной маневренностью и прочной конструкцией, этот колесный погрузчик обеспечивает исключительную производительность.",
|
"forklift-truck-desc": "Это прочная и надежная рабочая лошадка, созданная для работы в сложных условиях. Мощный двигатель и прочная конструкция позволяют ей без особых усилий переносить тяжелые грузы на неровной местности, что делает ее идеальной для строительных площадок, складов и работ на открытом воздухе. Усовершенствованная гидравлическая система вилочного погрузчика обеспечивает точный и плавный подъем, а удобная кабина обеспечивает безопасное и эргономичное рабочее пространство для оператора. Обладая исключительными внедорожными возможностями, впечатляющей грузоподъемностью и прочной конструкцией, этот вилочный погрузчик Hangcha сконструирован таким образом, чтобы выдерживать самые суровые условия и обеспечивать выдающуюся производительность.",
|
||||||
"buldozer-desc": "Это мощный и универсальный гусеничный трактор, который идеально подходит для различных областей применения, включая добычу полезных ископаемых, строительство и лесное хозяйство. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. Он также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот трактор оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.",
|
"front-loader-desc": "Представленный на снимке колесный погрузчик - это мощная и универсальная машина, предназначенная для выполнения самых сложных работ. Прочная конструкция и мощный двигатель позволяют без особых усилий загружать, перемещать и транспортировать тяжелые материалы, что делает его идеальным решением для строительства, добычи полезных ископаемых и промышленного применения. Усовершенствованная гидравлическая система колесного погрузчика обеспечивает точную и плавную работу, а просторная и удобная кабина обеспечивает оператору оптимальный обзор и контроль. Обладая впечатляющей грузоподъемностью, отличной маневренностью и прочной конструкцией, этот колесный погрузчик обеспечивает исключительную производительность.",
|
||||||
"katka-desc": "Это мощный и универсальный тандемный каток, который идеально подходит для различных применений, включая дорожное строительство, техническое обслуживание и ремонт. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. ARX 95 также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот каток оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.",
|
"buldozer-desc": "Это мощный и универсальный гусеничный трактор, который идеально подходит для различных областей применения, включая добычу полезных ископаемых, строительство и лесное хозяйство. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. Он также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот трактор оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.",
|
||||||
"dumb-truck-desc": "Грузовик, представленный на изображении, представляет собой надежную и мощную машину, созданную для перевозки грузов в тяжелых условиях на труднопроходимой местности. Прочная конструкция и мощный двигатель позволяют ему без особых усилий перевозить большие объемы материалов по неровным дорогам и покрытиям. Гидравлическая система подъема самосвала обеспечивает быструю и эффективную разгрузку, повышая производительность и сводя к минимуму время простоя. Благодаря исключительной грузоподъемности, проходимости на бездорожье и прочному дизайну этот самосвал является надежным и эффективным решением для строительной, горнодобывающей и других требовательных отраслей промышленности.",
|
"katka-desc": "Это мощный и универсальный тандемный каток, который идеально подходит для различных применений, включая дорожное строительство, техническое обслуживание и ремонт. Эта машина оснащена мощным двигателем, который обеспечивает достаточную мощность для выполнения даже самых сложных задач. ARX 95 также оснащен удобной и просторной кабиной оператора, которая обеспечивает отличную обзорность и эргономичность. Кроме того, этот каток оснащен рядом дополнительных функций, которые упрощают его эксплуатацию и техническое обслуживание.",
|
||||||
"news-title1": "Лучший прокат оборудования для твой следующий проект",
|
"dumb-truck-desc": "Грузовик, представленный на изображении, представляет собой надежную и мощную машину, созданную для перевозки грузов в тяжелых условиях на труднопроходимой местности. Прочная конструкция и мощный двигатель позволяют ему без особых усилий перевозить большие объемы материалов по неровным дорогам и покрытиям. Гидравлическая система подъема самосвала обеспечивает быструю и эффективную разгрузку, повышая производительность и сводя к минимуму время простоя. Благодаря исключительной грузоподъемности, проходимости на бездорожье и прочному дизайну этот самосвал является надежным и эффективным решением для строительной, горнодобывающей и других требовательных отраслей промышленности.",
|
||||||
"news-title2": "Новый погрузчик - это именно то, что вам нужно!",
|
"news-title1": "Лучший прокат оборудования для твой следующий проект",
|
||||||
"news-title3": "Новый комплект компрессоров специально для вас",
|
"news-title2": "Новый погрузчик - это именно то, что вам нужно!",
|
||||||
"news-title4": "С нашими мощными кранами ваша работа станет проще",
|
"news-title3": "Новый комплект компрессоров специально для вас",
|
||||||
"tex-rent":"Аренда оборудования"
|
"news-title4": "С нашими мощными кранами ваша работа станет проще",
|
||||||
|
"tex-rent": "Аренда оборудования",
|
||||||
|
"wallet": "сумов",
|
||||||
|
"time": "часов",
|
||||||
|
"hour-price": "Цена за 1 час: ",
|
||||||
|
"min-time": "Минимальный заказ: "
|
||||||
}
|
}
|
||||||
@@ -143,6 +143,7 @@
|
|||||||
"rent-katka": "Katkalar ijarasi",
|
"rent-katka": "Katkalar ijarasi",
|
||||||
"intercooler": "Interkuler",
|
"intercooler": "Interkuler",
|
||||||
"cement-truck": "Avtosementovoz",
|
"cement-truck": "Avtosementovoz",
|
||||||
|
"cement_truck_howo":"Avtosementovoz HOWO",
|
||||||
"tank-volume": "Tank hajmi",
|
"tank-volume": "Tank hajmi",
|
||||||
"yes": "Bor",
|
"yes": "Bor",
|
||||||
"turbo-dizel": "Turbo dizel",
|
"turbo-dizel": "Turbo dizel",
|
||||||
@@ -171,5 +172,9 @@
|
|||||||
"news-title2": "Yangi yuklagich siz uchun eng yaxshi texnika!",
|
"news-title2": "Yangi yuklagich siz uchun eng yaxshi texnika!",
|
||||||
"news-title3": "Yangi kompressorlar to'plami aynan siz uchun",
|
"news-title3": "Yangi kompressorlar to'plami aynan siz uchun",
|
||||||
"news-title4": "Bizning kuchli kranlarimiz bilan ishingiz yanada osonlashadi.",
|
"news-title4": "Bizning kuchli kranlarimiz bilan ishingiz yanada osonlashadi.",
|
||||||
"tex-rent":"Texnikalar ijarasi"
|
"tex-rent":"Texnikalar ijarasi",
|
||||||
|
"wallet":"so'm",
|
||||||
|
"time":"soat",
|
||||||
|
"hour-price":"1 soat uchun narx: ",
|
||||||
|
"min-time":"Minimal buyrtma: "
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import { StaticImageData } from "next/image";
|
import { StaticImageData } from "next/image";
|
||||||
|
import { SetStateAction } from "react";
|
||||||
|
|
||||||
//// ============ tool's types ============ //////
|
//// ============ tool's types ============ //////
|
||||||
export interface TitleType {
|
export interface TitleType {
|
||||||
@@ -39,3 +40,12 @@ export interface ProductTypes {
|
|||||||
path: string;
|
path: string;
|
||||||
image: string | StaticImageData;
|
image: string | StaticImageData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface innerCardTypes{
|
||||||
|
id:number;
|
||||||
|
image:StaticImageData | string;
|
||||||
|
name:string;
|
||||||
|
min_order_time:number;
|
||||||
|
price?:number;
|
||||||
|
path:string;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user