language and hsow case changed

This commit is contained in:
nabijonovdavronbek619@gmail.com
2025-12-09 12:28:21 +05:00
parent 40e2b93f1d
commit d636a92dee
7 changed files with 29 additions and 26 deletions

View File

@@ -98,11 +98,10 @@ export function ContactForm() {
>
<div>
<h3 className="text-2xl font-bold text-gray-900 mb-2">
Get In Touch
{t.contact.title}
</h3>
<p className="text-gray-600 mb-8">
Reach out to us for inquiries, support, or partnership
opportunities.
{t.contact.desc}
</p>
</div>
@@ -110,18 +109,18 @@ export function ContactForm() {
{[
{
icon: Phone,
title: "Phone",
value: "+998 (99) 123-45-67",
title: "phone_title",
value: "+998 (99) 869-74-70",
},
{
icon: MessageSquare,
title: "Telegram",
title: "telegram_title",
value: "@firma_support",
},
{
icon: MapPin,
title: "Address",
value: "Tashkent, Uzbekistan",
title: "addres_title",
value: "Tashkent, Сергели 6 а 179 кв",
},
].map((item, idx) => {
const Icon = item.icon;
@@ -134,7 +133,7 @@ export function ContactForm() {
<Icon className="text-blue-600 shrink-0" size={24} />
<div>
<h4 className="font-semibold text-gray-900">
{item.title}
{t.contact[item.title]}
</h4>
<p className="text-gray-600">{item.value}</p>
</div>

View File

@@ -45,7 +45,7 @@ export function ShowCase({ images }: ShowCaseProps) {
};
return (
<section className="relative min-h-screen pt-20 pb-20">
<section className="relative min-h-screen flex items-center py-20">
{/* background image */}
<div className="absolute -z-50 top-0 left-0 h-full w-full">
<Image
@@ -57,8 +57,8 @@ export function ShowCase({ images }: ShowCaseProps) {
</div>
<div className="absolute w-full h-full top-0 left-0 bg-black opacity-25 -z-40" />
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 w-full h-full flex flex-col justify-center ">
<div className="flex flex-1 max-w-xl w-full">
{/* Left Content */}
<motion.div
initial={{ opacity: 0, x: -50 }}
@@ -84,7 +84,7 @@ export function ShowCase({ images }: ShowCaseProps) {
</motion.div>
{/* Right - Image Carousel */}
<motion.div
{/* <motion.div
initial={{ opacity: 0, x: 50 }}
animate={{ opacity: 1, x: 0 }}
transition={{ duration: 0.6, delay: 0.2 }}
@@ -111,8 +111,6 @@ export function ShowCase({ images }: ShowCaseProps) {
/>
</motion.div>
</AnimatePresence>
{/* Navigation Buttons */}
<motion.button
whileHover={{ scale: 1.1 }}
whileTap={{ scale: 0.95 }}
@@ -130,8 +128,6 @@ export function ShowCase({ images }: ShowCaseProps) {
>
<ChevronRight className="text-gray-800" />
</motion.button>
{/* Indicators */}
<div className="absolute bottom-4 left-1/2 -translate-x-1/2 z-10 flex gap-2">
{images.map((_, idx) => (
<motion.button
@@ -150,7 +146,7 @@ export function ShowCase({ images }: ShowCaseProps) {
))}
</div>
</div>
</motion.div>
</motion.div> */}
</div>
</div>
</section>

View File

@@ -8,7 +8,7 @@ type Language = "uz" | "ru"
interface LanguageContextType {
language: Language
setLanguage: (lang: Language) => void
t: (typeof translations)[Language]
t: (any)[Language]
}
const LanguageContext = createContext<LanguageContextType | undefined>(undefined)

View File

@@ -25,7 +25,8 @@ export const translations = {
items: [
{
question: "Mahsulotlar uchun kafolat bormi?",
answer: "Ha, barcha uskunalarimizga 12 oylik texnik kafolat beriladi.",
answer:
"Ha, barcha uskunalarimizga 12 oylik texnik kafolat beriladi.",
},
{
question: "Yetkazib berish muddati qancha?",
@@ -39,6 +40,7 @@ export const translations = {
},
contact: {
title: "Bog'lanish",
desc: "Savollar, qo'llab-quvvatlash yoki hamkorlik imkoniyatlari uchun biz bilan bog'laning.",
name: "Ism",
phone: "Telefon raqami",
message: "Xabar",
@@ -49,6 +51,9 @@ export const translations = {
namePlaceholder: "Sizning ismingiz",
phonePlaceholder: "+998 XX XXX XX XX",
messagePlaceholder: "Sizning xabaringiz (ixtiyoriy)",
phone_title: "Telefon",
telegram_title: "Telegram",
addres_title: "Manzil",
},
footer: {
copyright: "© 2025 Firma. Barcha huquqlar himoyalangan.",
@@ -64,14 +69,12 @@ export const translations = {
pump_2: {
name: "Agregat Nasos",
shortDescription: "Kuchli va ishonchli aggregat nasos",
description:
"Katta volumli neft mahsulotlarini tashishda o'rnatilgan.",
description: "Katta volumli neft mahsulotlarini tashishda o'rnatilgan.",
},
pump_3: {
name: "СЦЛ 20/24",
shortDescription: "Professional kalibrli nasos",
description:
"Chuqurligi 20-24 metrda ishlaydigan professional nasos.",
description: "Chuqurligi 20-24 metrda ishlaydigan professional nasos.",
},
},
},
@@ -119,6 +122,7 @@ export const translations = {
},
contact: {
title: "Свяжитесь с нами",
desc: "Для вопросов, поддержки или возможностей сотрудничества свяжитесь с нами.",
name: "Имя",
phone: "Номер телефона",
message: "Сообщение",
@@ -129,6 +133,9 @@ export const translations = {
namePlaceholder: "Ваше имя",
phonePlaceholder: "+998 XX XXX XX XX",
messagePlaceholder: "Ваше сообщение (опционально)",
phone_title: "Телефон",
telegram_title: "Телеграм",
addres_title: "Адрес",
},
footer: {
copyright: "© 2025 Firma. Все права защищены.",
@@ -137,8 +144,7 @@ export const translations = {
products_list: {
pump_1: {
name: "Счетчик Насос",
shortDescription:
"Для безопасной транспортировки нефтепродуктов",
shortDescription: "Для безопасной транспортировки нефтепродуктов",
description:
"Высококачественный счетчиковый насос, используется для транспортировки бензина, дизеля и керосина.",
},

View File

@@ -37,6 +37,7 @@
},
"contact": {
"title": "Свяжитесь с нами",
"desc": "Для вопросов, поддержки или возможностей сотрудничества свяжитесь с нами.",
"name": "Имя",
"phone": "Номер телефона",
"message": "Сообщение",

View File

@@ -37,6 +37,7 @@
},
"contact": {
"title": "Bog'lanish",
"desc": "Savollar, qo'llab-quvvatlash yoki hamkorlik imkoniyatlari uchun biz bilan bog'laning.",
"name": "Ism",
"phone": "Telefon raqami",
"message": "Xabar",

BIN
public/logo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB