Compare commits

..

No commits in common. "c989b2b7a429b8d03cce6b08eb54d42469d82262" and "adee43d2d6cc4dfef01c9ec3c9c7ba4bf6066f6a" have entirely different histories.

20 changed files with 289 additions and 392 deletions

View File

@ -74,7 +74,8 @@ export default function PromotionSlider() {
}; };
return ( return (
<div className='relative overflow-hidden'> <div className='relative'>
<div className='overflow-hidden'>
<div <div
className='flex transition-transform duration-300 ease-in-out' className='flex transition-transform duration-300 ease-in-out'
style={{ style={{
@ -119,19 +120,22 @@ export default function PromotionSlider() {
</div> </div>
))} ))}
</div> </div>
</div>
<Button <Button
variant='outline' variant='outline'
size='icon' size='icon'
className='absolute top-1/2 left-0 z-10 -translate-y-1/2 border-gray-200 bg-white shadow-lg' className='absolute top-1/2 left-0 z-10 -translate-x-1/2 -translate-y-1/2 border-gray-200 bg-white shadow-lg'
onClick={prevSlide} onClick={prevSlide}
> >
<ChevronLeft className='h-4 w-4' /> <ChevronLeft className='h-4 w-4' />
<span className='sr-only'>Предыдущий</span> <span className='sr-only'>Предыдущий</span>
</Button> </Button>
<Button <Button
variant='outline' variant='outline'
size='icon' size='icon'
className='absolute top-1/2 right-0 z-10 -translate-y-1/2 border-gray-200 bg-white shadow-lg' className='absolute top-1/2 right-0 z-10 translate-x-1/2 -translate-y-1/2 border-gray-200 bg-white shadow-lg'
onClick={nextSlide} onClick={nextSlide}
> >
<ChevronRight className='h-4 w-4' /> <ChevronRight className='h-4 w-4' />

View File

@ -1,18 +0,0 @@
'use client';
import { useContext } from 'react';
import { LanguageContext } from '../context/language-provider';
export function useLanguage() {
const context = useContext(LanguageContext);
if (context === undefined) {
throw new Error('useLanguage must be used within a LanguageProvider');
}
if (typeof context.t !== 'function') {
throw new Error('Translation function (t) is not available');
}
return context;
}

View File

@ -1,6 +0,0 @@
export {
LanguageProvider,
languages,
type Language,
} from './context/language-provider';
export { useLanguage } from './hooks/use-language';

View File

@ -1,9 +1,16 @@
'use client'; 'use client';
import { createContext, type ReactNode, useEffect, useState } from 'react'; import { Loader } from 'lucide-react';
import {
createContext,
type ReactNode,
useContext,
useEffect,
useState,
} from 'react';
import enTranslations from '../locales/en.json'; import enTranslations from './locales/en.json';
import ruTranslations from '../locales/ru.json'; import ruTranslations from './locales/ru.json';
// Define available languages // Define available languages
export const languages = { export const languages = {
@ -29,7 +36,7 @@ type LanguageContextType = {
t: (key: string) => string; t: (key: string) => string;
}; };
export const LanguageContext = createContext<LanguageContextType | undefined>( const LanguageContext = createContext<LanguageContextType | undefined>(
undefined, undefined,
); );
@ -37,6 +44,7 @@ export const LanguageContext = createContext<LanguageContextType | undefined>(
export function LanguageProvider({ children }: { children: ReactNode }) { export function LanguageProvider({ children }: { children: ReactNode }) {
// Default to Russian, but check localStorage on client // Default to Russian, but check localStorage on client
const [language, setLanguageState] = useState<Language>('ru'); const [language, setLanguageState] = useState<Language>('ru');
const [isLoaded, setIsLoaded] = useState(false);
useEffect(() => { useEffect(() => {
// Check if we're in the browser // Check if we're in the browser
@ -45,6 +53,7 @@ export function LanguageProvider({ children }: { children: ReactNode }) {
if (savedLanguage && languages[savedLanguage]) { if (savedLanguage && languages[savedLanguage]) {
setLanguageState(savedLanguage); setLanguageState(savedLanguage);
} }
setIsLoaded(true);
} }
}, []); }, []);
@ -71,3 +80,17 @@ export function LanguageProvider({ children }: { children: ReactNode }) {
</LanguageContext.Provider> </LanguageContext.Provider>
); );
} }
// Create hook
export function useLanguage() {
const context = useContext(LanguageContext);
if (context === undefined) {
throw new Error('useLanguage must be used within a LanguageProvider');
}
if (typeof context.t !== 'function') {
throw new Error('Translation function (t) is not available');
}
return context;
}

View File

@ -17,7 +17,6 @@
"common.buttons.sendResume": "Send Resume", "common.buttons.sendResume": "Send Resume",
"common.buttons.showAllStations": "Show All Stations", "common.buttons.showAllStations": "Show All Stations",
"common.buttons.allPromotions": "All Promotions", "common.buttons.allPromotions": "All Promotions",
"common.navigation.home": "Home", "common.navigation.home": "Home",
"common.navigation.about": "About Us", "common.navigation.about": "About Us",
"common.navigation.clients": "For Clients", "common.navigation.clients": "For Clients",
@ -27,17 +26,14 @@
"common.navigation.charity": "Charity", "common.navigation.charity": "Charity",
"common.navigation.certificates": "Certificates", "common.navigation.certificates": "Certificates",
"common.navigation.contacts": "Contacts", "common.navigation.contacts": "Contacts",
"common.footer.contacts": "Contacts", "common.footer.contacts": "Contacts",
"common.footer.navigation": "Navigation", "common.footer.navigation": "Navigation",
"common.footer.subscribe": "Subscribe", "common.footer.subscribe": "Subscribe",
"common.footer.subscribeText": "Subscribe to our newsletter to receive news and special offers.", "common.footer.subscribeText": "Subscribe to our newsletter to receive news and special offers.",
"common.footer.yourEmail": "Your email", "common.footer.yourEmail": "Your email",
"common.footer.rights": "All rights reserved.", "common.footer.rights": "All rights reserved.",
"home.hero.title": "Modern Gas Station Network in Tajikistan", "home.hero.title": "Modern Gas Station Network in Tajikistan",
"home.hero.description": "Quality fuel, convenient locations, and excellent service for our customers", "home.hero.description": "Quality fuel, convenient locations, and excellent service for our customers",
"home.about.title": "About Our Company", "home.about.title": "About Our Company",
"home.about.description1": "Our gas station network is one of the leading in Tajikistan. We provide high-quality fuel and a high level of service for our customers for more than 15 years.", "home.about.description1": "Our gas station network is one of the leading in Tajikistan. We provide high-quality fuel and a high level of service for our customers for more than 15 years.",
"home.about.description2": "We are constantly developing, opening new stations and improving service at existing ones. Our goal is to make refueling as convenient and fast as possible for every customer.", "home.about.description2": "We are constantly developing, opening new stations and improving service at existing ones. Our goal is to make refueling as convenient and fast as possible for every customer.",
@ -47,13 +43,10 @@
"home.about.features.equipment.description": "All our stations are equipped with modern equipment", "home.about.features.equipment.description": "All our stations are equipped with modern equipment",
"home.about.features.staff.title": "Professional Staff", "home.about.features.staff.title": "Professional Staff",
"home.about.features.staff.description": "Our employees are professionals in their field", "home.about.features.staff.description": "Our employees are professionals in their field",
"home.stations.title": "Our Stations", "home.stations.title": "Our Stations",
"home.stations.description": "Find the nearest station in our network. We are located in convenient places throughout Tajikistan.", "home.stations.description": "Find the nearest station in our network. We are located in convenient places throughout Tajikistan.",
"home.promotions.title": "Current Promotions", "home.promotions.title": "Current Promotions",
"home.promotions.description": "Special offers and promotions for our customers. Refuel profitably!", "home.promotions.description": "Special offers and promotions for our customers. Refuel profitably!",
"home.vacancies.title": "Vacancies", "home.vacancies.title": "Vacancies",
"home.vacancies.description": "Join our team of professionals. We offer stable work and opportunities for growth.", "home.vacancies.description": "Join our team of professionals. We offer stable work and opportunities for growth.",
"home.vacancies.all": "All vacancies", "home.vacancies.all": "All vacancies",
@ -63,12 +56,10 @@
"home.vacancies.experience": "Experience from 1 year", "home.vacancies.experience": "Experience from 1 year",
"home.vacancies.shiftWork": "Shift work", "home.vacancies.shiftWork": "Shift work",
"home.vacancies.training": "Training", "home.vacancies.training": "Training",
"home.partners.title": "Our Partners", "home.partners.title": "Our Partners",
"home.partners.description": "We cooperate with leading companies to provide the best services to our customers.", "home.partners.description": "We cooperate with leading companies to provide the best services to our customers.",
"home.partners.becomePartner": "Become Our Partner", "home.partners.becomePartner": "Become Our Partner",
"home.partners.becomePartnerText": "We are open to cooperation and new partnerships. Contact us to discuss opportunities.", "home.partners.becomePartnerText": "We are open to cooperation and new partnerships. Contact us to discuss opportunities.",
"home.charity.title": "Charity Foundation", "home.charity.title": "Charity Foundation",
"home.charity.description": "Our charity foundation was created to support socially significant projects in Tajikistan. We strive to contribute to the development of society and help those in need.", "home.charity.description": "Our charity foundation was created to support socially significant projects in Tajikistan. We strive to contribute to the development of society and help those in need.",
"home.charity.directions": "Main directions of our foundation's activities:", "home.charity.directions": "Main directions of our foundation's activities:",
@ -77,10 +68,8 @@
"home.charity.ecology": "Environmental initiatives", "home.charity.ecology": "Environmental initiatives",
"home.charity.sports": "Support for sports events", "home.charity.sports": "Support for sports events",
"home.charity.learnMore": "Learn More About the Foundation", "home.charity.learnMore": "Learn More About the Foundation",
"home.cta.title": "Join Us", "home.cta.title": "Join Us",
"home.cta.description": "Become part of our network. Get special offers, bonuses, and discounts.", "home.cta.description": "Become part of our network. Get special offers, bonuses, and discounts.",
"certificates.title": "Our Certificates", "certificates.title": "Our Certificates",
"certificates.description": "GasNetwork adheres to high standards of quality and safety. Our certificates confirm the compliance of our products and services with international and national standards.", "certificates.description": "GasNetwork adheres to high standards of quality and safety. Our certificates confirm the compliance of our products and services with international and national standards.",
"certificates.requestInfo": "Request Additional Information", "certificates.requestInfo": "Request Additional Information",
@ -88,7 +77,6 @@
"certificates.issueDate": "Issue Date", "certificates.issueDate": "Issue Date",
"certificates.expiryDate": "Valid Until", "certificates.expiryDate": "Valid Until",
"certificates.faq": "Frequently Asked Questions", "certificates.faq": "Frequently Asked Questions",
"auth.title": "Login to your account", "auth.title": "Login to your account",
"auth.description": "Log in to your personal account to access information about your bonuses, transaction history and other features.", "auth.description": "Log in to your personal account to access information about your bonuses, transaction history and other features.",
"auth.bonusClient": "Bonus Client", "auth.bonusClient": "Bonus Client",
@ -100,7 +88,6 @@
"auth.phoneNumber": "Phone number", "auth.phoneNumber": "Phone number",
"auth.cardNumber": "Card number", "auth.cardNumber": "Card number",
"auth.loginIssues": "Having trouble logging in?", "auth.loginIssues": "Having trouble logging in?",
"map.filters": "Filters", "map.filters": "Filters",
"map.stationsList": "Stations List", "map.stationsList": "Stations List",
"map.noStations": "No stations matching the selected filters", "map.noStations": "No stations matching the selected filters",

View File

@ -17,7 +17,6 @@
"common.buttons.sendResume": "Отправить резюме", "common.buttons.sendResume": "Отправить резюме",
"common.buttons.showAllStations": "Показать все заправки", "common.buttons.showAllStations": "Показать все заправки",
"common.buttons.allPromotions": "Все акции", "common.buttons.allPromotions": "Все акции",
"common.navigation.home": "Главная", "common.navigation.home": "Главная",
"common.navigation.about": "О нас", "common.navigation.about": "О нас",
"common.navigation.clients": "Клиентам", "common.navigation.clients": "Клиентам",
@ -27,17 +26,14 @@
"common.navigation.charity": "Благотворительность", "common.navigation.charity": "Благотворительность",
"common.navigation.certificates": "Сертификаты", "common.navigation.certificates": "Сертификаты",
"common.navigation.contacts": "Контакты", "common.navigation.contacts": "Контакты",
"common.footer.contacts": "Контакты", "common.footer.contacts": "Контакты",
"common.footer.navigation": "Навигация", "common.footer.navigation": "Навигация",
"common.footer.subscribe": "Подписка", "common.footer.subscribe": "Подписка",
"common.footer.subscribeText": "Подпишитесь на нашу рассылку, чтобы получать новости и специальные предложения.", "common.footer.subscribeText": "Подпишитесь на нашу рассылку, чтобы получать новости и специальные предложения.",
"common.footer.yourEmail": "Ваш email", "common.footer.yourEmail": "Ваш email",
"common.footer.rights": "Все права защищены.", "common.footer.rights": "Все права защищены.",
"home.hero.title": "Сеть современных заправок в Таджикистане", "home.hero.title": "Сеть современных заправок в Таджикистане",
"home.hero.description": "Качественное топливо, удобное расположение и отличный сервис для наших клиентов", "home.hero.description": "Качественное топливо, удобное расположение и отличный сервис для наших клиентов",
"home.about.title": "О нашей компании", "home.about.title": "О нашей компании",
"home.about.description1": "Наша сеть заправок является одной из ведущих в Таджикистане. Мы предоставляем качественное топливо и высокий уровень обслуживания для наших клиентов уже более 15 лет.", "home.about.description1": "Наша сеть заправок является одной из ведущих в Таджикистане. Мы предоставляем качественное топливо и высокий уровень обслуживания для наших клиентов уже более 15 лет.",
"home.about.description2": "Мы постоянно развиваемся, открывая новые станции и улучшая сервис на существующих. Наша цель - сделать заправку автомобиля максимально удобной и быстрой для каждого клиента.", "home.about.description2": "Мы постоянно развиваемся, открывая новые станции и улучшая сервис на существующих. Наша цель - сделать заправку автомобиля максимально удобной и быстрой для каждого клиента.",
@ -47,13 +43,10 @@
"home.about.features.equipment.description": "Все наши станции оснащены современным оборудованием", "home.about.features.equipment.description": "Все наши станции оснащены современным оборудованием",
"home.about.features.staff.title": "Профессиональный персонал", "home.about.features.staff.title": "Профессиональный персонал",
"home.about.features.staff.description": "Наши сотрудники - профессионалы своего дела", "home.about.features.staff.description": "Наши сотрудники - профессионалы своего дела",
"home.stations.title": "Наши заправки", "home.stations.title": "Наши заправки",
"home.stations.description": "Найдите ближайшую к вам заправку нашей сети. Мы расположены в удобных местах по всему Таджикистану.", "home.stations.description": "Найдите ближайшую к вам заправку нашей сети. Мы расположены в удобных местах по всему Таджикистану.",
"home.promotions.title": "Актуальные акции", "home.promotions.title": "Актуальные акции",
"home.promotions.description": "Специальные предложения и акции для наших клиентов. Заправляйтесь выгодно!", "home.promotions.description": "Специальные предложения и акции для наших клиентов. Заправляйтесь выгодно!",
"home.vacancies.title": "Вакансии", "home.vacancies.title": "Вакансии",
"home.vacancies.description": "Присоединяйтесь к нашей команде профессионалов. Мы предлагаем стабильную работу и возможности для роста.", "home.vacancies.description": "Присоединяйтесь к нашей команде профессионалов. Мы предлагаем стабильную работу и возможности для роста.",
"home.vacancies.all": "Все вакансии", "home.vacancies.all": "Все вакансии",
@ -63,12 +56,10 @@
"home.vacancies.experience": "Опыт от 1 года", "home.vacancies.experience": "Опыт от 1 года",
"home.vacancies.shiftWork": "Сменный график", "home.vacancies.shiftWork": "Сменный график",
"home.vacancies.training": "Обучение", "home.vacancies.training": "Обучение",
"home.partners.title": "Наши партнеры", "home.partners.title": "Наши партнеры",
"home.partners.description": "Мы сотрудничаем с ведущими компаниями для предоставления лучших услуг нашим клиентам.", "home.partners.description": "Мы сотрудничаем с ведущими компаниями для предоставления лучших услуг нашим клиентам.",
"home.partners.becomePartner": "Станьте нашим партнером", "home.partners.becomePartner": "Станьте нашим партнером",
"home.partners.becomePartnerText": "Мы открыты для сотрудничества и новых партнерских отношений. Свяжитесь с нами для обсуждения возможностей.", "home.partners.becomePartnerText": "Мы открыты для сотрудничества и новых партнерских отношений. Свяжитесь с нами для обсуждения возможностей.",
"home.charity.title": "Благотворительный фонд", "home.charity.title": "Благотворительный фонд",
"home.charity.description": "Наш благотворительный фонд был создан для поддержки социально значимых проектов в Таджикистане. Мы стремимся внести свой вклад в развитие общества и помочь тем, кто в этом нуждается.", "home.charity.description": "Наш благотворительный фонд был создан для поддержки социально значимых проектов в Таджикистане. Мы стремимся внести свой вклад в развитие общества и помочь тем, кто в этом нуждается.",
"home.charity.directions": "Основные направления деятельности нашего фонда:", "home.charity.directions": "Основные направления деятельности нашего фонда:",
@ -77,10 +68,8 @@
"home.charity.ecology": "Экологические инициативы", "home.charity.ecology": "Экологические инициативы",
"home.charity.sports": "Поддержка спортивных мероприятий", "home.charity.sports": "Поддержка спортивных мероприятий",
"home.charity.learnMore": "Подробнее о фонде", "home.charity.learnMore": "Подробнее о фонде",
"home.cta.title": "Присоединяйтесь к нам", "home.cta.title": "Присоединяйтесь к нам",
"home.cta.description": "Станьте частью нашей сети. Получайте специальные предложения, бонусы и скидки.", "home.cta.description": "Станьте частью нашей сети. Получайте специальные предложения, бонусы и скидки.",
"certificates.title": "Наши сертификаты", "certificates.title": "Наши сертификаты",
"certificates.description": "GasNetwork придерживается высоких стандартов качества и безопасности. Наши сертификаты подтверждают соответствие нашей продукции и услуг международным и национальным стандартам.", "certificates.description": "GasNetwork придерживается высоких стандартов качества и безопасности. Наши сертификаты подтверждают соответствие нашей продукции и услуг международным и национальным стандартам.",
"certificates.requestInfo": "Запросить дополнительную информацию", "certificates.requestInfo": "Запросить дополнительную информацию",
@ -88,7 +77,6 @@
"certificates.issueDate": "Дата выдачи", "certificates.issueDate": "Дата выдачи",
"certificates.expiryDate": "Действителен до", "certificates.expiryDate": "Действителен до",
"certificates.faq": "Часто задаваемые вопросы", "certificates.faq": "Часто задаваемые вопросы",
"auth.title": "Вход в личный кабинет", "auth.title": "Вход в личный кабинет",
"auth.description": "Войдите в личный кабинет, чтобы получить доступ к информации о ваших бонусах, истории операций и другим возможностям.", "auth.description": "Войдите в личный кабинет, чтобы получить доступ к информации о ваших бонусах, истории операций и другим возможностям.",
"auth.bonusClient": "Бонусный клиент", "auth.bonusClient": "Бонусный клиент",
@ -100,7 +88,6 @@
"auth.phoneNumber": "Номер телефона", "auth.phoneNumber": "Номер телефона",
"auth.cardNumber": "Номер карты", "auth.cardNumber": "Номер карты",
"auth.loginIssues": "Возникли проблемы со входом?", "auth.loginIssues": "Возникли проблемы со входом?",
"map.filters": "Фильтры", "map.filters": "Фильтры",
"map.stationsList": "Список заправок", "map.stationsList": "Список заправок",
"map.noStations": "Нет заправок, соответствующих выбранным фильтрам", "map.noStations": "Нет заправок, соответствующих выбранным фильтрам",

View File

@ -1,44 +0,0 @@
'use client';
import { Check, Globe } from 'lucide-react';
import { useState } from 'react';
import { type Language, languages, useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button';
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from '@/shared/shadcn-ui/dropdown-menu';
export function LanguageSwitcher() {
const { language, setLanguage } = useLanguage();
const [open, setOpen] = useState(false);
return (
<DropdownMenu open={open} onOpenChange={setOpen}>
<DropdownMenuTrigger asChild>
<Button variant='ghost' size='sm' className='h-8 w-8 px-0'>
<Globe className='h-4 w-4' />
<span className='sr-only'>Switch language</span>
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align='end'>
{Object.entries(languages).map(([code, { name, flag }]) => (
<DropdownMenuItem
key={code}
onClick={() => {
setLanguage(code as Language);
setOpen(false);
}}
>
<span className='mr-2'>{flag}</span>
{name}
{code === language && <Check className='ml-2 h-4 w-4' />}
</DropdownMenuItem>
))}
</DropdownMenuContent>
</DropdownMenu>
);
}

View File

@ -2,11 +2,11 @@
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import { LanguageProvider } from '../language';
import { store } from '../store'; import { store } from '../store';
import { ThemeProvider } from '../theme/theme-provider'; import { ThemeProvider } from '../theme/theme-provider';
import { AosProvider } from './aos-provider'; import { AosProvider } from './aos-provider';
import { Toaster } from './toaster'; import { Toaster } from './toaster';
import { LanguageProvider } from '../language';
type ProvidersProps = { type ProvidersProps = {
children: React.ReactNode; children: React.ReactNode;

View File

@ -1,27 +1,30 @@
'use client';
import { Users } from 'lucide-react'; import { Users } from 'lucide-react';
import Image from 'next/image'; import Image from 'next/image';
import AboutCounter from '@/shared/components/about-counter'; import AboutCounter from '@/shared/components/about-counter';
import { useLanguage } from '@/shared/language';
export const AboutSection = () => { export const AboutSection = () => {
const { t } = useLanguage();
return ( return (
<section id='about' className='py-16'> <section id='about' className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='grid items-center gap-12 md:grid-cols-2'> <div className='grid items-center gap-12 md:grid-cols-2'>
<div> <div data-aos='fade-right'>
<div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'> <div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'>
<Users className='h-6 w-6 text-red-600' /> <Users className='h-6 w-6 text-red-600' />
</div> </div>
<h2 className='mb-6 text-3xl font-bold tracking-tight sm:text-4xl'> <h2 className='mb-6 text-3xl font-bold tracking-tight sm:text-4xl'>
{t('home.about.title')} О нашей компании
</h2> </h2>
<p className='mb-6 text-gray-600'>{t('home.about.description1')}</p> <p className='mb-6 text-gray-600'>
<p className='mb-6 text-gray-600'>{t('home.about.description2')}</p> Наша сеть заправок является одной из ведущих в Таджикистане. Мы
предоставляем качественное топливо и высокий уровень обслуживания
для наших клиентов уже более 15 лет.
</p>
<p className='mb-6 text-gray-600'>
Мы постоянно развиваемся, открывая новые станции и улучшая сервис
на существующих. Наша цель - сделать заправку автомобиля
максимально удобной и быстрой для каждого клиента.
</p>
<AboutCounter /> <AboutCounter />
<div className='space-y-4'> <div className='space-y-4'>
@ -30,11 +33,9 @@ export const AboutSection = () => {
<span className='text-xs text-white'></span> <span className='text-xs text-white'></span>
</div> </div>
<div className='ml-3'> <div className='ml-3'>
<h3 className='text-lg font-medium'> <h3 className='text-lg font-medium'>Качественное топливо</h3>
{t('home.about.features.quality.title')}
</h3>
<p className='text-gray-600'> <p className='text-gray-600'>
{t('home.about.features.quality.description')} Мы гарантируем высокое качество нашего топлива
</p> </p>
</div> </div>
</div> </div>
@ -44,10 +45,10 @@ export const AboutSection = () => {
</div> </div>
<div className='ml-3'> <div className='ml-3'>
<h3 className='text-lg font-medium'> <h3 className='text-lg font-medium'>
{t('home.about.features.equipment.title')} Современное оборудование
</h3> </h3>
<p className='text-gray-600'> <p className='text-gray-600'>
{t('home.about.features.equipment.description')} Все наши станции оснащены современным оборудованием
</p> </p>
</div> </div>
</div> </div>
@ -57,18 +58,18 @@ export const AboutSection = () => {
</div> </div>
<div className='ml-3'> <div className='ml-3'>
<h3 className='text-lg font-medium'> <h3 className='text-lg font-medium'>
{t('home.about.features.staff.title')} Профессиональный персонал
</h3> </h3>
<p className='text-gray-600'> <p className='text-gray-600'>
{t('home.about.features.staff.description')} Наши сотрудники - профессионалы своего дела
</p> </p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div <div
data-aos='fade-up'
className='relative h-[400px] overflow-hidden rounded-xl shadow-xl' className='relative h-[400px] overflow-hidden rounded-xl shadow-xl'
data-aos='zoom-in-down'
> >
<Image <Image
src='/placeholder.svg?height=400&width=600' src='/placeholder.svg?height=400&width=600'

View File

@ -1,21 +1,16 @@
'use client';
import { ChevronRight, Heart } from 'lucide-react'; import { ChevronRight, Heart } from 'lucide-react';
import Image from 'next/image'; import Image from 'next/image';
import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
export const CharitySection = () => { export const CharitySection = () => {
const { t } = useLanguage();
return ( return (
<section id='charity' className='py-16'> <section id='charity' className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='grid items-center gap-12 md:grid-cols-2'> <div className='grid items-center gap-12 md:grid-cols-2'>
<div <div
data-aos='zoom-in'
className='relative order-2 h-[400px] overflow-hidden rounded-xl shadow-xl md:order-1' className='relative order-2 h-[400px] overflow-hidden rounded-xl shadow-xl md:order-1'
data-aos='zoom-out-up'
> >
<Image <Image
src='/placeholder.svg?height=400&width=600' src='/placeholder.svg?height=400&width=600'
@ -29,32 +24,36 @@ export const CharitySection = () => {
<Heart className='h-6 w-6 text-red-600' /> <Heart className='h-6 w-6 text-red-600' />
</div> </div>
<h2 className='mb-6 text-3xl font-bold tracking-tight sm:text-4xl'> <h2 className='mb-6 text-3xl font-bold tracking-tight sm:text-4xl'>
{t('home.charity.title')} Благотворительный фонд
</h2> </h2>
<p className='mb-6 text-gray-600'> <p className='mb-6 text-gray-600'>
{t('home.charity.description')} Наш благотворительный фонд был создан для поддержки социально
значимых проектов в Таджикистане. Мы стремимся внести свой вклад в
развитие общества и помочь тем, кто в этом нуждается.
</p>
<p className='mb-6 text-gray-600'>
Основные направления деятельности нашего фонда:
</p> </p>
<p className='mb-6 text-gray-600'>{t('home.charity.directions')}</p>
<ul className='mb-6 space-y-2'> <ul className='mb-6 space-y-2'>
<li className='flex items-center'> <li className='flex items-center'>
<ChevronRight className='mr-2 h-5 w-5 text-red-600' /> <ChevronRight className='mr-2 h-5 w-5 text-red-600' />
<span>{t('home.charity.education')}</span> <span>Поддержка образовательных программ</span>
</li> </li>
<li className='flex items-center'> <li className='flex items-center'>
<ChevronRight className='mr-2 h-5 w-5 text-red-600' /> <ChevronRight className='mr-2 h-5 w-5 text-red-600' />
<span>{t('home.charity.children')}</span> <span>Помощь детям из малообеспеченных семей</span>
</li> </li>
<li className='flex items-center'> <li className='flex items-center'>
<ChevronRight className='mr-2 h-5 w-5 text-red-600' /> <ChevronRight className='mr-2 h-5 w-5 text-red-600' />
<span>{t('home.charity.ecology')}</span> <span>Экологические инициативы</span>
</li> </li>
<li className='flex items-center'> <li className='flex items-center'>
<ChevronRight className='mr-2 h-5 w-5 text-red-600' /> <ChevronRight className='mr-2 h-5 w-5 text-red-600' />
<span>{t('home.charity.sports')}</span> <span>Поддержка спортивных мероприятий</span>
</li> </li>
</ul> </ul>
<Button className='bg-red-600 hover:bg-red-700'> <Button className='bg-red-600 hover:bg-red-700'>
{t('home.charity.learnMore')} Подробнее о фонде
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -1,23 +1,21 @@
'use client';
import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
export const CtaSection = () => { export const CtaSection = () => {
const { t } = useLanguage();
return ( return (
<section className='bg-red-600 py-16 text-white'> <section className='bg-red-600 py-16 text-white'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='flex flex-col items-center text-center'> <div className='flex flex-col items-center text-center'>
<h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'> <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'>
{t('home.cta.title')} Присоединяйтесь к нам
</h2> </h2>
<p className='mb-8 max-w-2xl'>{t('home.cta.description')}</p> <p className='mb-8 max-w-2xl'>
Станьте частью нашей сети. Получайте специальные предложения, бонусы
и скидки.
</p>
<div className='flex flex-col gap-4 sm:flex-row'> <div className='flex flex-col gap-4 sm:flex-row'>
<Button variant='outline'>{t('common.buttons.downloadApp')}</Button> <Button variant='outline'>Скачать приложение</Button>
<Button className='bg-white text-red-600 hover:bg-gray-100'> <Button variant='secondary'>
{t('common.buttons.getLoyaltyCard')} Получить карту лояльности
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -1,24 +1,22 @@
'use client';
import { Fuel, Mail, MapPin, Phone } from 'lucide-react'; import { Fuel, Mail, MapPin, Phone } from 'lucide-react';
import Link from 'next/link'; import Link from 'next/link';
import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
export const Footer = () => { export const Footer = () => {
const { t } = useLanguage();
return ( return (
<footer className='bg-gray-900 py-12 text-white px-4'> <footer className='bg-gray-900 py-12 text-white'>
<div className='containe mx-autor'> <div className='container mx-auto'>
<div className='grid grid-cols-1 gap-8 md:grid-cols-4'> <div className='grid grid-cols-1 gap-8 md:grid-cols-4'>
<div> <div>
<div className='mb-4 flex items-center gap-2'> <div className='mb-4 flex items-center gap-2'>
<Fuel className='h-6 w-6 text-red-500' /> <Fuel className='h-6 w-6 text-red-500' />
<span className='text-xl font-bold'>GasNetwork</span> <span className='text-xl font-bold'>GasNetwork</span>
</div> </div>
<p className='mb-4 text-gray-400'>{t('home.hero.description')}</p> <p className='mb-4 text-gray-400'>
Сеть современных заправок в Таджикистане. Качественное топливо и
отличный сервис.
</p>
<div className='flex space-x-4'> <div className='flex space-x-4'>
<a href='#' className='text-gray-400 hover:text-white'> <a href='#' className='text-gray-400 hover:text-white'>
<svg <svg
@ -61,9 +59,7 @@ export const Footer = () => {
</div> </div>
</div> </div>
<div> <div>
<h3 className='mb-4 text-lg font-semibold'> <h3 className='mb-4 text-lg font-semibold'>Контакты</h3>
{t('common.footer.contacts')}
</h3>
<div className='space-y-3'> <div className='space-y-3'>
<div className='flex items-start'> <div className='flex items-start'>
<MapPin className='mt-0.5 mr-3 h-5 w-5 text-red-500' /> <MapPin className='mt-0.5 mr-3 h-5 w-5 text-red-500' />
@ -80,69 +76,76 @@ export const Footer = () => {
</div> </div>
</div> </div>
<div> <div>
<h3 className='mb-4 text-lg font-semibold'> <h3 className='mb-4 text-lg font-semibold'>Навигация</h3>
{t('common.footer.navigation')}
</h3>
<ul className='space-y-2'> <ul className='space-y-2'>
<li> <li>
<Link href='/' className='text-gray-400 hover:text-white'> <Link
{t('common.navigation.home')} href='#stations'
className='text-gray-400 hover:text-white'
>
Наши заправки
</Link> </Link>
</li> </li>
<li> <li>
<Link href='/about' className='text-gray-400 hover:text-white'> <Link href='#about' className='text-gray-400 hover:text-white'>
{t('common.navigation.about')} О нас
</Link> </Link>
</li> </li>
<li> <li>
<Link <Link
href='/clients/loyalty' href='#vacancies'
className='text-gray-400 hover:text-white' className='text-gray-400 hover:text-white'
> >
{t('common.navigation.clients')} Вакансии
</Link> </Link>
</li> </li>
<li> <li>
<Link <Link
href='/#stations' href='#promotions'
className='text-gray-400 hover:text-white' className='text-gray-400 hover:text-white'
> >
{t('common.navigation.stations')} Акции
</Link> </Link>
</li> </li>
<li> <li>
<Link <Link
href='/#vacancies' href='#partners'
className='text-gray-400 hover:text-white' className='text-gray-400 hover:text-white'
> >
{t('common.navigation.vacancies')} Партнеры
</Link>
</li>
<li>
<Link
href='#charity'
className='text-gray-400 hover:text-white'
>
Благотворительность
</Link> </Link>
</li> </li>
</ul> </ul>
</div> </div>
<div> <div>
<h3 className='mb-4 text-lg font-semibold'> <h3 className='mb-4 text-lg font-semibold'>Подписка</h3>
{t('common.footer.subscribe')}
</h3>
<p className='mb-4 text-gray-400'> <p className='mb-4 text-gray-400'>
{t('common.footer.subscribeText')} Подпишитесь на нашу рассылку, чтобы получать новости и специальные
предложения.
</p> </p>
<form className='space-y-2'> <form className='space-y-2'>
<input <input
type='email' type='email'
placeholder={t('common.footer.yourEmail')} placeholder='Ваш email'
className='w-full rounded-md border border-gray-700 bg-gray-800 px-4 py-2 text-white' className='w-full rounded-md border border-gray-700 bg-gray-800 px-4 py-2 text-white'
/> />
<Button className='w-full bg-red-600 hover:bg-red-700'> <Button className='w-full bg-red-600 hover:bg-red-700'>
{t('common.footer.subscribe')} Подписаться
</Button> </Button>
</form> </form>
</div> </div>
</div> </div>
<div className='mt-8 border-t border-gray-800 pt-8 text-center text-gray-400'> <div className='mt-8 border-t border-gray-800 pt-8 text-center text-gray-400'>
<p> <p>
&copy; {new Date().getFullYear()} GasNetwork.{' '} &copy; {new Date().getFullYear()} GasNetwork. Все права защищены.
{t('common.footer.rights')}
</p> </p>
</div> </div>
</div> </div>

View File

@ -14,7 +14,7 @@ import {
export function DesktopNav() { export function DesktopNav() {
return ( return (
<NavigationMenu className='hidden lg:flex'> <NavigationMenu className='hidden md:flex'>
<NavigationMenuList> <NavigationMenuList>
<NavigationMenuItem> <NavigationMenuItem>
<Link href='/' scroll> <Link href='/' scroll>

View File

@ -1,37 +1,24 @@
'use client';
import { UserCircle } from 'lucide-react';
import Link from 'next/link'; import Link from 'next/link';
import { Logo } from '@/shared/assets/logo'; import { Logo } from '@/shared/assets/logo';
import { useLanguage } from '@/shared/language';
import { LanguageSwitcher } from '@/shared/language/ui/language-switcher';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
import { DesktopNav } from './desktop-nav'; import { DesktopNav } from './desktop-nav';
import { MobileNav } from './mobile-nav'; import { MobileNav } from './mobile-nav';
export function Header() { export function Header() {
const { t } = useLanguage();
return ( return (
<header className='sticky top-0 z-40 w-full border-b bg-white'> <header className='sticky top-0 z-40 w-full border-b bg-white'>
<div className='container mx-auto flex h-16 items-center justify-between p-4'> <div className='container mx-auto flex h-16 items-center justify-between p-4'>
<Logo /> <Logo />
<DesktopNav /> <DesktopNav />
<div className='flex items-center gap-6 lg:contents'> <div className='flex items-center gap-6 md:contents'>
<MobileNav /> <MobileNav />
<div className='flex items-center gap-6'>
<LanguageSwitcher />
<Link href={'/login'}> <Link href={'/login'}>
<Button className='flex items-center gap-2'> <Button>Вход</Button>
<UserCircle className='size-4' />
{t('common.buttons.login')}
</Button>
</Link> </Link>
</div> </div>
</div> </div>
</div>
</header> </header>
); );
} }

View File

@ -19,7 +19,7 @@ export function MobileNav() {
return ( return (
<Sheet open={open} onOpenChange={setOpen}> <Sheet open={open} onOpenChange={setOpen}>
<SheetTrigger asChild> <SheetTrigger asChild>
<Button variant='ghost' className='lg:hidden' size='icon'> <Button variant='ghost' className='md:hidden' size='icon'>
<Menu className='h-6 w-6' /> <Menu className='h-6 w-6' />
<span className='sr-only'>Открыть меню</span> <span className='sr-only'>Открыть меню</span>
</Button> </Button>

View File

@ -1,14 +1,9 @@
'use client';
import { MapPin } from 'lucide-react'; import { MapPin } from 'lucide-react';
import Image from 'next/image'; import Image from 'next/image';
import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
export const HeroSection = () => { export const HeroSection = () => {
const { t } = useLanguage();
return ( return (
<section className='relative'> <section className='relative'>
<div className='relative h-[500px] w-full overflow-hidden'> <div className='relative h-[500px] w-full overflow-hidden'>
@ -24,18 +19,19 @@ export const HeroSection = () => {
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='max-w-lg space-y-4 text-white'> <div className='max-w-lg space-y-4 text-white'>
<h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'> <h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'>
{t('home.hero.title')} Сеть современных заправок в Таджикистане
</h1> </h1>
<p className='text-lg text-gray-200'> <p className='text-lg text-gray-200'>
{t('home.hero.description')} Качественное топливо, удобное расположение и отличный сервис для
наших клиентов
</p> </p>
<div className='flex gap-4'> <div className='flex gap-4'>
<Button className='bg-red-600 hover:bg-red-700'> <Button className='bg-red-600 hover:bg-red-700'>
{t('common.buttons.findStation')}{' '} Найти заправку <MapPin className='ml-2 h-4 w-4' />
<MapPin className='ml-2 h-4 w-4' />
</Button> </Button>
<Button variant='outline'> <Button variant='outline'
{t('common.buttons.learnMore')} >
Узнать больше
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -1,15 +1,10 @@
'use client';
import { ChevronRight, MapPin } from 'lucide-react'; import { ChevronRight, MapPin } from 'lucide-react';
import { GasStationMap } from '@/features/map'; import { GasStationMap } from '@/features/map';
import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
export const MapSection = () => { export const MapSection = () => {
const { t } = useLanguage();
return ( return (
<section id='stations' className='bg-gray-50 py-16'> <section id='stations' className='bg-gray-50 py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
@ -18,22 +13,22 @@ export const MapSection = () => {
<MapPin className='h-6 w-6 text-red-600' /> <MapPin className='h-6 w-6 text-red-600' />
</div> </div>
<h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'> <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'>
{t('home.stations.title')} Наши заправки
</h2> </h2>
<p className='max-w-2xl text-gray-600'> <p className='max-w-2xl text-gray-600'>
{t('home.stations.description')} Найдите ближайшую к вам заправку нашей сети. Мы расположены в
удобных местах по всему Таджикистану.
</p> </p>
</div> </div>
<div <div
className='h-[500px] overflow-hidden rounded-xl border shadow-lg'
data-aos='fade-up' data-aos='fade-up'
className='h-[500px] overflow-hidden rounded-xl border shadow-lg'
> >
<GasStationMap /> <GasStationMap />
</div> </div>
<div className='mt-8 flex justify-center'> <div className='mt-8 flex justify-center'>
<Button className='bg-red-600 hover:bg-red-700'> <Button className='bg-red-600 hover:bg-red-700'>
{t('common.buttons.viewAll')}{' '} Показать все заправки <ChevronRight className='ml-2 h-4 w-4' />
<ChevronRight className='ml-2 h-4 w-4' />
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -1,14 +1,9 @@
'use client';
import { Handshake } from 'lucide-react'; import { Handshake } from 'lucide-react';
import Image from 'next/image'; import Image from 'next/image';
import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
export const PartnersSection = () => { export const PartnersSection = () => {
const { t } = useLanguage();
return ( return (
<section id='partners' className='bg-gray-50 py-16'> <section id='partners' className='bg-gray-50 py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
@ -17,10 +12,11 @@ export const PartnersSection = () => {
<Handshake className='h-6 w-6 text-red-600' /> <Handshake className='h-6 w-6 text-red-600' />
</div> </div>
<h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'> <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'>
{t('home.partners.title')} Наши партнеры
</h2> </h2>
<p className='max-w-2xl text-gray-600'> <p className='max-w-2xl text-gray-600'>
{t('home.partners.description')} Мы сотрудничаем с ведущими компаниями для предоставления лучших
услуг нашим клиентам.
</p> </p>
</div> </div>
@ -29,7 +25,7 @@ export const PartnersSection = () => {
<div <div
key={partner} key={partner}
className='flex h-32 items-center justify-center rounded-lg bg-white p-6 shadow-md transition-transform hover:scale-105' className='flex h-32 items-center justify-center rounded-lg bg-white p-6 shadow-md transition-transform hover:scale-105'
data-aos='flip-left' data-aos='flip-up'
> >
<Image <Image
src={`/placeholder.svg?height=80&width=160&text=Partner ${partner}`} src={`/placeholder.svg?height=80&width=160&text=Partner ${partner}`}
@ -43,14 +39,13 @@ export const PartnersSection = () => {
</div> </div>
<div className='mt-12 text-center'> <div className='mt-12 text-center'>
<h3 className='mb-4 text-xl font-bold'> <h3 className='mb-4 text-xl font-bold'>Станьте нашим партнером</h3>
{t('home.partners.becomePartner')}
</h3>
<p className='mx-auto mb-6 max-w-2xl text-gray-600'> <p className='mx-auto mb-6 max-w-2xl text-gray-600'>
{t('home.partners.becomePartnerText')} Мы открыты для сотрудничества и новых партнерских отношений.
Свяжитесь с нами для обсуждения возможностей.
</p> </p>
<Button className='bg-red-600 hover:bg-red-700'> <Button className='bg-red-600 hover:bg-red-700'>
{t('common.buttons.contactUs')} Связаться с нами
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -1,14 +1,9 @@
'use client';
import { ArrowRight, Gift } from 'lucide-react'; import { ArrowRight, Gift } from 'lucide-react';
import PromotionSlider from '@/shared/components/promotion-slider'; import PromotionSlider from '@/shared/components/promotion-slider';
import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
export const PromotionsSection = () => { export const PromotionsSection = () => {
const { t } = useLanguage();
return ( return (
<section id='promotions' className='bg-gray-50 py-16'> <section id='promotions' className='bg-gray-50 py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
@ -17,17 +12,17 @@ export const PromotionsSection = () => {
<Gift className='h-6 w-6 text-red-600' /> <Gift className='h-6 w-6 text-red-600' />
</div> </div>
<h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'> <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'>
{t('home.promotions.title')} Актуальные акции
</h2> </h2>
<p className='max-w-2xl text-gray-600'> <p className='max-w-2xl text-gray-600'>
{t('home.promotions.description')} Специальные предложения и акции для наших клиентов. Заправляйтесь
выгодно!
</p> </p>
</div> </div>
<PromotionSlider /> <PromotionSlider />
<div className='mt-8 flex justify-center'> <div className='mt-8 flex justify-center'>
<Button className='bg-red-600 hover:bg-red-700'> <Button className='bg-red-600 hover:bg-red-700'>
{t('common.buttons.viewAll')}{' '} Все акции <ArrowRight className='ml-2 h-4 w-4' />
<ArrowRight className='ml-2 h-4 w-4' />
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -1,8 +1,5 @@
'use client';
import { ArrowRight, Briefcase } from 'lucide-react'; import { ArrowRight, Briefcase } from 'lucide-react';
import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
import { Card, CardContent } from '@/shared/shadcn-ui/card'; import { Card, CardContent } from '@/shared/shadcn-ui/card';
import { import {
@ -13,8 +10,6 @@ import {
} from '@/shared/shadcn-ui/tabs'; } from '@/shared/shadcn-ui/tabs';
export const VacanciesSection = () => { export const VacanciesSection = () => {
const { t } = useLanguage();
return ( return (
<section id='vacancies' className='py-16'> <section id='vacancies' className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
@ -23,10 +18,11 @@ export const VacanciesSection = () => {
<Briefcase className='h-6 w-6 text-red-600' /> <Briefcase className='h-6 w-6 text-red-600' />
</div> </div>
<h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'> <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'>
{t('home.vacancies.title')} Вакансии
</h2> </h2>
<p className='max-w-2xl text-gray-600'> <p className='max-w-2xl text-gray-600'>
{t('home.vacancies.description')} Присоединяйтесь к нашей команде профессионалов. Мы предлагаем
стабильную работу и возможности для роста.
</p> </p>
</div> </div>
@ -46,7 +42,7 @@ export const VacanciesSection = () => {
<Card <Card
key={index} key={index}
className='overflow-hidden transition-all hover:shadow-md' className='overflow-hidden transition-all hover:shadow-md'
data-aos='zoom-in' data-aos={index % 2 === 0 ? 'fade-right' : 'fade-left'}
> >
<CardContent className='p-0'> <CardContent className='p-0'>
<div className='p-6'> <div className='p-6'>
@ -66,7 +62,7 @@ export const VacanciesSection = () => {
</div> </div>
</div> </div>
<Button variant='outline' size='sm'> <Button variant='outline' size='sm'>
{t('common.buttons.readMore')} Подробнее
</Button> </Button>
</div> </div>
</div> </div>
@ -102,7 +98,7 @@ export const VacanciesSection = () => {
</div> </div>
</div> </div>
<Button variant='outline' size='sm'> <Button variant='outline' size='sm'>
{t('common.buttons.readMore')} Подробнее
</Button> </Button>
</div> </div>
</div> </div>
@ -135,7 +131,7 @@ export const VacanciesSection = () => {
</div> </div>
</div> </div>
<Button variant='outline' size='sm'> <Button variant='outline' size='sm'>
{t('common.buttons.readMore')} Подробнее
</Button> </Button>
</div> </div>
</div> </div>
@ -148,8 +144,7 @@ export const VacanciesSection = () => {
<div className='mt-8 flex justify-center'> <div className='mt-8 flex justify-center'>
<Button className='bg-red-600 hover:bg-red-700'> <Button className='bg-red-600 hover:bg-red-700'>
{t('common.buttons.sendResume')}{' '} Отправить резюме <ArrowRight className='ml-2 h-4 w-4' />
<ArrowRight className='ml-2 h-4 w-4' />
</Button> </Button>
</div> </div>
</div> </div>