import type { CarplaceLanguage } from '@/lib/i18n'

const messages = {
  en: {
    brand: 'Carplace',
    tagline: 'Rental cars from trusted local companies',
    accessibility: { home: 'RentalDriveGo home', menu: 'Menu', mobileNav: 'Carplace mobile navigation', pagination: 'Search result pages' },
    nav: { find: 'Find a car', companies: 'Rental companies', deals: 'Deals', how: 'How it works', help: 'Help' },
    actions: { companySpace: 'Company space', search: 'Search cars', editSearch: 'Edit search', viewVehicle: 'View vehicle', viewFleet: 'View fleet', request: 'Request this vehicle', back: 'Back', continue: 'Continue', submit: 'Send reservation request', retry: 'Try again' },
    hero: { eyebrow: 'RentalDriveGo Carplace', title: 'Find the right rental car with clear information.', body: 'Compare vehicles from local rental companies, check availability for your dates, and send a clear reservation request. The company confirms directly with you.' },
    search: { title: 'Plan your rental', pickup: 'Pick-up location', returnLocation: 'Return location', sameReturn: 'Return to the same location', differentReturn: 'Return somewhere else', pickupDate: 'Pick-up date', pickupTime: 'Pick-up time', returnDate: 'Return date', returnTime: 'Return time', age: 'Driver age', promo: 'Promo code', optional: 'Optional', locationPlaceholder: 'Choose a city', invalidDates: 'Return must be after pick-up.' },
    trust: [
      ['Local inventory', 'Browse vehicles published by active rental companies.'],
      ['Date-specific checks', 'Availability is checked for the dates you select.'],
      ['Direct confirmation', 'Your request remains pending until the company confirms it.'],
      ['Clear estimates', 'Displayed totals are estimates and require final company confirmation.'],
    ],
    sections: { cities: 'Browse by city', categories: 'Choose a vehicle type', offers: 'Current deals', vehicles: 'Recommended vehicles', companies: 'Rental companies', how: 'How Carplace works', guidance: 'Before you request', faq: 'Common questions', results: 'Available vehicles', filters: 'Filter results' },
    categories: { ECONOMY: 'Economy', COMPACT: 'Compact', MIDSIZE: 'Midsize', FULLSIZE: 'Full-size', SUV: 'SUV', LUXURY: 'Luxury', VAN: 'Van', TRUCK: 'Truck' },
    how: [
      ['Search', 'Choose a location and rental dates.'],
      ['Compare', 'Review vehicles, companies, prices, and important conditions.'],
      ['Request', 'Send your contact details and trip information securely.'],
      ['Confirm', 'The rental company reviews the request and contacts you.'],
    ],
    guidance: [
      ['Bring valid documents', 'The company may request identification and a valid driving licence before pickup.'],
      ['Expect a deposit', 'Deposit, insurance, mileage, and delivery conditions are set by the rental company.'],
      ['Review final terms', 'The company must confirm availability and the final amount before the rental is accepted.'],
    ],
    faq: [
      ['Is my reservation confirmed immediately?', 'No. Carplace submits a request. The rental company confirms availability and final terms directly with you.'],
      ['Is the displayed amount the final price?', 'It is an estimated rental subtotal. Taxes, deposit, insurance, delivery, and company charges may apply.'],
      ['Do I need a renter account?', 'No. Carplace currently supports a guest reservation-request flow.'],
    ],
    vehicle: { from: 'From', perDay: '/ day', estimated: 'Estimated rental subtotal', estimateDisclaimer: 'Final price, deposit, insurance, taxes, mileage, and delivery terms require company confirmation.', available: 'Available for selected dates', unavailable: 'Unavailable for selected dates', availableFrom: 'Next available', company: 'Rental company', rating: 'Rating', new: 'New listing', seats: 'Seats', transmission: 'Transmission', fuel: 'Fuel', category: 'Category', year: 'Year', features: 'Included features', pickupLocations: 'Pick-up locations', noPhoto: 'Vehicle photo unavailable', directContact: 'Direct company contact', phone: 'Call company', whatsapp: 'WhatsApp company', similar: 'Similar vehicles' },
    results: { title: 'Cars matching your trip', count: 'vehicles found', none: 'No vehicles match this search yet.', noneBody: 'Try another city, broader category, or different dates.', error: 'Search results are temporarily unavailable.', sort: 'Sort', sortPriceAsc: 'Lowest daily price', sortPriceDesc: 'Highest daily price', allCategories: 'All categories', maxPrice: 'Maximum daily rate', transmission: 'Transmission', make: 'Make', model: 'Model', apply: 'Apply filters', clear: 'Clear filters', previous: 'Previous', next: 'Next' },
    company: { partner: 'Carplace rental company', fleet: 'Available fleet', offers: 'Current offers', contact: 'Contact company', policies: 'Rental information', noOffers: 'No active public offers.', vehicles: 'published vehicles', reviews: 'reviews' },
    booking: { title: 'Reservation request', stepTrip: 'Trip', stepContact: 'Contact', stepReview: 'Review', contactIntro: 'The company uses these details to confirm the request.', firstName: 'First name', lastName: 'Last name', email: 'Email', phone: 'Phone', notes: 'Notes for the company', notesPlaceholder: 'Flight number, delivery request, or another useful detail', reviewTitle: 'Review your request', pendingNotice: 'Submitting this form does not confirm the booking. The company will review availability and contact you.', consent: 'I agree that my contact and trip details may be shared with the selected rental company for this request.', successTitle: 'Your request was sent', successBody: 'The rental company will review it and contact you. Do not consider the vehicle confirmed until the company accepts the request.', reference: 'Request reference', status: 'Status', pending: 'Pending company confirmation', error: 'The request could not be submitted.', unavailable: 'The vehicle is no longer available for these dates.', privacy: 'Privacy policy', terms: 'Terms' },
    footer: { description: 'A renter-first car rental platform by RentalDriveGo. Search locally, request clearly, and receive confirmation directly from the rental company.', explore: 'Explore', support: 'Support', business: 'For rental companies', rights: 'All rights reserved.', language: 'Language', theme: 'Theme', light: 'Light', dark: 'Dark' },
    status: { unavailable: 'Carplace unavailable', unavailableBody: 'Carplace data is temporarily unavailable. Please try again shortly.' },
  },
  fr: {
    brand: 'Carplace',
    tagline: 'Voitures de location auprès de sociétés locales fiables',
    accessibility: { home: 'Accueil RentalDriveGo', menu: 'Menu', mobileNav: 'Navigation mobile Carplace', pagination: 'Pages de résultats' },
    nav: { find: 'Trouver une voiture', companies: 'Sociétés de location', deals: 'Offres', how: 'Fonctionnement', help: 'Aide' },
    actions: { companySpace: 'Espace entreprise', search: 'Rechercher', editSearch: 'Modifier la recherche', viewVehicle: 'Voir le véhicule', viewFleet: 'Voir la flotte', request: 'Demander ce véhicule', back: 'Retour', continue: 'Continuer', submit: 'Envoyer la demande', retry: 'Réessayer' },
    hero: { eyebrow: 'RentalDriveGo Carplace', title: 'Trouvez la bonne voiture de location sans ambiguïté inutile.', body: 'Comparez les véhicules de sociétés locales, vérifiez la disponibilité pour vos dates et envoyez une demande claire. La société vous confirme directement.' },
    search: { title: 'Planifiez votre location', pickup: 'Lieu de prise en charge', returnLocation: 'Lieu de retour', sameReturn: 'Retour au même endroit', differentReturn: 'Retour à un autre endroit', pickupDate: 'Date de départ', pickupTime: 'Heure de départ', returnDate: 'Date de retour', returnTime: 'Heure de retour', age: 'Âge du conducteur', promo: 'Code promotionnel', optional: 'Facultatif', locationPlaceholder: 'Choisir une ville', invalidDates: 'Le retour doit être postérieur au départ.' },
    trust: [
      ['Inventaire local', 'Parcourez les véhicules publiés par des sociétés de location actives.'],
      ['Vérification par dates', 'La disponibilité est vérifiée pour les dates sélectionnées.'],
      ['Confirmation directe', "La demande reste en attente jusqu'à la confirmation de la société."],
      ['Estimations claires', 'Les montants affichés sont des estimations, pas des garanties inventées.'],
    ],
    sections: { cities: 'Parcourir par ville', categories: 'Choisir un type de véhicule', offers: 'Offres actuelles', vehicles: 'Véhicules recommandés', companies: 'Sociétés de location', how: 'Comment fonctionne Carplace', guidance: 'Avant votre demande', faq: 'Questions fréquentes', results: 'Véhicules disponibles', filters: 'Filtrer les résultats' },
    categories: { ECONOMY: 'Économie', COMPACT: 'Compacte', MIDSIZE: 'Intermédiaire', FULLSIZE: 'Grande berline', SUV: 'SUV', LUXURY: 'Luxe', VAN: 'Van', TRUCK: 'Camion' },
    how: [
      ['Recherchez', 'Choisissez un lieu et les dates de location.'],
      ['Comparez', 'Examinez les véhicules, sociétés, prix et conditions importantes.'],
      ['Demandez', 'Envoyez vos coordonnées et les informations du trajet.'],
      ['Confirmez', 'La société étudie la demande et vous contacte.'],
    ],
    guidance: [
      ['Préparez vos documents', "La société peut demander une pièce d'identité et un permis valide avant la prise en charge."],
      ['Prévoyez une caution', 'La caution, l’assurance, le kilométrage et la livraison sont fixés par la société.'],
      ['Vérifiez les conditions finales', 'La société doit confirmer la disponibilité et le montant final avant acceptation.'],
    ],
    faq: [
      ['Ma réservation est-elle confirmée immédiatement ?', 'Non. Carplace envoie une demande. La société confirme directement la disponibilité et les conditions finales.'],
      ['Le montant affiché est-il définitif ?', 'Il s’agit d’un sous-total estimé. Des taxes, une caution, une assurance, la livraison ou d’autres frais peuvent s’appliquer.'],
      ["Ai-je besoin d'un compte client ?", 'Non. Carplace propose actuellement un parcours de demande en tant qu’invité.'],
    ],
    vehicle: { from: 'À partir de', perDay: '/ jour', estimated: 'Sous-total estimé', estimateDisclaimer: 'Le prix final, la caution, l’assurance, les taxes, le kilométrage et la livraison nécessitent la confirmation de la société.', available: 'Disponible pour les dates sélectionnées', unavailable: 'Indisponible pour les dates sélectionnées', availableFrom: 'Prochaine disponibilité', company: 'Société de location', rating: 'Note', new: 'Nouvelle annonce', seats: 'Places', transmission: 'Transmission', fuel: 'Carburant', category: 'Catégorie', year: 'Année', features: 'Équipements inclus', pickupLocations: 'Lieux de prise en charge', noPhoto: 'Photo indisponible', directContact: 'Contact direct avec la société', phone: 'Appeler la société', whatsapp: 'WhatsApp de la société', similar: 'Véhicules similaires' },
    results: { title: 'Voitures correspondant à votre trajet', count: 'véhicules trouvés', none: 'Aucun véhicule ne correspond encore à cette recherche.', noneBody: 'Essayez une autre ville, une catégorie plus large ou d’autres dates.', error: 'Les résultats sont temporairement indisponibles.', sort: 'Trier', sortPriceAsc: 'Prix journalier croissant', sortPriceDesc: 'Prix journalier décroissant', allCategories: 'Toutes les catégories', maxPrice: 'Tarif journalier maximum', transmission: 'Transmission', make: 'Marque', model: 'Modèle', apply: 'Appliquer les filtres', clear: 'Effacer les filtres', previous: 'Précédent', next: 'Suivant' },
    company: { partner: 'Société de location Carplace', fleet: 'Flotte disponible', offers: 'Offres actuelles', contact: 'Contacter la société', policies: 'Informations de location', noOffers: 'Aucune offre publique active.', vehicles: 'véhicules publiés', reviews: 'avis' },
    booking: { title: 'Demande de réservation', stepTrip: 'Trajet', stepContact: 'Contact', stepReview: 'Vérification', contactIntro: 'La société utilise ces coordonnées pour confirmer la demande.', firstName: 'Prénom', lastName: 'Nom', email: 'E-mail', phone: 'Téléphone', notes: 'Note pour la société', notesPlaceholder: 'Numéro de vol, livraison ou autre information utile', reviewTitle: 'Vérifiez votre demande', pendingNotice: 'Ce formulaire ne confirme pas la réservation. La société vérifiera la disponibilité et vous contactera.', consent: 'J’accepte que mes coordonnées et les détails du trajet soient transmis à la société sélectionnée pour cette demande.', successTitle: 'Votre demande a été envoyée', successBody: 'La société va l’examiner et vous contacter. Le véhicule n’est confirmé qu’après acceptation par la société.', reference: 'Référence de la demande', status: 'Statut', pending: 'En attente de confirmation', error: "La demande n'a pas pu être envoyée.", unavailable: "Le véhicule n'est plus disponible pour ces dates.", privacy: 'Politique de confidentialité', terms: 'Conditions' },
    footer: { description: 'Une place de marché pensée pour les locataires par RentalDriveGo. Recherchez localement, envoyez une demande claire et recevez la confirmation de la société.', explore: 'Explorer', support: 'Assistance', business: 'Pour les sociétés', rights: 'Tous droits réservés.', language: 'Langue', theme: 'Thème', light: 'Clair', dark: 'Sombre' },
    status: { unavailable: 'Carplace indisponible', unavailableBody: 'Les données de la place de marché sont temporairement indisponibles.' },
  },
  ar: {
    brand: 'Carplace',
    tagline: 'سيارات للإيجار من شركات محلية موثوقة',
    accessibility: { home: 'الصفحة الرئيسية لـ RentalDriveGo', menu: 'القائمة', mobileNav: 'التنقل عبر Carplace على الهاتف', pagination: 'صفحات نتائج البحث' },
    nav: { find: 'ابحث عن سيارة', companies: 'شركات التأجير', deals: 'العروض', how: 'كيف تعمل', help: 'المساعدة' },
    actions: { companySpace: 'مساحة الشركة', search: 'البحث عن سيارات', editSearch: 'تعديل البحث', viewVehicle: 'عرض السيارة', viewFleet: 'عرض الأسطول', request: 'اطلب هذه السيارة', back: 'رجوع', continue: 'متابعة', submit: 'إرسال طلب الحجز', retry: 'إعادة المحاولة' },
    hero: { eyebrow: 'RentalDriveGo Carplace', title: 'اعثر على سيارة الإيجار المناسبة دون غموض غير ضروري.', body: 'قارن سيارات شركات التأجير المحلية، وتحقق من التوفر حسب تواريخك، ثم أرسل طلباً واضحاً. تتولى الشركة التأكيد معك مباشرة.' },
    search: { title: 'خطط لرحلتك', pickup: 'موقع الاستلام', returnLocation: 'موقع الإرجاع', sameReturn: 'الإرجاع في نفس الموقع', differentReturn: 'الإرجاع في موقع آخر', pickupDate: 'تاريخ الاستلام', pickupTime: 'وقت الاستلام', returnDate: 'تاريخ الإرجاع', returnTime: 'وقت الإرجاع', age: 'عمر السائق', promo: 'الرمز الترويجي', optional: 'اختياري', locationPlaceholder: 'اختر مدينة', invalidDates: 'يجب أن يكون الإرجاع بعد الاستلام.' },
    trust: [
      ['سيارات محلية', 'تصفح السيارات المنشورة من شركات تأجير نشطة.'],
      ['تحقق حسب التاريخ', 'يتم التحقق من التوفر للتواريخ التي تختارها.'],
      ['تأكيد مباشر', 'يبقى الطلب قيد الانتظار حتى تؤكده شركة التأجير.'],
      ['تقديرات واضحة', 'المبالغ المعروضة تقديرية وليست ضمانات مختلقة.'],
    ],
    sections: { cities: 'تصفح حسب المدينة', categories: 'اختر نوع السيارة', offers: 'العروض الحالية', vehicles: 'سيارات مقترحة', companies: 'شركات التأجير', how: 'كيف تعمل Carplace', guidance: 'قبل إرسال الطلب', faq: 'أسئلة شائعة', results: 'السيارات المتاحة', filters: 'تصفية النتائج' },
    categories: { ECONOMY: 'اقتصادية', COMPACT: 'مدمجة', MIDSIZE: 'متوسطة', FULLSIZE: 'كبيرة', SUV: 'دفع رباعي', LUXURY: 'فاخرة', VAN: 'فان', TRUCK: 'شاحنة' },
    how: [
      ['ابحث', 'اختر الموقع وتواريخ الإيجار.'],
      ['قارن', 'راجع السيارات والشركات والأسعار والشروط المهمة.'],
      ['أرسل الطلب', 'أدخل معلومات الرحلة وبيانات التواصل بأمان.'],
      ['احصل على التأكيد', 'تراجع الشركة الطلب وتتواصل معك مباشرة.'],
    ],
    guidance: [
      ['جهز الوثائق', 'قد تطلب الشركة وثيقة هوية ورخصة قيادة سارية قبل الاستلام.'],
      ['توقع مبلغ ضمان', 'تحدد الشركة مبلغ الضمان والتأمين والكيلومترات والتوصيل.'],
      ['راجع الشروط النهائية', 'يجب أن تؤكد الشركة التوفر والمبلغ النهائي قبل قبول الإيجار.'],
    ],
    faq: [
      ['هل يتم تأكيد الحجز فوراً؟', 'لا. ترسل Carplace طلباً، وتؤكد شركة التأجير التوفر والشروط النهائية معك مباشرة.'],
      ['هل المبلغ المعروض هو السعر النهائي؟', 'إنه مجموع إيجار تقديري. قد تضاف الضرائب أو الضمان أو التأمين أو التوصيل أو رسوم الشركة.'],
      ['هل أحتاج إلى حساب مستأجر؟', 'لا. تدعم Carplace حالياً إرسال طلب الحجز كزائر.'],
    ],
    vehicle: { from: 'ابتداءً من', perDay: '/ اليوم', estimated: 'مجموع الإيجار التقديري', estimateDisclaimer: 'السعر النهائي والضمان والتأمين والضرائب والكيلومترات والتوصيل تحتاج إلى تأكيد الشركة.', available: 'متاحة للتواريخ المحددة', unavailable: 'غير متاحة للتواريخ المحددة', availableFrom: 'أقرب موعد متاح', company: 'شركة التأجير', rating: 'التقييم', new: 'إعلان جديد', seats: 'المقاعد', transmission: 'ناقل الحركة', fuel: 'الوقود', category: 'الفئة', year: 'السنة', features: 'المزايا المتضمنة', pickupLocations: 'مواقع الاستلام', noPhoto: 'صورة السيارة غير متاحة', directContact: 'تواصل مباشر مع الشركة', phone: 'اتصل بالشركة', whatsapp: 'واتساب الشركة', similar: 'سيارات مشابهة' },
    results: { title: 'سيارات تناسب رحلتك', count: 'سيارات متاحة', none: 'لا توجد سيارات مطابقة لهذا البحث حالياً.', noneBody: 'جرّب مدينة أخرى أو فئة أوسع أو تواريخ مختلفة.', error: 'نتائج البحث غير متاحة مؤقتاً.', sort: 'الترتيب', sortPriceAsc: 'الأقل سعراً يومياً', sortPriceDesc: 'الأعلى سعراً يومياً', allCategories: 'كل الفئات', maxPrice: 'أقصى سعر يومي', transmission: 'ناقل الحركة', make: 'الشركة المصنعة', model: 'الطراز', apply: 'تطبيق الفلاتر', clear: 'مسح الفلاتر', previous: 'السابق', next: 'التالي' },
    company: { partner: 'شركة تأجير على Carplace', fleet: 'الأسطول المتاح', offers: 'العروض الحالية', contact: 'تواصل مع الشركة', policies: 'معلومات الإيجار', noOffers: 'لا توجد عروض عامة نشطة.', vehicles: 'سيارات منشورة', reviews: 'تقييمات' },
    booking: { title: 'طلب حجز', stepTrip: 'الرحلة', stepContact: 'التواصل', stepReview: 'المراجعة', contactIntro: 'تستخدم الشركة هذه البيانات لتأكيد الطلب.', firstName: 'الاسم الأول', lastName: 'اسم العائلة', email: 'البريد الإلكتروني', phone: 'الهاتف', notes: 'ملاحظات للشركة', notesPlaceholder: 'رقم الرحلة أو طلب التوصيل أو معلومة مفيدة', reviewTitle: 'راجع طلبك', pendingNotice: 'إرسال النموذج لا يؤكد الحجز. ستراجع الشركة التوفر وتتواصل معك.', consent: 'أوافق على مشاركة بيانات التواصل وتفاصيل الرحلة مع شركة التأجير المحددة لمعالجة هذا الطلب.', successTitle: 'تم إرسال طلبك', successBody: 'ستراجع الشركة الطلب وتتواصل معك. لا تعتبر السيارة مؤكدة حتى تقبل الشركة الطلب.', reference: 'مرجع الطلب', status: 'الحالة', pending: 'بانتظار تأكيد الشركة', error: 'تعذر إرسال الطلب.', unavailable: 'لم تعد السيارة متاحة لهذه التواريخ.', privacy: 'سياسة الخصوصية', terms: 'الشروط' },
    footer: { description: 'سوق للمستأجرين من RentalDriveGo. ابحث محلياً، وأرسل طلباً واضحاً، واحصل على التأكيد مباشرة من شركة التأجير.', explore: 'استكشف', support: 'الدعم', business: 'لشركات التأجير', rights: 'جميع الحقوق محفوظة.', language: 'اللغة', theme: 'المظهر', light: 'فاتح', dark: 'داكن' },
    status: { unavailable: 'Carplace غير متاحة', unavailableBody: 'بيانات السوق غير متاحة مؤقتاً.' },
  },
} as const

export type CarplaceMessages = (typeof messages)['en']

export function getCarplaceMessages(language: CarplaceLanguage): CarplaceMessages {
  return messages[language] as unknown as CarplaceMessages
}
