Spaces:
No application file
No application file
| window.SABAIDI_I18N = { | |
| "fr": { | |
| "nav_home": "Accueil", | |
| "nav_menu": "La Carte", | |
| "nav_gallery": "Galerie", | |
| "nav_contact": "Contact", | |
| "hero_title": "Sabaidi — Restaurant & Bar", | |
| "hero_subtitle": "Cuisine d'inspiration asiatique, cocktails au bord de la piscine, et bonne humeur sur la plage de Las Terrenas.", | |
| "hero_cta": "Voir la carte", | |
| "home_section_title": "Goûtez nos classiques", | |
| "home_section_sub": "Sélection de plats populaires", | |
| "menu_title": "Notre carte", | |
| "menu_starters": "Entrées", | |
| "menu_mains": "Plats", | |
| "menu_note": "Prix en RDS. Options avec œuf pour les plats 'loc lac' (+60 RDS).", | |
| "footer": "Aligio Apart‑Hotel & Spa • Las Terrenas • République Dominicaine", | |
| "nav_reserve": "Réserver", | |
| "nav_order": "Commander", | |
| "nav_events": "Événements", | |
| "nav_loyalty": "Fidélité", | |
| "events_title": "Événements & Mariages", | |
| "events_sub": "Organisez vos moments spéciaux dans un cadre idyllique, cuisine asiatique raffinée.", | |
| "reserve_title": "Réserver une table", | |
| "order_title": "Commander", | |
| "loyalty_title": "Carte de fidélité", | |
| "reserve_intro": "Réservez votre table en quelques secondes.", | |
| "form_name": "Nom", | |
| "form_phone": "Téléphone", | |
| "form_email": "Email", | |
| "form_date": "Date", | |
| "form_time": "Heure", | |
| "form_people": "Couverts", | |
| "form_notes": "Notes (allergies, préférences...)", | |
| "form_submit": "Réserver", | |
| "form_success": "Merci ! Votre demande a été prise en compte. Nous vous confirmons rapidement.", | |
| "form_error_validation": "Merci de remplir les champs requis.", | |
| "order_intro": "Passez commande et récupérez sur place.", | |
| "order_call": "Commander par téléphone", | |
| "order_whatsapp": "Envoyer sur WhatsApp", | |
| "order_hours_title": "Horaires", | |
| "order_hours_value": "Tous les jours 12:00 – 22:30", | |
| "wa_template_order": "Bonjour, je souhaite passer commande: {order}. Retrait {time}. Nom: {name}. Merci !", | |
| "reserve_email_subject": "Réservation – Sabaidi" | |
| }, | |
| "es": { | |
| "nav_home": "Inicio", | |
| "nav_menu": "Carta", | |
| "nav_gallery": "Galería", | |
| "nav_contact": "Contacto", | |
| "hero_title": "Sabaidi — Restaurante & Bar", | |
| "hero_subtitle": "Cocina de inspiración asiática, cócteles junto a la piscina y buena vibra en la playa de Las Terrenas.", | |
| "hero_cta": "Ver la carta", | |
| "home_section_title": "Prueba nuestros clásicos", | |
| "home_section_sub": "Selección de platos populares", | |
| "menu_title": "Nuestra carta", | |
| "menu_starters": "Entradas", | |
| "menu_mains": "Platos fuertes", | |
| "menu_note": "Precios en RDS. Opción con huevo para los 'loc lac' (+60 RDS).", | |
| "footer": "Aligio Apart‑Hotel & Spa • Las Terrenas • República Dominicana", | |
| "nav_reserve": "Reservar", | |
| "nav_order": "Pedir", | |
| "nav_events": "Eventos", | |
| "nav_loyalty": "Fidelidad", | |
| "events_title": "Eventos & Bodas", | |
| "events_sub": "Organiza tus momentos especiales en un marco idílico con cocina asiática.", | |
| "reserve_title": "Reservar mesa", | |
| "order_title": "Hacer pedido", | |
| "loyalty_title": "Tarjeta de fidelidad", | |
| "reserve_intro": "Reserva tu mesa en segundos.", | |
| "form_name": "Nombre", | |
| "form_phone": "Teléfono", | |
| "form_email": "Email", | |
| "form_date": "Fecha", | |
| "form_time": "Hora", | |
| "form_people": "Comensales", | |
| "form_notes": "Notas (alergias, preferencias...)", | |
| "form_submit": "Reservar", | |
| "form_success": "¡Gracias! Hemos recibido tu solicitud. Te confirmamos pronto.", | |
| "form_error_validation": "Por favor, completa los campos obligatorios.", | |
| "order_intro": "Haz tu pedido y recógelo en el local.", | |
| "order_call": "Pedir por teléfono", | |
| "order_whatsapp": "Enviar por WhatsApp", | |
| "order_hours_title": "Horarios", | |
| "order_hours_value": "Todos los días 12:00 – 22:30", | |
| "wa_template_order": "Hola, quiero hacer un pedido: {order}. Retiro {time}. Nombre: {name}. ¡Gracias!", | |
| "reserve_email_subject": "Reserva – Sabaidi" | |
| }, | |
| "en": { | |
| "nav_home": "Home", | |
| "nav_menu": "Menu", | |
| "nav_gallery": "Gallery", | |
| "nav_contact": "Contact", | |
| "hero_title": "Sabaidi — Restaurant & Bar", | |
| "hero_subtitle": "Asian‑inspired cooking, poolside cocktails, and sunny vibes on Las Terrenas beach.", | |
| "hero_cta": "See the menu", | |
| "home_section_title": "Taste our classics", | |
| "home_section_sub": "Selection of popular dishes", | |
| "menu_title": "Our menu", | |
| "menu_starters": "Starters", | |
| "menu_mains": "Main courses", | |
| "menu_note": "Prices in RDS. 'Loc lac' dishes can be served with egg (+60 RDS).", | |
| "footer": "Aligio Apart‑Hotel & Spa • Las Terrenas • Dominican Republic", | |
| "nav_reserve": "Reserve", | |
| "nav_order": "Order", | |
| "nav_events": "Events", | |
| "nav_loyalty": "Loyalty", | |
| "events_title": "Events & Weddings", | |
| "events_sub": "Host your special moments in an idyllic setting with refined Asian cuisine.", | |
| "reserve_title": "Book a table", | |
| "order_title": "Order", | |
| "loyalty_title": "Loyalty card", | |
| "reserve_intro": "Book your table in seconds.", | |
| "form_name": "Name", | |
| "form_phone": "Phone", | |
| "form_email": "Email", | |
| "form_date": "Date", | |
| "form_time": "Time", | |
| "form_people": "Guests", | |
| "form_notes": "Notes (allergies, preferences...)", | |
| "form_submit": "Reserve", | |
| "form_success": "Thanks! We’ve received your request and will confirm shortly.", | |
| "form_error_validation": "Please fill in the required fields.", | |
| "order_intro": "Place your order and pick it up at the restaurant.", | |
| "order_call": "Order by phone", | |
| "order_whatsapp": "Send via WhatsApp", | |
| "order_hours_title": "Opening hours", | |
| "order_hours_value": "Every day 12:00 – 22:30", | |
| "wa_template_order": "Hello, I'd like to place an order: {order}. Pickup {time}. Name: {name}. Thank you!", | |
| "reserve_email_subject": "Reservation – Sabaidi" | |
| } | |
| }; | |
| window.SABAIDI_MENU = { | |
| "starters": [ | |
| { | |
| "code": "E1", | |
| "image": "spring_rolls.webp", | |
| "fr": "Nem porc (x4)", | |
| "es": "Nem cerdo (x4)", | |
| "en": "Nem pork (x4)", | |
| "price": "350 RDS" | |
| }, | |
| { | |
| "code": "E2", | |
| "image": "spring_rolls.webp", | |
| "fr": "Nem poulet (x4)", | |
| "es": "Nem pollo (x4)", | |
| "en": "Nem chicken (x4)", | |
| "price": "350 RDS" | |
| }, | |
| { | |
| "code": "E3", | |
| "image": "beignets_crevettes.png", | |
| "fr": "Beignet de crevettes (x4)", | |
| "es": "Buñuelo de camarones (x4)", | |
| "en": "Shrimp fritter (x4)", | |
| "price": "400 RDS" | |
| }, | |
| { | |
| "code": "E4", | |
| "image": "spring_rolls.webp", | |
| "fr": "Rouleau de printemps (x2)", | |
| "es": "Rollo de primavera (x2)", | |
| "en": "Spring roll (x2)", | |
| "price": "400 RDS" | |
| }, | |
| { | |
| "code": "E5", | |
| "image": "samoussas.png", | |
| "fr": "Samoussa (x4)", | |
| "es": "Samosa (x4)", | |
| "en": "Samosa (x4)", | |
| "price": "400 RDS" | |
| } | |
| ], | |
| "mains": [ | |
| { | |
| "code": "P1", | |
| "image": "burger.webp", | |
| "fr": "Bo bun poulet", | |
| "es": "Bo bun pollo", | |
| "en": "Bo bun chicken", | |
| "price": "650 RDS" | |
| }, | |
| { | |
| "code": "P2", | |
| "image": "noodles.webp", | |
| "fr": "Pad Thaï crevettes", | |
| "es": "Pad Thai camarones", | |
| "en": "Pad Thai shrimp", | |
| "price": "850 RDS" | |
| }, | |
| { | |
| "code": "P3", | |
| "image": "noodles.webp", | |
| "fr": "Pad Thaï poulet", | |
| "es": "Pad Thai pollo", | |
| "en": "Pad Thai chicken", | |
| "price": "700 RDS" | |
| }, | |
| { | |
| "code": "P4", | |
| "image": "sabaidi_sign.webp", | |
| "fr": "Riz loc lac poulet (+ œuf +60 RDS)", | |
| "es": "Arroz loc lac pollo (con huevo +60 RDS)", | |
| "en": "Rice loc lac chicken (with egg +60 RDS)", | |
| "price": "700 RDS" | |
| }, | |
| { | |
| "code": "P5", | |
| "image": "sabaidi_sign.webp", | |
| "fr": "Riz loc lac bœuf (+ œuf +60 RDS)", | |
| "es": "Arroz loc lac res (con huevo +60 RDS)", | |
| "en": "Rice loc lac beef (with egg +60 RDS)", | |
| "price": "900 RDS" | |
| }, | |
| { | |
| "code": "P6", | |
| "image": "sabaidi_sign.webp", | |
| "fr": "Riz cantonnais", | |
| "es": "Arroz cantonés", | |
| "en": "Cantonese rice", | |
| "price": "400 RDS" | |
| } | |
| ] | |
| }; | |
| (function(){ | |
| const LS_KEY = "sabaidi_lang"; | |
| function setLangButtonsActive(lang) { | |
| document.querySelectorAll('.lang-switch button').forEach(b=>{b.classList.toggle('active', b.dataset.lang===lang)}); | |
| } | |
| window.setLanguage = function(lang) { | |
| const dict = window.SABAIDI_I18N[lang] || window.SABAIDI_I18N.fr; | |
| document.querySelectorAll('[data-i18n]').forEach(el=>{ | |
| const key = el.getAttribute('data-i18n'); | |
| if(dict[key]) el.textContent = dict[key]; | |
| }); | |
| localStorage.setItem(LS_KEY, lang); | |
| setLangButtonsActive(lang); | |
| // re-render menu if present | |
| if (typeof renderMenu === 'function') renderMenu(lang); | |
| }; | |
| window.getLanguage = function() { | |
| return localStorage.getItem(LS_KEY) || 'fr'; | |
| }; | |
| document.addEventListener('DOMContentLoaded', function(){ | |
| const lang = getLanguage(); | |
| setLanguage(lang); | |
| setLangButtonsActive(lang); | |
| }); | |
| })(); | |