// strings-results.jsx — i18n catalog for results page (results-page.jsx).
// Each entry: { en, de }. Leave `de` "" until translated (English fallback at runtime).
// Formal register (Sie) only. Keys are namespaced by component id.
// Extraction tasks add registerStrings("ComponentId", { … }) calls below.

registerStrings("UploadedPhoto", {
  altDamagePhoto: { en: "Damage photo", de: "Schadensfoto" },
  scanning:       { en: "SCANNING",     de: "SCANNT" },
});

registerStrings("ResultsLoading", {
  loadingText: { en: "Loading your inspection…", de: "Ihre Analyse wird geladen…" },
});

registerStrings("ResultMessage", {
  nodamageTitle:   { en: "No damage found",                                       de: "Kein Schaden gefunden" },
  nodamageBody:    { en: "We didn't detect any damage on the submitted image.",   de: "Auf dem hochgeladenen Bild haben wir keinen Schaden erkannt." },
  nodamageAction:  { en: "Start a new inspection",                                de: "Neue Analyse starten" },
  validationTitle:  { en: "We couldn't read that photo",                           de: "Wir konnten das Foto nicht auswerten" },
  validationBody:   { en: "The image couldn't be validated as a usable photo of the vehicle. Please upload a clear, well-lit photo of the damage and try again.", de: "Das Bild konnte nicht als brauchbares Foto des Fahrzeugs erkannt werden. Bitte laden Sie ein scharfes, gut beleuchtetes Foto des Schadens hoch und versuchen Sie es erneut." },
  validationAction: { en: "Upload a new photo",                                    de: "Neues Foto hochladen" },
  notfoundTitle:   { en: "Inspection not found",                                   de: "Analyse nicht gefunden" },
  notfoundBody:    { en: "We couldn't find an inspection for this link. It may have expired, or the link may be incorrect.", de: "Zu diesem Link konnten wir keine Analyse finden. Möglicherweise ist er abgelaufen oder fehlerhaft." },
  notfoundAction:  { en: "Go home",                                                de: "Zur Startseite" },
  errorTitle:      { en: "Something went wrong",                                   de: "Etwas ist schiefgelaufen" },
  errorBody:       { en: "An error occurred while inspecting the image. Please try again later.", de: "Bei der Analyse des Bildes ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut." },
  errorAction:     { en: "Try again",                                              de: "Erneut versuchen" },
});

registerStrings("AnalyzingHero", {
  heading:        { en: "Analyzing your damage…",                                                                    de: "Ihr Schaden wird analysiert…" },
  lead:           { en: "Our AI is identifying damage, matching parts, and pricing the repair in your region.",      de: "Unsere KI erkennt den Schaden, ordnet die passenden Teile zu und kalkuliert die Reparatur in Ihrer Region." },
  inspectionLabel:{ en: "Inspection",                                                                                de: "Analyse" },
  queuing:        { en: "Uploading & queuing inspection…",                                                           de: "Analyse wird hochgeladen und eingereiht…" },
});

registerStrings("InspectionReport", {
  reportLoadError:  { en: "Couldn't load your report",                                                             de: "Ihr Bericht konnte nicht geladen werden" },
  reportLoadErrorBody: { en: "We couldn't load the details for this inspection. Please try again in a moment.", de: "Die Details zu dieser Analyse konnten nicht geladen werden. Bitte versuchen Sie es gleich noch einmal." },
  back:             { en: "Back",                                                                                   de: "Zurück" },
  costEyebrow:      { en: "Estimated repair cost",                                                                 de: "Geschätzte Reparaturkosten" },
  aiDisclaimer:     { en: "This is an AI-generated estimate based on your photo and current regional repair benchmarks. Actual costs may vary depending on the workshop, parts availability, hidden damage discovered during disassembly, and your insurance terms. Use it as a guide — not a quote.", de: "Dies ist eine KI-generierte Schätzung auf Basis Ihres Fotos und aktueller regionaler Reparatur-Richtwerte. Die tatsächlichen Kosten können je nach Werkstatt, Teileverfügbarkeit, beim Zerlegen entdeckten verdeckten Schäden und Ihren Versicherungsbedingungen abweichen. Nutzen Sie sie als Orientierung, nicht als verbindliches Angebot." },
  recommendationEyebrow: { en: "Our recommendation",                                                               de: "Unsere Empfehlung" },
  diyEyebrow:       { en: "DIY repair guide",                                                                      de: "Anleitung zur Selbstreparatur" },
  breakdownEyebrow: { en: "Cost breakdown",                                                                        de: "Kostenaufstellung" },
  breakdownUnavailable: { en: "A detailed line-item breakdown isn't available for this estimate yet.",             de: "Eine detaillierte Aufschlüsselung der Einzelposten ist für diese Schätzung noch nicht verfügbar." },
  gutachterEyebrow: { en: "KFZ Gutachter",                                                                         de: "KFZ Gutachter" },
  // Difficulty pill, keyed by the API `difficulty` enum (Easy/Medium/Hard). A new
  // enum value would fall through to the raw key — keep in sync with the backend.
  difficultyPill_Easy:   { en: "Easy repair",   de: "Einfache Reparatur" },
  difficultyPill_Medium: { en: "Medium repair", de: "Mittlere Reparatur" },
  difficultyPill_Hard:   { en: "Hard repair",   de: "Schwierige Reparatur" },
});

registerStrings("BreakdownCard", {
  catPartsPaint:    { en: "Parts & paint",                             de: "Teile & Lack" },
  catPartsPaintSub: { en: "Materials · all damages",                   de: "Material · alle Schäden" },
  catLabor:         { en: "Labor",                                     de: "Arbeit" },
  catLaborSub:      { en: "Hours × rate · all damages",                de: "Stunden × Satz · alle Schäden" },
  totalLabel:       { en: "Total estimate",                            de: "Gesamtschätzung" },
  totalSub:         { en: "incl. 19% MwSt · range reflects workshop variance", de: "inkl. 19 % MwSt. · Spanne berücksichtigt Werkstattunterschiede" },
});

registerStrings("CostPdf", {
  shellTitle:       { en: "Download detailed cost breakdown",          de: "Detaillierte Kostenaufstellung herunterladen" },
  shellDesc:        { en: "Understand exactly where every charge comes from and what a workshop should fairly charge you before you walk in. Includes itemised parts, labour rates, and regional pricing benchmarks.", de: "Verstehen Sie genau, woher jeder Posten kommt und was eine Werkstatt fairerweise berechnen sollte, bevor Sie hingehen. Enthält aufgeschlüsselte Teile, Stundensätze und regionale Preis-Richtwerte." },
  shellDisclaimer:  { en: "This document is an AI-generated cost estimate for informational purposes only. It does not replace a certified Gutachten (expert appraisal) or a workshop Kostenvoranschlag (formal repair estimate).", de: "Dieses Dokument ist eine KI-generierte Kostenschätzung und dient nur zur Information. Es ersetzt weder ein zertifiziertes Gutachten noch einen Kostenvoranschlag der Werkstatt." },
  loadingBtn:       { en: "Loading…",                                  de: "Wird geladen…" },
  loadError:        { en: "Couldn't load the cost breakdown. Please refresh the page.", de: "Die Kostenaufstellung konnte nicht geladen werden. Bitte laden Sie die Seite neu." },
  preparingBtn:     { en: "Preparing…",                                de: "Wird vorbereitet…" },
  downloadBtn:      { en: "Download PDF",                              de: "PDF herunterladen" },
  purchased:        { en: "Purchased — re-download anytime",           de: "Gekauft · jederzeit erneut herunterladbar" },
  downloadError:    { en: "Couldn't download the PDF. Please try again.", de: "Das PDF konnte nicht heruntergeladen werden. Bitte versuchen Sie es erneut." },
  redirectingBtn:   { en: "Redirecting…",                             de: "Weiterleitung…" },
  buyBtn:           { en: "Download as PDF",                           de: "Als PDF herunterladen" },
  notReadyError:    { en: "The cost breakdown isn't ready for this inspection yet.", de: "Die Kostenaufstellung für diese Analyse ist noch nicht fertig." },
  paymentError:     { en: "Couldn't start the payment. Please try again.", de: "Die Zahlung konnte nicht gestartet werden. Bitte versuchen Sie es erneut." },
});

registerStrings("SignUpOverlay", {
  emailHeading:       { en: "Sign up to see more",                                                                                                          de: "Jetzt registrieren und mehr sehen" },
  emailBody:          { en: "Access DIY repair guide, full cost breakdown, get appointments with KFZ Gutachter and workshop quotes. No phone calls, no workshop visits, all in one place.", de: "Erhalten Sie Zugang zur Anleitung für die Selbstreparatur, zur vollständigen Kostenaufstellung sowie zu Terminen bei KFZ Gutachtern und Werkstatt-Angeboten. Keine Telefonate, keine Werkstattbesuche, alles an einem Ort." },
  emailPlaceholder:   { en: "your@email.com",                                                                                                               de: "ihre@email.de" },
  sendBusy:           { en: "Sending…",                                                                                                                     de: "Wird gesendet…" },
  sendLabel:          { en: "Send code",                                                                                                                    de: "Code senden" },
  sendError:          { en: "Couldn't send the code. Please try again.",                                                                                    de: "Der Code konnte nicht gesendet werden. Bitte versuchen Sie es erneut." },
  codeHeading:        { en: "Enter your code",                                                                                                              de: "Code eingeben" },
  codeSentPre:        { en: "We sent a 6-digit code to",                                                                                                   de: "Wir haben einen 6-stelligen Code gesendet an" },
  codeSentPost:       { en: "Enter it below to unlock your full report.",                                                                                   de: "Geben Sie ihn unten ein, um Ihren vollständigen Bericht freizuschalten." },
  codePlaceholder:    { en: "123456",                                                                                                                       de: "123456" },
  verifyBusy:         { en: "Verifying…",                                                                                                                   de: "Wird überprüft…" },
  verifyLabel:        { en: "Verify & unlock",                                                                                                              de: "Überprüfen & freischalten" },
  codeInvalid:        { en: "That code is invalid or expired. Check your inbox and try again.",                                                             de: "Dieser Code ist ungültig oder abgelaufen. Bitte prüfen Sie Ihr Postfach und versuchen Sie es erneut." },
  verifyError:        { en: "Verification failed. Please try again.",                                                                                       de: "Die Überprüfung ist fehlgeschlagen. Bitte versuchen Sie es erneut." },
  useDifferentEmail:  { en: "Use a different email",                                                                                                        de: "Andere E-Mail-Adresse verwenden" },
});

registerStrings("RealWorkshopCard", {
  heading:        { en: "Workshop repair",  de: "Reparatur in der Werkstatt" },
  recommended:    { en: "Recommended",      de: "Empfohlen" },
  turnaroundLabel:{ en: "Turnaround",       de: "Dauer" },
});

registerStrings("RealDIYCard", {
  heading:          { en: "DIY at home",     de: "Selbst zu Hause" },
  recommended:      { en: "Recommended",     de: "Empfohlen" },
  materialsCostLabel: { en: "Materials cost", de: "Materialkosten" },
  difficultyLabel:  { en: "Difficulty",      de: "Schwierigkeit" },
  activeTimeLabel:  { en: "Active time",     de: "Aktive Zeit" },
  materialsLabel:   { en: "Materials",       de: "Material" },
  items:            { en: { one: "{count} item", other: "{count} items" }, de: { one: "{count} Position", other: "{count} Positionen" } },
  difficulty_Easy:   { en: "Beginner",     de: "Anfänger" },
  difficulty_Medium: { en: "Intermediate", de: "Fortgeschritten" },
  difficulty_Hard:   { en: "Advanced",     de: "Experte" },
});

registerStrings("TurnaroundDays", {
  days: { en: { one: "{count} day", other: "{count} days" }, de: { one: "{count} Tag", other: "{count} Tage" } },
});

registerStrings("ActiveTimeLabel", {
  minutes: { en: "{count} min", de: "{count} Min." },
});

registerStrings("DIYCheckBox", {
  heading:        { en: "Check before you start.",  de: "Vor dem Start prüfen." },
  diyIf:          { en: "DIY if",                   de: "Selbst machen, wenn" },
  workshopIf:     { en: "Workshop instead if",      de: "Lieber Werkstatt, wenn" },
});

registerStrings("DIYGuide", {
  materialsEyebrow: { en: "What you'll need",   de: "Das brauchen Sie" },
  totalMaterials:   { en: "Total materials",    de: "Material gesamt" },
  stepsEyebrow:     { en: "Step-by-step",       de: "Schritt für Schritt" },
});

registerStrings("NearbyWorkshops", {
  loading:          { en: "Finding workshops near you…",              de: "Werkstätten in Ihrer Nähe werden gesucht…" },
  empty:            { en: "No independent workshops found near this area.", de: "In dieser Region haben wir keine freien Werkstätten gefunden." },
  cardHeading:      { en: "Independent workshops in your area",       de: "Freie Werkstätten in Ihrer Umgebung" },
  showingNear:      { en: "Showing workshops near",                   de: "Werkstätten in der Nähe von" },
  comingSoonBold:   { en: "OttoKlar is coming to your area soon.",    de: "OttoKlar kommt bald in Ihre Region." },
  comingSoonBody:   { en: "We don't have a partnered workshop near your region yet — but we found these independent shops nearby. Contact them directly for a quote.", de: "In Ihrer Region haben wir noch keine Partnerwerkstatt. Diese freien Werkstätten in der Nähe haben wir aber gefunden. Kontaktieren Sie sie direkt für ein Angebot." },
});

registerStrings("VinHelp", {
  whatTitle:        { en: "What is a VIN?",                                                                                                                     de: "Was ist eine FIN?" },
  whatBody:         { en: "A Vehicle Identification Number (VIN) is a unique 17-character code assigned to every vehicle. It lets workshops verify your exact model, engine, and trim.", de: "Die Fahrzeug-Identifizierungsnummer (FIN) ist ein eindeutiger, 17-stelliger Code, der jedem Fahrzeug zugeordnet ist. Damit können Werkstätten Ihr genaues Modell, den Motor und die Ausstattung überprüfen." },
  whereTitle:       { en: "Where to find it:",                                                                                                                  de: "Wo Sie sie finden:" },
  li1:              { en: "Dashboard (driver's side, visible through windshield)",                                                                              de: "Armaturenbrett (Fahrerseite, durch die Windschutzscheibe sichtbar)" },
  li2:              { en: "Driver's door jamb sticker",                                                                                                         de: "Aufkleber im Türrahmen der Fahrertür" },
  li3:              { en: "Vehicle registration document (Fahrzeugschein)",                                                                                     de: "Im Fahrzeugschein" },
});

registerStrings("WorkshopsSection", {
  eyebrowNear:      { en: "Workshops near you",                  de: "Werkstätten in Ihrer Nähe" },
  eyebrowQuotes:    { en: "Workshop quotes",                     de: "Werkstatt-Angebote" },
  findingWorkshops: { en: "Finding workshops near you…",         de: "Werkstätten in Ihrer Nähe werden gesucht…" },
});

registerStrings("MatchedWorkshopsView", {
  heading:           { en: "OttoKlar partnered workshops near you",                                                                    de: "OttoKlar-Partnerwerkstätten in Ihrer Nähe" },
  showingNear:       { en: "Showing workshops near",                                                                                   de: "Werkstätten in der Nähe von" },
  vinPromptBold:     { en: "Enter your vehicle VIN to request quotes.",                                                                de: "Geben Sie die FIN Ihres Fahrzeugs ein, um Angebote anzufragen." },
  vinPromptBody:     { en: "Workshops use your VIN to verify the exact model and trim, so you get an accurate quote.",                 de: "Werkstätten nutzen Ihre FIN, um das genaue Modell und die Ausstattung zu überprüfen, damit Sie ein präzises Angebot erhalten." },
  vinLabel:          { en: "Vehicle VIN",                                                                                              de: "Fahrzeug-FIN" },
  vinPlaceholder:    { en: "e.g. WAUZZZ8K9BA012345",                                                                                  de: "z. B. WAUZZZ8K9BA012345" },
  vinConfirmIdle:    { en: "Confirm",                                                                                                  de: "Bestätigen" },
  vinConfirmBusy:    { en: "Saving…",                                                                                                  de: "Wird gespeichert…" },
  vinConfirmedLabel: { en: "Confirmed",                                                                                                de: "Bestätigt" },
  vinVerifiedNote:   { en: "VIN verified — quotes will include your exact vehicle specs",                                              de: "FIN bestätigt · Angebote berücksichtigen die genauen Daten Ihres Fahrzeugs" },
  vinBadError:       { en: "That VIN doesn't look right. Please check and try again.",                                                 de: "Diese FIN sieht nicht korrekt aus. Bitte überprüfen Sie sie und versuchen Sie es erneut." },
  vinSaveError:      { en: "Couldn't save your VIN. Please try again.",                                                                de: "Ihre FIN konnte nicht gespeichert werden. Bitte versuchen Sie es erneut." },
  vinCharsRemaining: { en: { one: "{count} character remaining", other: "{count} characters remaining" }, de: { one: "{count} Zeichen übrig", other: "{count} Zeichen übrig" } },
});

registerStrings("MatchedShopRow", {
  reviews:    { en: "reviews",                                              de: "Bewertungen" },
  viewOnMap:  { en: "View on map",                                          de: "Auf der Karte ansehen" },
  quoteIdle:  { en: "Request quote",                                        de: "Angebot anfragen" },
  quoteBusy:  { en: "Requesting…",                                          de: "Wird angefragt…" },
  quoteDone:  { en: "Quote requested",                                      de: "Angebot angefragt" },
  bookIdle:   { en: "Book appointment",                                     de: "Termin buchen" },
  bookBusy:   { en: "Booking…",                                             de: "Wird gebucht…" },
  bookDone:   { en: "Appointment requested",                                de: "Termin angefragt" },
  referError: { en: "Could not send your request. Please try again.",       de: "Ihre Anfrage konnte nicht gesendet werden. Bitte versuchen Sie es erneut." },
});

registerStrings("GutachterSection", {
  findingAppraisers:  { en: "Finding appraisers near you…",                                                                                                              de: "Gutachter in Ihrer Nähe werden gesucht…" },
  emptyAppraisers:    { en: "No appraisers found near this area.",                                                                                                       de: "In dieser Region haben wir keine Gutachter gefunden." },
  headingPartners:    { en: "OttoKlar partnered appraisers near you",                                                                                                    de: "OttoKlar-Partner-Gutachter in Ihrer Nähe" },
  headingIndependent: { en: "Independent appraisers in your area",                                                                                                       de: "Unabhängige Gutachter in Ihrer Umgebung" },
  bodyOfficial:       { en: "An independent Gutachter documents your damage officially — essential for insurance claims and disputed liability.",                          de: "Ein unabhängiger Gutachter dokumentiert Ihren Schaden offiziell – unverzichtbar bei Versicherungsansprüchen und strittiger Haftung." },
  comingSoonBold:     { en: "OttoKlar is coming to your area soon.",                                                                                                     de: "OttoKlar kommt bald in Ihre Region." },
  comingSoonBody:     { en: "We don't have a partnered appraiser near your region yet — but we found these independent Gutachter nearby. Contact them directly.",         de: "In Ihrer Region haben wir noch keinen Partner-Gutachter. Diese unabhängigen Gutachter in der Nähe haben wir aber gefunden. Kontaktieren Sie sie direkt." },
  showingNear:        { en: "Showing appraisers near",                                                                                                                   de: "Gutachter in der Nähe von" },
  costEntitledPre:    { en: "Your estimated damage is",                                                                                                                  de: "Ihr geschätzter Schaden beträgt" },
  costEntitledMid:    { en: "At this amount, you are entitled to a",                                                                                                     de: "Bei diesem Betrag haben Sie Anspruch auf ein" },
  costEntitledFree:   { en: "free certified Gutachten",                                                                                                                  de: "kostenloses zertifiziertes Gutachten" },
  costEntitledPost:   { en: "for your insurance claim.",                                                                                                                 de: "für Ihren Versicherungsanspruch." },
});
