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

View File

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

View File

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

View File

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

View File

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

View File

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

BIN
public/logo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB