149 lines
6.4 KiB
JavaScript
149 lines
6.4 KiB
JavaScript
const translations = {
|
||
ru: {
|
||
nav_about: "О нас ",
|
||
nav_food: "Кухня ",
|
||
nav_location: "Где мы ",
|
||
nav_booking: "Бронь ",
|
||
hero_title: "Добро пожаловать ",
|
||
hero_subtitle: "Ваш идеальный отдых на берегу Черного моря ",
|
||
hero_btn: "Забронировать номер ",
|
||
about_title: "Море в шаговой доступности ",
|
||
about_subtitle: "Бескрайние пляжи Гудауты ",
|
||
about_text: "Наш отель расположен в живописном селе Мгудзырхуа. Мы предлагаем комфортные номера и прямой выход к морю. ",
|
||
food_title: "Вкус Абхазии ",
|
||
food_subtitle: "Домашняя кухня из местных продуктов ",
|
||
food_text: "Почувствуйте гостеприимство! Свежайший сыр сулугуни, мамалыга, овощи с грядки и домашнее вино. ",
|
||
loc_title: "Удобное расположение ",
|
||
book_title: "Забронировать отдых ",
|
||
label_name: "Ваше имя ",
|
||
label_phone: "Номер телефона ",
|
||
ph_name: "Иван Иванов ",
|
||
fz152: "Согласие на обработку данных (152-ФЗ) ",
|
||
book_btn: "Отправить заявку ",
|
||
footer_text: "© 2026 Hotel 777. Абхазия, Мгудзырхуа. ",
|
||
cookie_text: "Мы используем файлы cookie для улучшения работы сайта. ",
|
||
cookie_btn: "Согласен ",
|
||
alert_msg: "Спасибо! Ваша заявка принята. "
|
||
},
|
||
en: {
|
||
nav_about: "About Us",
|
||
nav_food: "Cuisine",
|
||
nav_location: "Where We Are",
|
||
nav_booking: "Booking",
|
||
hero_title: "Welcome",
|
||
hero_subtitle: "Your perfect getaway on the Black Sea coast",
|
||
hero_btn: "Book a room",
|
||
about_title: "The sea within walking distance",
|
||
about_subtitle: "The endless beaches of Gudauta",
|
||
about_text: "Our hotel is located in the picturesque village of Mgudzyrkhua. We offer comfortable rooms and direct access to the sea.",
|
||
food_title: "The Taste of Abkhazia",
|
||
food_subtitle: "Homemade cuisine from local ingredients",
|
||
food_text: "Feel the hospitality! The freshest suluguni cheese, mamalyga, garden-fresh vegetables, and homemade wine.",
|
||
loc_title: "Convenient location",
|
||
book_title: "Book your holiday",
|
||
label_name: "Your name",
|
||
label_phone: "Phone number",
|
||
ph_name: "Ivan Ivanov",
|
||
fz152: "Consent to data processing (152-FZ RF)",
|
||
book_btn: "Send request",
|
||
footer_text: "© 2026 Hotel 777. Abkhazia, Mgudzyrkhua.",
|
||
cookie_text: "We use cookies to improve the website.",
|
||
cookie_btn: "Agree",
|
||
alert_msg: "Thank you! Your request has been accepted."
|
||
},
|
||
ab: {
|
||
nav_about: "Ҳара ҳхәыҷра",
|
||
nav_food: "Аџьа",
|
||
nav_location: "Ҳара иҟоу",
|
||
nav_booking: "Аҭагалара",
|
||
hero_title: "Бзиала шәаабеит",
|
||
hero_subtitle: "Амшын Еиқәа аԥшазы уара уидеалтә уахыҧсыра",
|
||
hero_btn: "Аҭаӡара аҭагалатә",
|
||
about_title: "Амшын ашьапыла ихьчо",
|
||
about_subtitle: "Гәдоуҭа иаҵәаку аҧшаҳәақәа",
|
||
about_text: "Ҳара ахәҭа ҳҟоуп агәаҟаратә ақыҭа Мгудзырхуа. Ҳара ҳааҭауеит комфорттә аҭаӡарақәа нас амшын аҟныҵла аҩаӡара.",
|
||
food_title: "Аԥсны аҵәа",
|
||
food_subtitle: "Аџьа ҭаацәарантәи аҭыԥтә афасаҟәақәа рыла",
|
||
food_text: "Ашьааҭра шәаазыр! Ибжьа асулугуни, абаста, аҵиаа ҵаҟатәи нас аҭаацәарантәи аҵаа.",
|
||
loc_title: "Каратә аҭыԥкаара",
|
||
book_title: "Ахыҧсыра аҭагалара",
|
||
label_name: "Шәхы",
|
||
label_phone: "Ателефон аномер",
|
||
ph_name: "Иван Иванов",
|
||
fz152: "Аинформациа аҟаҵаразы аиҭаҵра (152-ФЗ РФ)",
|
||
book_btn: "Азаявка аҭаҭатә",
|
||
footer_text: "© 2026 Hotel 777. Аԥсны, Мгудзырхуа.",
|
||
cookie_text: "Ҳара асаит аҟаҵара аҵәаҵәаразы cookie-файлқәа ҳхылаҩуеит.",
|
||
cookie_btn: "Аиҭаҵра",
|
||
alert_msg: "Иҭабуп! Шәзаявка алырҵеит."
|
||
}
|
||
};
|
||
|
||
document.addEventListener("DOMContentLoaded", () => {
|
||
// Циклическая смена фона (мимикрия)
|
||
const hero = document.querySelector('.hero');
|
||
const images = ['img/h777.webp', 'img/h777o.webp', 'img/h777l.webp', 'img/h777z.webp'];
|
||
let currentImg = 0;
|
||
|
||
const setHeroBackground = () => {
|
||
const img = new Image();
|
||
img.src = images[currentImg];
|
||
img.onload = () => {
|
||
hero.style.backgroundImage = `linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('${img.src}')`;
|
||
};
|
||
};
|
||
|
||
// Запуск первого изображения
|
||
setHeroBackground();
|
||
|
||
// Смена каждые 15 секунды
|
||
setInterval(() => {
|
||
currentImg = (currentImg + 1) % images.length;
|
||
setHeroBackground();
|
||
}, 15000);
|
||
|
||
// Локализация
|
||
const langSelect = document.getElementById('langSwitch');
|
||
let currentLang = localStorage.getItem('siteLang') || 'ru';
|
||
|
||
const updateText = (lang) => {
|
||
document.querySelectorAll('[data-i18n]').forEach(el => {
|
||
const key = el.getAttribute('data-i18n');
|
||
if (translations[lang][key]) el.innerHTML = translations[lang][key];
|
||
});
|
||
document.querySelectorAll('[data-i18n-ph]').forEach(el => {
|
||
const key = el.getAttribute('data-i18n-ph');
|
||
if (translations[lang][key]) el.placeholder = translations[lang][key];
|
||
});
|
||
localStorage.setItem('siteLang', lang);
|
||
};
|
||
|
||
langSelect.value = currentLang;
|
||
updateText(currentLang);
|
||
langSelect.onchange = (e) => updateText(e.target.value);
|
||
|
||
// Cookie
|
||
if (!localStorage.getItem('cookiesAccepted')) {
|
||
setTimeout(() => document.getElementById('cookieBanner').classList.add('show'), 2000);
|
||
}
|
||
|
||
// Форма
|
||
document.getElementById('bookingForm').onsubmit = (e) => {
|
||
e.preventDefault();
|
||
alert(translations[localStorage.getItem('siteLang') || 'ru'].alert_msg);
|
||
};
|
||
|
||
// Анимации при скролле
|
||
const obs = new IntersectionObserver(entries => {
|
||
entries.forEach(en => { if(en.isIntersecting) en.target.style.animationPlayState = 'running'; });
|
||
});
|
||
document.querySelectorAll('.animate').forEach(el => {
|
||
el.style.animationPlayState = 'paused';
|
||
obs.observe(el);
|
||
});
|
||
});
|
||
|
||
function acceptCookies() {
|
||
localStorage.setItem('cookiesAccepted', 'true');
|
||
document.getElementById('cookieBanner').classList.remove('show');
|
||
} |