menue
This commit is contained in:
parent
099b5d80e1
commit
af6eafdd21
0
.windsurf/workflows/sachversicherung.md
Normal file
0
.windsurf/workflows/sachversicherung.md
Normal file
Binary file not shown.
BIN
public/locales/de/agentur.json.bak
Normal file
BIN
public/locales/de/agentur.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/de/altersvorsorge.json.bak
Normal file
BIN
public/locales/de/altersvorsorge.json.bak
Normal file
Binary file not shown.
@ -13,7 +13,12 @@
|
||||
"phoneInvalid": "Ungültige Telefonnummer",
|
||||
"successMessage": "Ihre Nachricht wurde erfolgreich gesendet!",
|
||||
"errorMessage": "Ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.",
|
||||
"notFound": {
|
||||
"message": "Ups! Seite nicht gefunden",
|
||||
"backHome": "Zur Startseite"
|
||||
},
|
||||
"generalNotice": {
|
||||
"title": "Wichtiger Hinweis:",
|
||||
"text": "Hinweis:\nDie auf diesen Seiten enthaltenen Tipps und Informationen stellen allgemeine, unverbindliche Hinweise zu Versicherungen dar. Es handelt sich um eine private Meinungsäußerung ohne Anspruch auf Richtigkeit, Vollständigkeit oder Haftung und ersetzt keine individuelle Beratung. Maßgeblich sind ausschließlich die jeweiligen Versicherungsbedingungen des Versicherungsunternehmens."
|
||||
},
|
||||
"nav": {
|
||||
|
||||
70
public/locales/de/familienhaftpflicht.json
Normal file
70
public/locales/de/familienhaftpflicht.json
Normal file
@ -0,0 +1,70 @@
|
||||
{
|
||||
"title": "Haftpflicht (Familie)",
|
||||
"tabs": {
|
||||
"overview": "Übersicht",
|
||||
"details": "Details",
|
||||
"form": "Anfrage",
|
||||
"claims": "Schaden",
|
||||
"catalog": "Ratgeber"
|
||||
},
|
||||
"overview": {
|
||||
"badge": "Schutz vor hohen Forderungen",
|
||||
"title": "Privathaftpflicht für Familien",
|
||||
"subtitle": "Kinder & Eltern abgesichert",
|
||||
"description": "Wenn etwas passiert, kann es teuer werden. Die Privathaftpflicht schützt vor Schadenersatzforderungen.",
|
||||
"primaryButton": "Angebot anfordern",
|
||||
"secondaryButton": "Beratung",
|
||||
"card1Title": "Familien-Schutz",
|
||||
"card1Subtitle": "Kinder mitversichert",
|
||||
"card2Title": "Hohe Deckung",
|
||||
"card2Subtitle": "sinnvoll & wichtig",
|
||||
"rightCardTitle": "Alltag, Spiel, Missgeschick",
|
||||
"rightCardText": "Tarifcheck – schnell und fair."
|
||||
},
|
||||
"details": {
|
||||
"title": "Worauf achten?",
|
||||
"description": "Deckungssumme, deliktunfähige Kinder, Mietsachschäden, Schlüsselverlust, Forderungsausfalldeckung.",
|
||||
"item1Title": "Deliktunfähig",
|
||||
"item1Desc": "Absicherung bei Schäden durch kleine Kinder.",
|
||||
"item2Title": "Schlüssel/Miete",
|
||||
"item2Desc": "Wichtige Bausteine im Alltag.",
|
||||
"tipTitle": "Tipp",
|
||||
"tipSubtitle": "Deckungssumme nicht zu niedrig",
|
||||
"tipText": "Heute sind 10–50 Mio. € häufig sinnvoll."
|
||||
},
|
||||
"form": {
|
||||
"title": "Anfrageformular",
|
||||
"subtitle": "Wir vergleichen passende Tarife für deine Familie.",
|
||||
"openContact": "Kontaktformular öffnen",
|
||||
"savePdf": "Als PDF speichern",
|
||||
"directTitle": "Direktkontakt",
|
||||
"directSubtitle": "Wenn es schnell gehen soll.",
|
||||
"phone": "Telefon: 0171 / 9864053",
|
||||
"email": "E-Mail: info@finanzen-mizera.de"
|
||||
},
|
||||
"claims": {
|
||||
"title": "Schadenmeldung",
|
||||
"subtitle": "Kurz-Checkliste für den Schadenfall.",
|
||||
"item1Title": "Daten sichern",
|
||||
"item1Desc": "Fotos, Zeugen, Ablauf notieren.",
|
||||
"item2Title": "Melden",
|
||||
"item2Desc": "Wir helfen bei der Regulierung.",
|
||||
"noteTitle": "Hinweis",
|
||||
"noteSubtitle": "Keine Schuldanerkenntnisse",
|
||||
"noteText": "Keine Zusagen ohne Prüfung. Erst melden."
|
||||
},
|
||||
"catalog": {
|
||||
"title": "Ratgeber",
|
||||
"subtitle": "Typische Fragen in Familien.",
|
||||
"summaryTitle": "Das Gröbste auf einen Blick",
|
||||
"summarySubtitle": "Beispiele – Details je nach Tarif.",
|
||||
"rows": {
|
||||
"row1": "Sind Kinder deliktunfähig mitversichert?",
|
||||
"row2": "Mietsachschäden enthalten?",
|
||||
"row3": "Schlüsselverlust enthalten?",
|
||||
"row4": "Forderungsausfalldeckung vorhanden?"
|
||||
},
|
||||
"questionTitle": "Frage?",
|
||||
"questionSubtitle": "Wir beraten persönlich."
|
||||
}
|
||||
}
|
||||
55
public/locales/de/familienpakete.json
Normal file
55
public/locales/de/familienpakete.json
Normal file
@ -0,0 +1,55 @@
|
||||
{
|
||||
"title": "Familienpakete",
|
||||
"tabs": {
|
||||
"overview": "Übersicht",
|
||||
"details": "Details",
|
||||
"form": "Anfrage",
|
||||
"catalog": "Ratgeber"
|
||||
},
|
||||
"overview": {
|
||||
"badge": "Alles aus einer Hand",
|
||||
"title": "Familienpakete",
|
||||
"subtitle": "kombinieren & sparen",
|
||||
"description": "Mit passenden Paketen lassen sich Leistungen bündeln und oft Beiträge optimieren.",
|
||||
"primaryButton": "Beratung anfordern",
|
||||
"secondaryButton": "Kontakt",
|
||||
"card1Title": "Sinnvoll",
|
||||
"card1Subtitle": "Bausteine passend",
|
||||
"card2Title": "Familie",
|
||||
"card2Subtitle": "ein Vertrag",
|
||||
"rightCardTitle": "einfach, klar, passend",
|
||||
"rightCardText": "Wir vergleichen Optionen und erklären verständlich."
|
||||
},
|
||||
"details": {
|
||||
"title": "Beispiele",
|
||||
"description": "Unfall + Haftpflicht + Zusatz – je nach Bedarf.",
|
||||
"combosTitle": "Typische Kombinationen",
|
||||
"combosSubtitle": "Beispiele",
|
||||
"combo1": "Kinderunfall + Haftpflicht",
|
||||
"combo2": "Zahn + Stationär",
|
||||
"combo3": "Reise + Ausland",
|
||||
"tipTitle": "Tipp",
|
||||
"tipSubtitle": "Keine Doppelungen",
|
||||
"tipText": "Wir prüfen, was schon vorhanden ist."
|
||||
},
|
||||
"form": {
|
||||
"title": "Anfrageformular",
|
||||
"subtitle": "Wir bauen ein Paket passend zu deiner Familie.",
|
||||
"openContact": "Kontaktformular öffnen",
|
||||
"savePdf": "Als PDF speichern",
|
||||
"directTitle": "Direktkontakt",
|
||||
"directSubtitle": "Wenn es schnell gehen soll.",
|
||||
"phone": "Telefon: 0171 / 9864053",
|
||||
"email": "E-Mail: info@finanzen-mizera.de"
|
||||
},
|
||||
"catalog": {
|
||||
"title": "Ratgeber",
|
||||
"subtitle": "So findest du das passende Paket.",
|
||||
"checklistTitle": "Checkliste",
|
||||
"checklistSubtitle": "Beispiele",
|
||||
"row1": "Welche Risiken sind wichtig?",
|
||||
"row2": "Budget pro Monat",
|
||||
"row3": "Bestehende Verträge prüfen",
|
||||
"row4": "Leistung vor Preis"
|
||||
}
|
||||
}
|
||||
65
public/locales/de/familienreise.json
Normal file
65
public/locales/de/familienreise.json
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"hero": {
|
||||
"kicker": "Familien & Kinder",
|
||||
"title": "Reise & Ausland",
|
||||
"subtitle": "Auslandsreisekranken & mehr",
|
||||
"primaryCta": "Beratung",
|
||||
"secondaryCta": "Zur Übersicht"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": "Übersicht",
|
||||
"details": "Details",
|
||||
"form": "Anfrage",
|
||||
"catalog": "Ratgeber"
|
||||
},
|
||||
"overview": {
|
||||
"badge": "Sicher reisen mit Familie",
|
||||
"title": "Reise & Auslandsschutz",
|
||||
"subtitle": "Auslandsreisekranken & mehr",
|
||||
"description": "Medizinische Behandlungen im Ausland können teuer werden. Passender Schutz sorgt für Sicherheit.",
|
||||
"primaryButton": "Angebot anfordern",
|
||||
"secondaryButton": "Beratung",
|
||||
"card1Title": "Weltweit",
|
||||
"card1Subtitle": "auch Familie",
|
||||
"card2Title": "Schnell",
|
||||
"card2Subtitle": "im Notfall",
|
||||
"rightCardTitle": "Urlaub, Besuch, Ausland",
|
||||
"rightCardText": "Tarifcheck – passend zur Reise."
|
||||
},
|
||||
"details": {
|
||||
"title": "Wichtige Bausteine",
|
||||
"description": "Auslandsreisekranken, Rücktransport, Reiserücktritt (je nach Bedarf).",
|
||||
"item1Title": "Rücktransport",
|
||||
"item1Desc": "Wenn medizinisch sinnvoll.",
|
||||
"item2Title": "Familie",
|
||||
"item2Desc": "Ein Vertrag – alle abgesichert.",
|
||||
"hintTitle": "Hinweis",
|
||||
"hintSubtitle": "EU-Karte reicht oft nicht",
|
||||
"hintText": "Privatkliniken & Rücktransport sind oft nicht abgedeckt."
|
||||
},
|
||||
"form": {
|
||||
"title": "Anfrageformular",
|
||||
"subtitle": "Wir vergleichen passende Tarife für deine Reisen.",
|
||||
"openContact": "Kontaktformular öffnen",
|
||||
"savePdf": "Als PDF speichern",
|
||||
"directTitle": "Direktkontakt",
|
||||
"directSubtitle": "Wenn es schnell gehen soll.",
|
||||
"phone": "Telefon: 0171 / 9864053",
|
||||
"email": "E-Mail: info@finanzen-mizera.de"
|
||||
},
|
||||
"catalog": {
|
||||
"title": "Ratgeber",
|
||||
"subtitle": "Kurz-Checkliste vor der Reise.",
|
||||
"checklistTitle": "Checkliste",
|
||||
"checklistSubtitle": "Beispiele – je nach Reiseziel.",
|
||||
"tipTitle": "Tipp",
|
||||
"tipSubtitle": "Früh prüfen",
|
||||
"tipText": "Am besten vor der Buchung klären.",
|
||||
"rows": {
|
||||
"row1": "Reiseziel & Dauer",
|
||||
"row2": "Rücktransport enthalten?",
|
||||
"row3": "Familientarif vs. Einzelverträge",
|
||||
"row4": "Reiserücktritt nötig?"
|
||||
}
|
||||
}
|
||||
}
|
||||
62
public/locales/de/familienvorsorge.json
Normal file
62
public/locales/de/familienvorsorge.json
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
"hero": {
|
||||
"kicker": "Familien & Kinder",
|
||||
"title": "Vorsorge",
|
||||
"subtitle": "Absicherung & Planung",
|
||||
"primaryCta": "Beratung",
|
||||
"secondaryCta": "Zur Übersicht"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": "Übersicht",
|
||||
"details": "Details",
|
||||
"form": "Anfrage",
|
||||
"catalog": "Ratgeber"
|
||||
},
|
||||
"overview": {
|
||||
"badge": "Finanziell vorsorgen",
|
||||
"title": "Familienvorsorge",
|
||||
"subtitle": "Absicherung & Planung",
|
||||
"description": "Vorsorge bedeutet: die Familie schützen und Zukunft planen – verständlich und transparent.",
|
||||
"primaryButton": "Beratung anfordern",
|
||||
"secondaryButton": "Kontakt",
|
||||
"card1Title": "Absicherung",
|
||||
"card1Subtitle": "Risiken reduzieren",
|
||||
"card2Title": "Planung",
|
||||
"card2Subtitle": "einfach & klar",
|
||||
"rightCardTitle": "Zukunft für die Familie",
|
||||
"rightCardText": "Wir erklären verständlich – ohne Fachchinesisch."
|
||||
},
|
||||
"details": {
|
||||
"title": "Mögliche Themen",
|
||||
"description": "Absicherung, Vermögensaufbau, Altersvorsorge – passend zur Familie.",
|
||||
"item1Title": "Risikoschutz",
|
||||
"item1Desc": "z. B. Absicherung bei Ausfall.",
|
||||
"item2Title": "Vermögen",
|
||||
"item2Desc": "aufbauen und strukturieren.",
|
||||
"tipTitle": "Tipp",
|
||||
"tipSubtitle": "Einfach anfangen",
|
||||
"tipText": "Kleine Schritte sind besser als gar nicht starten."
|
||||
},
|
||||
"form": {
|
||||
"title": "Anfrageformular",
|
||||
"subtitle": "Kurz beschreiben – wir melden uns mit Vorschlägen.",
|
||||
"openContact": "Kontaktformular öffnen",
|
||||
"savePdf": "Als PDF speichern",
|
||||
"directTitle": "Direktkontakt",
|
||||
"directSubtitle": "Wenn es schnell gehen soll.",
|
||||
"phone": "Telefon: 0171 / 9864053",
|
||||
"email": "E-Mail: info@finanzen-mizera.de"
|
||||
},
|
||||
"catalog": {
|
||||
"title": "Ratgeber",
|
||||
"subtitle": "Worauf Familien oft Wert legen.",
|
||||
"checklistTitle": "Checkliste",
|
||||
"checklistSubtitle": "Beispiele",
|
||||
"rows": {
|
||||
"row1": "Monatliches Budget",
|
||||
"row2": "Ziele (Schule, Haus, Rente)",
|
||||
"row3": "Risikopuffer",
|
||||
"row4": "Bestehende Verträge"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
BIN
public/locales/de/finanzen.json.bak
Normal file
BIN
public/locales/de/finanzen.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/de/geschaeftskunden.json.bak
Normal file
BIN
public/locales/de/geschaeftskunden.json.bak
Normal file
Binary file not shown.
19
public/locales/de/gesundheitsvorsorge.json
Normal file
19
public/locales/de/gesundheitsvorsorge.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Gesundheitsvorsorge - Agentur Mizera",
|
||||
"description": "Gesundheitsvorsorge: Umfassende Vorsorge und Prävention für Ihre Gesundheit. Unabhängige Beratung für alle Bereiche der Gesundheitsvorsorge."
|
||||
},
|
||||
"hero": {
|
||||
"title": "Gesundheitsvorsorge",
|
||||
"subtitle": "Umfassender Schutz für Ihre Gesundheit - im In- und Ausland",
|
||||
"primaryCta": "Jetzt beraten lassen",
|
||||
"secondaryCta": "Vergleich starten"
|
||||
},
|
||||
"tiles": {
|
||||
"title": "Wählen Sie Ihren Versicherungsschutz",
|
||||
"subtitle": "Wir bieten Ihnen maßgeschneiderte Lösungen für alle Bereiche der Gesundheitsvorsorge",
|
||||
"pkv": "Private Krankenversicherung",
|
||||
"zahn": "Zahnzusatzversicherung",
|
||||
"ausland": "Auslandsreisekrankenversicherung"
|
||||
}
|
||||
}
|
||||
@ -85,6 +85,92 @@
|
||||
"item6": { "title": "Unfall – Was jetzt?" }
|
||||
},
|
||||
|
||||
"topTopics": {
|
||||
"kicker": "Bestseller",
|
||||
"title": "Die beliebtesten Themen",
|
||||
"subtitle": "Wählen Sie ein Thema und starten Sie mit wenigen Klicks.",
|
||||
"allTopics": "Alle Themen anzeigen",
|
||||
"items": {
|
||||
"kfz": {
|
||||
"title": "KFZ-Versicherung",
|
||||
"description": "Tarife vergleichen und schnell zum passenden Schutz.",
|
||||
"cta": "Jetzt informieren"
|
||||
},
|
||||
"privatkunden": {
|
||||
"title": "Privatkunden",
|
||||
"description": "Versicherungen für Alltag, Familie und Zuhause.",
|
||||
"cta": "Jetzt informieren"
|
||||
},
|
||||
"gesundheit": {
|
||||
"title": "Gesundheitsvorsorge",
|
||||
"description": "Optimal abgesichert – privat und individuell.",
|
||||
"cta": "Mehr erfahren"
|
||||
},
|
||||
"zahnzusatz": {
|
||||
"title": "Zahnzusatzversicherung",
|
||||
"description": "Zahnersatz und -erhalt nach Maß: Stellen Sie sich die Leistungen nach Ihren Wünschen zusammen.",
|
||||
"cta": "Jetzt informieren"
|
||||
},
|
||||
"ausland": {
|
||||
"title": "Auslandskrankenversicherung",
|
||||
"description": "Auch im Urlaub bestens abgesichert: weltweiter Schutz für medizinische Versorgung.",
|
||||
"cta": "Jetzt informieren"
|
||||
},
|
||||
"sterbegeld": {
|
||||
"title": "Sterbegeldversicherung",
|
||||
"description": "Für Ihre Liebsten vorsorgen: finanzielle Sicherheit im Todesfall.",
|
||||
"cta": "Jetzt informieren"
|
||||
},
|
||||
"rechtsschutz": {
|
||||
"title": "Rechtsschutzversicherung",
|
||||
"description": "Ihre Rechte schützen – passende Bausteine finden.",
|
||||
"cta": "Mehr erfahren"
|
||||
},
|
||||
"senioren": {
|
||||
"title": "Senioren",
|
||||
"description": "Sicherheit und Komfort – Lösungen für jede Lebensphase.",
|
||||
"cta": "Alle Themen"
|
||||
},
|
||||
"finanzen": {
|
||||
"title": "Finanzen",
|
||||
"description": "Vermögensaufbau, Altersvorsorge und Finanzierung.",
|
||||
"cta": "Zur Übersicht"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"topTopicsExtra": {
|
||||
"kicker": "Weitere Themen",
|
||||
"title": "Mehr Absicherung – passend zu Ihrer Situation",
|
||||
"subtitle": "Beliebte Zusatzlösungen – schnell erklärt und einfach anfragen.",
|
||||
"items": {
|
||||
"zahnzusatz": {
|
||||
"title": "Zahnzusatzversicherung im Vergleich",
|
||||
"description": "Zahnersatz und -erhalt nach Maß: Stellen Sie sich die Leistungen nach Ihren Wünschen zusammen.",
|
||||
"cta": "Jetzt informieren",
|
||||
"pricePrefix": "z.B.",
|
||||
"priceValue": "21.95",
|
||||
"priceUnit": "monatlich"
|
||||
},
|
||||
"ausland": {
|
||||
"title": "Auslandskrankenversicherung",
|
||||
"description": "Auch im Urlaub bestens abgesichert: mit der Auslandsreisekrankenversicherung - weltweiter Schutz für medizinische Versorgung.",
|
||||
"cta": "Jetzt informieren",
|
||||
"pricePrefix": "z.B. ab",
|
||||
"priceValue": "9.90",
|
||||
"priceUnit": "jährlich"
|
||||
},
|
||||
"sterbegeld": {
|
||||
"title": "Sterbegeldversicherung",
|
||||
"description": "Für Ihre Liebsten vorsorgen: finanzielle Sicherheit im Todesfall.",
|
||||
"cta": "Jetzt informieren",
|
||||
"pricePrefix": "z.B.\nBeitragsbeispiel",
|
||||
"priceValue": "40,75",
|
||||
"priceUnit": "pro Monat für 12.500 € Versicherungssumme\n• Männer/Frauen: ab 53 Jahre"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"services": {
|
||||
"title": "Unsere Leistungen",
|
||||
"subtitle": "Alles aus einer Hand für Ihren optimalen Schutz",
|
||||
|
||||
Binary file not shown.
BIN
public/locales/de/impressum.json.bak
Normal file
BIN
public/locales/de/impressum.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/de/krankheitsschutzbrief.json.bak
Normal file
BIN
public/locales/de/krankheitsschutzbrief.json.bak
Normal file
Binary file not shown.
@ -28,5 +28,6 @@
|
||||
"accidentInsurance": "Unfallversicherung",
|
||||
"service": "Service",
|
||||
"carInsurance": "KFZ-Versicherung",
|
||||
"propertyInsurance": "Sachversicherung"
|
||||
"propertyInsurance": "Sachversicherung",
|
||||
"houseAndApartment": "Haus & Wohnung"
|
||||
}
|
||||
Binary file not shown.
BIN
public/locales/de/privatkunden.json.bak
Normal file
BIN
public/locales/de/privatkunden.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/de/risikolebensversicherung.json.bak
Normal file
BIN
public/locales/de/risikolebensversicherung.json.bak
Normal file
Binary file not shown.
14
public/locales/de/risikoschutz.json
Normal file
14
public/locales/de/risikoschutz.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"hero": {
|
||||
"title": "Risikoschutz",
|
||||
"subtitle": "Umfassender Schutz für Sie und Ihre Familie bei unvorhergesehenen Ereignissen"
|
||||
},
|
||||
"topics": {
|
||||
"unfall": "Unfallversicherung",
|
||||
"bu": "Berufsunfähigkeitsversicherung",
|
||||
"haftpflicht": "Haftpflichtversicherung",
|
||||
"rechtsschutz": "Rechtsschutzversicherung",
|
||||
"tierhalter": "Tierhalterhaftpflicht",
|
||||
"dread": "Dread-Disease Versicherung"
|
||||
}
|
||||
}
|
||||
14
public/locales/de/sachversicherung.json
Normal file
14
public/locales/de/sachversicherung.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"hero": {
|
||||
"title": "Sachversicherung",
|
||||
"subtitle": "Schutz für Ihr Hab und Gut - von Hausrat bis Immobilie"
|
||||
},
|
||||
"topics": {
|
||||
"hausrat": "Hausratversicherung",
|
||||
"wohngebaeude": "Wohngebäudeversicherung",
|
||||
"haftpflicht": "Haftpflichtversicherung",
|
||||
"tiere": "Tierversicherung",
|
||||
"rechtsschutz": "Rechtsschutzversicherung",
|
||||
"elektro": "Elektrogeräteversicherung"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
BIN
public/locales/de/vermoegenssicherung.json.bak
Normal file
BIN
public/locales/de/vermoegenssicherung.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/pl/agentur.json.bak
Normal file
BIN
public/locales/pl/agentur.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/pl/altersvorsorge.json.bak
Normal file
BIN
public/locales/pl/altersvorsorge.json.bak
Normal file
Binary file not shown.
@ -13,7 +13,12 @@
|
||||
"phoneInvalid": "Nieprawidłowy numer telefonu",
|
||||
"successMessage": "Twoja wiadomość została wysłana!",
|
||||
"errorMessage": "Wystąpił błąd. Prosimy spróbować później.",
|
||||
"notFound": {
|
||||
"message": "Ups! Nie znaleziono strony",
|
||||
"backHome": "Wróć na stronę główną"
|
||||
},
|
||||
"generalNotice": {
|
||||
"title": "Ważna informacja:",
|
||||
"text": "Uwaga:\nWskazówki i informacje na tych stronach mają charakter ogólny i niewiążący. To prywatna opinia bez gwarancji poprawności, kompletności ani odpowiedzialności i nie zastępuje indywidualnej porady. Wiążące są wyłącznie warunki ubezpieczenia danego ubezpieczyciela."
|
||||
},
|
||||
"nav": {
|
||||
|
||||
70
public/locales/pl/familienhaftpflicht.json
Normal file
70
public/locales/pl/familienhaftpflicht.json
Normal file
@ -0,0 +1,70 @@
|
||||
{
|
||||
"title": "OC (rodzina)",
|
||||
"tabs": {
|
||||
"overview": "Przegląd",
|
||||
"details": "Szczegóły",
|
||||
"form": "Zapytanie",
|
||||
"claims": "Szkoda",
|
||||
"catalog": "Poradnik"
|
||||
},
|
||||
"overview": {
|
||||
"badge": "Ochrona przed wysokimi roszczeniami",
|
||||
"title": "Prywatne OC dla rodzin",
|
||||
"subtitle": "Dzieci i rodzice pod ochroną",
|
||||
"description": "Gdy coś się wydarzy, koszty mogą być wysokie. Prywatne OC chroni przed roszczeniami odszkodowawczymi.",
|
||||
"primaryButton": "Poproś o ofertę",
|
||||
"secondaryButton": "Konsultacja",
|
||||
"card1Title": "Ochrona rodziny",
|
||||
"card1Subtitle": "dzieci w pakiecie",
|
||||
"card2Title": "Wysoka suma",
|
||||
"card2Subtitle": "ważne i sensowne",
|
||||
"rightCardTitle": "Codzienność, zabawa, przypadek",
|
||||
"rightCardText": "Porównanie – szybko i uczciwie."
|
||||
},
|
||||
"details": {
|
||||
"title": "Na co zwrócić uwagę?",
|
||||
"description": "Suma ubezpieczenia, dzieci nieponoszące winy, szkody w wynajmie, utrata kluczy, ochrona przy braku wypłaty od sprawcy.",
|
||||
"item1Title": "Brak odpowiedzialności dzieci",
|
||||
"item1Desc": "Ochrona przy szkodach wyrządzonych przez małe dzieci.",
|
||||
"item2Title": "Klucze / najem",
|
||||
"item2Desc": "Ważne elementy w życiu codziennym.",
|
||||
"tipTitle": "Wskazówka",
|
||||
"tipSubtitle": "Nie za niska suma",
|
||||
"tipText": "Obecnie często sensowne jest 10–50 mln €."
|
||||
},
|
||||
"form": {
|
||||
"title": "Formularz zapytania",
|
||||
"subtitle": "Porównamy odpowiednie oferty dla Twojej rodziny.",
|
||||
"openContact": "Otwórz formularz kontaktowy",
|
||||
"savePdf": "Zapisz jako PDF",
|
||||
"directTitle": "Kontakt bezpośredni",
|
||||
"directSubtitle": "Gdy liczy się czas.",
|
||||
"phone": "Telefon: 0171 / 9864053",
|
||||
"email": "E-mail: info@finanzen-mizera.de"
|
||||
},
|
||||
"claims": {
|
||||
"title": "Zgłoszenie szkody",
|
||||
"subtitle": "Krótka checklista na wypadek szkody.",
|
||||
"item1Title": "Zabezpiecz dane",
|
||||
"item1Desc": "Zdjęcia, świadkowie, opisz przebieg.",
|
||||
"item2Title": "Zgłoś",
|
||||
"item2Desc": "Pomożemy w likwidacji szkody.",
|
||||
"noteTitle": "Uwaga",
|
||||
"noteSubtitle": "Bez uznania winy",
|
||||
"noteText": "Nie składaj obietnic bez weryfikacji. Najpierw zgłoś."
|
||||
},
|
||||
"catalog": {
|
||||
"title": "Poradnik",
|
||||
"subtitle": "Typowe pytania rodzin.",
|
||||
"summaryTitle": "Najważniejsze w skrócie",
|
||||
"summarySubtitle": "Przykłady – szczegóły zależą od taryfy.",
|
||||
"rows": {
|
||||
"row1": "Czy dzieci bez odpowiedzialności są objęte?",
|
||||
"row2": "Czy szkody w wynajmie są w pakiecie?",
|
||||
"row3": "Czy utrata kluczy jest w pakiecie?",
|
||||
"row4": "Czy jest ochrona przy braku wypłaty od sprawcy?"
|
||||
},
|
||||
"questionTitle": "Pytanie?",
|
||||
"questionSubtitle": "Doradzimy osobiście."
|
||||
}
|
||||
}
|
||||
55
public/locales/pl/familienpakete.json
Normal file
55
public/locales/pl/familienpakete.json
Normal file
@ -0,0 +1,55 @@
|
||||
{
|
||||
"title": "Pakiety rodzinne",
|
||||
"tabs": {
|
||||
"overview": "Przegląd",
|
||||
"details": "Szczegóły",
|
||||
"form": "Zapytanie",
|
||||
"catalog": "Poradnik"
|
||||
},
|
||||
"overview": {
|
||||
"badge": "Wszystko w jednym miejscu",
|
||||
"title": "Pakiety rodzinne",
|
||||
"subtitle": "łącz i oszczędzaj",
|
||||
"description": "Dzięki pakietom można połączyć zakres ochrony i często zoptymalizować składkę.",
|
||||
"primaryButton": "Poproś o konsultację",
|
||||
"secondaryButton": "Kontakt",
|
||||
"card1Title": "Sensownie",
|
||||
"card1Subtitle": "dopasowane elementy",
|
||||
"card2Title": "Rodzina",
|
||||
"card2Subtitle": "jedna umowa",
|
||||
"rightCardTitle": "prosto, jasno, dopasowane",
|
||||
"rightCardText": "Porównamy opcje i wyjaśnimy zrozumiale."
|
||||
},
|
||||
"details": {
|
||||
"title": "Przykłady",
|
||||
"description": "Wypadek + OC + dodatki – zależnie od potrzeb.",
|
||||
"combosTitle": "Typowe zestawy",
|
||||
"combosSubtitle": "Przykłady",
|
||||
"combo1": "Wypadek dziecka + OC",
|
||||
"combo2": "Zęby + szpital",
|
||||
"combo3": "Podróż + zagranica",
|
||||
"tipTitle": "Wskazówka",
|
||||
"tipSubtitle": "Bez dublowania",
|
||||
"tipText": "Sprawdzimy, co już masz."
|
||||
},
|
||||
"form": {
|
||||
"title": "Formularz zapytania",
|
||||
"subtitle": "Zbudujemy pakiet dopasowany do Twojej rodziny.",
|
||||
"openContact": "Otwórz formularz kontaktowy",
|
||||
"savePdf": "Zapisz jako PDF",
|
||||
"directTitle": "Kontakt bezpośredni",
|
||||
"directSubtitle": "Gdy liczy się czas.",
|
||||
"phone": "Telefon: 0171 / 9864053",
|
||||
"email": "E-mail: info@finanzen-mizera.de"
|
||||
},
|
||||
"catalog": {
|
||||
"title": "Poradnik",
|
||||
"subtitle": "Jak wybrać odpowiedni pakiet.",
|
||||
"checklistTitle": "Checklista",
|
||||
"checklistSubtitle": "Przykłady",
|
||||
"row1": "Jakie ryzyka są ważne?",
|
||||
"row2": "Budżet miesięczny",
|
||||
"row3": "Sprawdź obecne umowy",
|
||||
"row4": "Zakres przed ceną"
|
||||
}
|
||||
}
|
||||
65
public/locales/pl/familienreise.json
Normal file
65
public/locales/pl/familienreise.json
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"hero": {
|
||||
"kicker": "Rodzina i dzieci",
|
||||
"title": "Podróż i zagranica",
|
||||
"subtitle": "Ubezpieczenie podróżne i więcej",
|
||||
"primaryCta": "Konsultacja",
|
||||
"secondaryCta": "Do przeglądu"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": "Przegląd",
|
||||
"details": "Szczegóły",
|
||||
"form": "Zapytanie",
|
||||
"catalog": "Poradnik"
|
||||
},
|
||||
"overview": {
|
||||
"badge": "Bezpieczne podróże z rodziną",
|
||||
"title": "Ochrona w podróży",
|
||||
"subtitle": "Ubezpieczenie podróżne i więcej",
|
||||
"description": "Leczenie za granicą może być kosztowne. Odpowiednia ochrona daje bezpieczeństwo.",
|
||||
"primaryButton": "Poproś o ofertę",
|
||||
"secondaryButton": "Konsultacja",
|
||||
"card1Title": "Na całym świecie",
|
||||
"card1Subtitle": "również rodzina",
|
||||
"card2Title": "Szybko",
|
||||
"card2Subtitle": "w razie potrzeby",
|
||||
"rightCardTitle": "Wakacje, wizyta, zagranica",
|
||||
"rightCardText": "Porównanie – dopasowane do podróży."
|
||||
},
|
||||
"details": {
|
||||
"title": "Ważne elementy",
|
||||
"description": "Ubezpieczenie podróżne, transport powrotny, rezygnacja z podróży (wg potrzeb).",
|
||||
"item1Title": "Transport powrotny",
|
||||
"item1Desc": "Gdy jest medycznie uzasadniony.",
|
||||
"item2Title": "Rodzina",
|
||||
"item2Desc": "Jedna umowa – wszyscy chronieni.",
|
||||
"hintTitle": "Uwaga",
|
||||
"hintSubtitle": "Karta EKUZ często nie wystarcza",
|
||||
"hintText": "Prywatne kliniki i transport powrotny często nie są objęte."
|
||||
},
|
||||
"form": {
|
||||
"title": "Formularz zapytania",
|
||||
"subtitle": "Porównamy odpowiednie oferty dla Twoich podróży.",
|
||||
"openContact": "Otwórz formularz kontaktowy",
|
||||
"savePdf": "Zapisz jako PDF",
|
||||
"directTitle": "Kontakt bezpośredni",
|
||||
"directSubtitle": "Gdy liczy się czas.",
|
||||
"phone": "Telefon: 0171 / 9864053",
|
||||
"email": "E-mail: info@finanzen-mizera.de"
|
||||
},
|
||||
"catalog": {
|
||||
"title": "Poradnik",
|
||||
"subtitle": "Krótka checklista przed podróżą.",
|
||||
"checklistTitle": "Checklista",
|
||||
"checklistSubtitle": "Przykłady – zależnie od celu podróży.",
|
||||
"tipTitle": "Wskazówka",
|
||||
"tipSubtitle": "Sprawdź wcześniej",
|
||||
"tipText": "Najlepiej ustalić przed rezerwacją.",
|
||||
"rows": {
|
||||
"row1": "Cel i czas trwania",
|
||||
"row2": "Czy obejmuje transport powrotny?",
|
||||
"row3": "Taryfa rodzinna vs. indywidualne",
|
||||
"row4": "Czy potrzebna jest rezygnacja z podróży?"
|
||||
}
|
||||
}
|
||||
}
|
||||
62
public/locales/pl/familienvorsorge.json
Normal file
62
public/locales/pl/familienvorsorge.json
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
"hero": {
|
||||
"kicker": "Rodzina i dzieci",
|
||||
"title": "Zabezpieczenie",
|
||||
"subtitle": "Ochrona i planowanie",
|
||||
"primaryCta": "Konsultacja",
|
||||
"secondaryCta": "Do przeglądu"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": "Przegląd",
|
||||
"details": "Szczegóły",
|
||||
"form": "Zapytanie",
|
||||
"catalog": "Poradnik"
|
||||
},
|
||||
"overview": {
|
||||
"badge": "Zadbaj o finanse",
|
||||
"title": "Zabezpieczenie rodziny",
|
||||
"subtitle": "Ochrona i planowanie",
|
||||
"description": "Zabezpieczenie oznacza ochronę rodziny i planowanie przyszłości – jasno i przejrzyście.",
|
||||
"primaryButton": "Poproś o konsultację",
|
||||
"secondaryButton": "Kontakt",
|
||||
"card1Title": "Ochrona",
|
||||
"card1Subtitle": "mniej ryzyka",
|
||||
"card2Title": "Plan",
|
||||
"card2Subtitle": "prosto i jasno",
|
||||
"rightCardTitle": "Przyszłość rodziny",
|
||||
"rightCardText": "Wyjaśniamy zrozumiale – bez żargonu."
|
||||
},
|
||||
"details": {
|
||||
"title": "Możliwe tematy",
|
||||
"description": "Ochrona, budowanie majątku, emerytura – dopasowane do rodziny.",
|
||||
"item1Title": "Ochrona ryzyka",
|
||||
"item1Desc": "np. zabezpieczenie na wypadek utraty dochodu.",
|
||||
"item2Title": "Majątek",
|
||||
"item2Desc": "budowanie i porządkowanie.",
|
||||
"tipTitle": "Wskazówka",
|
||||
"tipSubtitle": "Zacznij prosto",
|
||||
"tipText": "Małe kroki są lepsze niż brak działania."
|
||||
},
|
||||
"form": {
|
||||
"title": "Formularz zapytania",
|
||||
"subtitle": "Opisz krótko – wrócimy z propozycjami.",
|
||||
"openContact": "Otwórz formularz kontaktowy",
|
||||
"savePdf": "Zapisz jako PDF",
|
||||
"directTitle": "Kontakt bezpośredni",
|
||||
"directSubtitle": "Gdy liczy się czas.",
|
||||
"phone": "Telefon: 0171 / 9864053",
|
||||
"email": "E-mail: info@finanzen-mizera.de"
|
||||
},
|
||||
"catalog": {
|
||||
"title": "Poradnik",
|
||||
"subtitle": "Na co rodziny często zwracają uwagę.",
|
||||
"checklistTitle": "Checklista",
|
||||
"checklistSubtitle": "Przykłady",
|
||||
"rows": {
|
||||
"row1": "Miesięczny budżet",
|
||||
"row2": "Cele (szkoła, dom, emerytura)",
|
||||
"row3": "Bufor bezpieczeństwa",
|
||||
"row4": "Obecne umowy"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
BIN
public/locales/pl/finanzen.json.bak
Normal file
BIN
public/locales/pl/finanzen.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/pl/geschaeftskunden.json.bak
Normal file
BIN
public/locales/pl/geschaeftskunden.json.bak
Normal file
Binary file not shown.
19
public/locales/pl/gesundheitsvorsorge.json
Normal file
19
public/locales/pl/gesundheitsvorsorge.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Ochrona zdrowia - Agentur Mizera",
|
||||
"description": "Ochrona zdrowia: kompleksowa profilaktyka i prewencja. Niezależne doradztwo we wszystkich obszarach ochrony zdrowia."
|
||||
},
|
||||
"hero": {
|
||||
"title": "Ochrona zdrowia",
|
||||
"subtitle": "Kompleksowa ochrona zdrowia - w kraju i za granicą",
|
||||
"primaryCta": "Umów konsultację",
|
||||
"secondaryCta": "Rozpocznij porównanie"
|
||||
},
|
||||
"tiles": {
|
||||
"title": "Wybierz zakres ochrony",
|
||||
"subtitle": "Oferujemy rozwiązania dopasowane do wszystkich obszarów ochrony zdrowia",
|
||||
"pkv": "Prywatne ubezpieczenie zdrowotne",
|
||||
"zahn": "Dodatkowe ubezpieczenie stomatologiczne",
|
||||
"ausland": "Ubezpieczenie podróżne"
|
||||
}
|
||||
}
|
||||
@ -98,6 +98,92 @@
|
||||
"gesundheitsvorsorge": { "description": "Profilaktyka i prewencja" }
|
||||
},
|
||||
|
||||
"topTopics": {
|
||||
"kicker": "Bestsellery",
|
||||
"title": "Najpopularniejsze tematy",
|
||||
"subtitle": "Wybierz temat i zacznij w kilka kliknięć.",
|
||||
"allTopics": "Pokaż wszystkie tematy",
|
||||
"items": {
|
||||
"kfz": {
|
||||
"title": "Ubezpieczenie KFZ",
|
||||
"description": "Porównaj oferty i szybko wybierz odpowiednią ochronę.",
|
||||
"cta": "Dowiedz się więcej"
|
||||
},
|
||||
"privatkunden": {
|
||||
"title": "Klienci prywatni",
|
||||
"description": "Ubezpieczenia dla życia codziennego, rodziny i domu.",
|
||||
"cta": "Dowiedz się więcej"
|
||||
},
|
||||
"gesundheit": {
|
||||
"title": "Ochrona zdrowia",
|
||||
"description": "Indywidualna ochrona zdrowotna dopasowana do Ciebie.",
|
||||
"cta": "Więcej informacji"
|
||||
},
|
||||
"zahnzusatz": {
|
||||
"title": "Dodatkowe ubezpieczenie stomatologiczne",
|
||||
"description": "Uzupełnienia i leczenie zębów dopasowane do potrzeb: wybierz zakres świadczeń, który Ci odpowiada.",
|
||||
"cta": "Dowiedz się więcej"
|
||||
},
|
||||
"ausland": {
|
||||
"title": "Ubezpieczenie zdrowotne w podróży",
|
||||
"description": "Bezpiecznie na urlopie: ochrona na całym świecie dla opieki medycznej.",
|
||||
"cta": "Dowiedz się więcej"
|
||||
},
|
||||
"sterbegeld": {
|
||||
"title": "Ubezpieczenie pogrzebowe",
|
||||
"description": "Zadbaj o bliskich: bezpieczeństwo finansowe na wypadek śmierci.",
|
||||
"cta": "Dowiedz się więcej"
|
||||
},
|
||||
"rechtsschutz": {
|
||||
"title": "Ubezpieczenie ochrony prawnej",
|
||||
"description": "Chroń swoje prawa – dobierz odpowiednie moduły.",
|
||||
"cta": "Więcej informacji"
|
||||
},
|
||||
"senioren": {
|
||||
"title": "Seniorzy",
|
||||
"description": "Bezpieczeństwo i komfort – rozwiązania na każdym etapie życia.",
|
||||
"cta": "Wszystkie tematy"
|
||||
},
|
||||
"finanzen": {
|
||||
"title": "Finanse",
|
||||
"description": "Budowanie majątku, emerytura i finansowanie.",
|
||||
"cta": "Przejdź do strony"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"topTopicsExtra": {
|
||||
"kicker": "Dodatkowe tematy",
|
||||
"title": "Więcej ochrony – dopasowane do Twojej sytuacji",
|
||||
"subtitle": "Popularne ubezpieczenia dodatkowe – krótko, jasno i z możliwością zapytania.",
|
||||
"items": {
|
||||
"zahnzusatz": {
|
||||
"title": "Ubezpieczenie stomatologiczne – porównanie",
|
||||
"description": "Uzupełnienia i leczenie zębów dopasowane do potrzeb: wybierz zakres świadczeń, który Ci odpowiada.",
|
||||
"cta": "Dowiedz się więcej",
|
||||
"pricePrefix": "np.",
|
||||
"priceValue": "21.95",
|
||||
"priceUnit": "miesięcznie"
|
||||
},
|
||||
"ausland": {
|
||||
"title": "Ubezpieczenie zdrowotne w podróży",
|
||||
"description": "Bezpiecznie na urlopie: z ubezpieczeniem zdrowotnym w podróży – ochrona na całym świecie dla opieki medycznej.",
|
||||
"cta": "Dowiedz się więcej",
|
||||
"pricePrefix": "np. od",
|
||||
"priceValue": "9.90",
|
||||
"priceUnit": "rocznie"
|
||||
},
|
||||
"sterbegeld": {
|
||||
"title": "Ubezpieczenie pogrzebowe",
|
||||
"description": "Zadbaj o bliskich: bezpieczeństwo finansowe na wypadek śmierci.",
|
||||
"cta": "Dowiedz się więcej",
|
||||
"pricePrefix": "np.\nPrzykład składki",
|
||||
"priceValue": "40,75",
|
||||
"priceUnit": "miesięcznie dla sumy ubezpieczenia 12 500 €\n• Kobiety/Mężczyźni: od 53 lat"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"experience": {
|
||||
"title": "Ponad {{years}} lata doświadczenia",
|
||||
"description": "Od 1994 roku oferuję moim klientom w Düsseldorfie i okolicach profesjonalne i niezależne doradztwo ubezpieczeniowe. Moim celem jest znalezienie dla każdego optymalnej ochrony na uczciwych warunkach."
|
||||
|
||||
Binary file not shown.
BIN
public/locales/pl/impressum.json.bak
Normal file
BIN
public/locales/pl/impressum.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/pl/krankheitsschutzbrief.json.bak
Normal file
BIN
public/locales/pl/krankheitsschutzbrief.json.bak
Normal file
Binary file not shown.
@ -28,5 +28,6 @@
|
||||
"accidentInsurance": "Ubezpieczenie od wypadków",
|
||||
"service": "Serwis",
|
||||
"carInsurance": "Ubezpieczenie komunikacyjne",
|
||||
"propertyInsurance": "Ubezpieczenia majątkowe"
|
||||
"propertyInsurance": "Ubezpieczenia majątkowe",
|
||||
"houseAndApartment": "Dom i mieszkanie"
|
||||
}
|
||||
Binary file not shown.
BIN
public/locales/pl/privatkunden.json.bak
Normal file
BIN
public/locales/pl/privatkunden.json.bak
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/locales/pl/risikolebensversicherung.json.bak
Normal file
BIN
public/locales/pl/risikolebensversicherung.json.bak
Normal file
Binary file not shown.
14
public/locales/pl/risikoschutz.json
Normal file
14
public/locales/pl/risikoschutz.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"hero": {
|
||||
"title": "Ochrona ryzyka",
|
||||
"subtitle": "Kompleksowa ochrona dla Ciebie i Twojej rodziny w nieprzewidzianych sytuacjach"
|
||||
},
|
||||
"topics": {
|
||||
"unfall": "Ubezpieczenie od wypadków",
|
||||
"bu": "Ubezpieczenie od niezdolności do pracy",
|
||||
"haftpflicht": "Ubezpieczenie OC",
|
||||
"rechtsschutz": "Ubezpieczenie ochrony prawnej",
|
||||
"tierhalter": "OC posiadacza zwierząt",
|
||||
"dread": "Ubezpieczenie na wypadek poważnych chorób"
|
||||
}
|
||||
}
|
||||
14
public/locales/pl/sachversicherung.json
Normal file
14
public/locales/pl/sachversicherung.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"hero": {
|
||||
"title": "Ubezpieczenia majątkowe",
|
||||
"subtitle": "Ochrona Twojego mienia - od wyposażenia domu po nieruchomość"
|
||||
},
|
||||
"topics": {
|
||||
"hausrat": "Ubezpieczenie mienia ruchomego",
|
||||
"wohngebaeude": "Ubezpieczenie budynku",
|
||||
"haftpflicht": "Ubezpieczenie OC",
|
||||
"tiere": "Ubezpieczenie zwierząt",
|
||||
"rechtsschutz": "Ubezpieczenie ochrony prawnej",
|
||||
"elektro": "Ubezpieczenie sprzętu elektronicznego"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
BIN
public/locales/pl/vermoegenssicherung.json.bak
Normal file
BIN
public/locales/pl/vermoegenssicherung.json.bak
Normal file
Binary file not shown.
@ -119,7 +119,7 @@ const App = () => {
|
||||
<Toaster />
|
||||
<Sonner />
|
||||
<ErrorBoundary>
|
||||
<BrowserRouter>
|
||||
<BrowserRouter basename={import.meta.env.BASE_URL}>
|
||||
<Routes>
|
||||
<Route path="/" element={<Index />} />
|
||||
<Route path="/kfz" element={<KFZ />} />
|
||||
|
||||
@ -1,18 +1,24 @@
|
||||
import { AlertTriangle } from 'lucide-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
type Props = {
|
||||
className?: string;
|
||||
};
|
||||
|
||||
export default function GeneralNotice({ className }: Props) {
|
||||
const { t } = useTranslation('common');
|
||||
|
||||
return (
|
||||
<div className={className ?? 'mt-8 rounded-md border border-amber-200 bg-amber-50/80 p-4'}>
|
||||
<div className="flex items-start gap-3">
|
||||
<AlertTriangle className="w-6 h-6 text-amber-600 mt-0.5 flex-shrink-0" />
|
||||
<div className="text-base text-amber-800 leading-relaxed">
|
||||
<h4 className="font-semibold mb-2">Wichtiger Hinweis:</h4>
|
||||
<h4 className="font-semibold mb-2">{t('generalNotice.title', 'Wichtiger Hinweis:')}</h4>
|
||||
<p>
|
||||
Die auf diesen Seiten enthaltenen Tipps und Informationen stellen allgemeine, unverbindliche Hinweise zu Versicherungen dar. Es handelt sich um eine private Meinungsäußerung ohne Anspruch auf Richtigkeit, Vollständigkeit oder Haftung und ersetzt keine individuelle Beratung. Maßgeblich sind ausschließlich die jeweiligen Versicherungsbedingungen des Versicherungsunternehmens.
|
||||
{t(
|
||||
'generalNotice.text',
|
||||
'Die auf diesen Seiten enthaltenen Tipps und Informationen stellen allgemeine, unverbindliche Hinweise zu Versicherungen dar. Es handelt sich um eine private Meinungsäußerung ohne Anspruch auf Richtigkeit, Vollständigkeit oder Haftung und ersetzt keine individuelle Beratung. Maßgeblich sind ausschließlich die jeweiligen Versicherungsbedingungen des Versicherungsunternehmens.'
|
||||
)}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -18,6 +18,8 @@ const Header = () => {
|
||||
const navigation = [
|
||||
{ name: t('home'), href: '/', icon: Home },
|
||||
{ name: t('privateCustomers'), href: '/privatkunden', icon: Users },
|
||||
{ name: t('houseAndApartment', 'Haus & Wohnung'), href: '/sachversicherung', icon: Home },
|
||||
{ name: t('health', 'Gesundheit'), href: '/gesundheitsvorsorge', icon: Shield },
|
||||
{ name: t('familiesAndChildren', 'Familien & Kinder'), href: '/familien-kinder', icon: Users },
|
||||
{ name: t('seniors'), href: '/senioren', icon: Shield },
|
||||
{ name: t('businessCustomers'), href: '/geschaeftskunden', icon: Truck },
|
||||
@ -36,13 +38,79 @@ const Header = () => {
|
||||
{ name: t('carInsurance', 'KFZ'), href: '/kfz', icon: Truck },
|
||||
{ name: t('services', 'Leistungen'), href: '/leistungen', icon: FileText },
|
||||
{ name: 'Risikolebensversicherung', href: '/risikolebensversicherung', icon: Shield },
|
||||
{ name: 'Sterbegeldversicherung', href: '/senioren-sterbegeldversicherung', icon: Shield },
|
||||
{ name: 'Sterbegeld', href: '/senioren-sterbegeldversicherung', icon: Shield },
|
||||
{ name: 'Bestattungsvorsorge', href: '/senioren-sterbegeldversicherung', icon: Shield },
|
||||
{ name: 'Krankheits-Schutzbrief', href: '/krankheitsschutzbrief', icon: Shield },
|
||||
{ name: 'Vermögenssicherung', href: '/vermoegenssicherung', icon: Shield },
|
||||
{ name: 'Autoversicherung', href: '/autoversicherung', icon: Truck },
|
||||
{ name: 'Motorradversicherung', href: '/motorradversicherung', icon: Truck },
|
||||
{ name: 'Quadversicherung', href: '/quadversicherung', icon: Truck },
|
||||
{ name: 'Quad', href: '/quadversicherung', icon: Truck },
|
||||
{ name: 'FairMobil', href: '/fairmobil', icon: Truck },
|
||||
{ name: 'Flottenversicherung', href: '/flottenversicherung', icon: Truck },
|
||||
{ name: 'Drittfahrer-Schutz', href: '/drittfahrer-schutz', icon: Shield },
|
||||
{ name: 'Hausratversicherung', href: '/hausratversicherung', icon: Shield },
|
||||
{ name: 'Wohngebäudeversicherung', href: '/hausrat', icon: Shield },
|
||||
{ name: 'Haftpflichtversicherung', href: '/haftpflicht', icon: Shield },
|
||||
{ name: 'Haftpflicht', href: '/haftpflicht', icon: Shield },
|
||||
{ name: 'Rechtsschutzversicherung', href: '/rechtsschutzversicherung', icon: Shield },
|
||||
{ name: 'Tierversicherung', href: '/tierversicherung', icon: Shield },
|
||||
{ name: 'Hundeversicherung', href: '/tierversicherung/hunde', icon: Shield },
|
||||
{ name: 'Pferdeversicherung', href: '/tierversicherung/pferde', icon: Shield },
|
||||
{ name: 'Katzenversicherung', href: '/tierversicherung/katzen', icon: Shield },
|
||||
{ name: 'Familien & Kinder', href: '/familien-kinder', icon: Users },
|
||||
{ name: 'Kinderunfall', href: '/familien-kinder/kinderunfall', icon: Shield },
|
||||
{ name: 'Kinder Gesundheit', href: '/familien-kinder/gesundheit', icon: Shield },
|
||||
{ name: 'Kinder Zahn', href: '/familien-kinder/gesundheit/zahn', icon: Shield },
|
||||
{ name: 'Familien Reise', href: '/familien-kinder/reise', icon: Shield },
|
||||
{ name: 'Familien Vorsorge', href: '/familien-kinder/vorsorge', icon: Shield },
|
||||
{ name: 'Private Krankenversicherung', href: '/private-krankenversicherung', icon: Shield },
|
||||
{ name: 'Zahnzusatzversicherung', href: '/zahnzusatzversicherung', icon: Shield },
|
||||
{ name: 'Auslandsreisekrankenversicherung', href: '/auslandsreisekrankenversicherung', icon: Shield },
|
||||
{ name: 'Gesundheitsvorsorge', href: '/gesundheitsvorsorge', icon: Shield },
|
||||
{ name: 'Altersvorsorge', href: '/altersvorsorge', icon: Shield },
|
||||
{ name: 'Risikoschutz', href: '/risikoschutz', icon: Shield },
|
||||
{ name: 'Sachversicherung', href: '/sachversicherung', icon: Shield },
|
||||
{ name: 'Riester-Rente', href: '/riester-rente', icon: FileText },
|
||||
{ name: 'Tagesgeld', href: '/tagesgeld', icon: FileText },
|
||||
{ name: 'Investmentsparplan', href: '/investmentsparplan', icon: FileText },
|
||||
{ name: 'Depots', href: '/depots', icon: FileText },
|
||||
{ name: 'Beteiligungen', href: '/beteiligungen', icon: FileText },
|
||||
{ name: 'Finanzierung', href: '/finanzierung', icon: FileText },
|
||||
{ name: 'Kreditvergleich', href: '/kreditvergleich', icon: FileText },
|
||||
{ name: 'Kreditabsicherung', href: '/kreditabsicherung', icon: FileText },
|
||||
{ name: 'Brutto-Netto-Rechner', href: '/bruttolnetto', icon: FileText },
|
||||
{ name: 'Senioren Altersvorsorge', href: '/senioren-altersvorsorge', icon: Shield },
|
||||
{ name: 'Senioren Gesundheitsvorsorge', href: '/senioren-gesundheitsvorsorge', icon: Shield },
|
||||
{ name: 'Senioren Risikoschutz', href: '/senioren-risikoschutz', icon: Shield },
|
||||
{ name: 'Geschäftskunden Flottenversicherung', href: '/geschaeftskunden/flottenversicherung', icon: Truck },
|
||||
{ name: 'Geschäftskunden Betriebsrente', href: '/geschaeftskunden/betriebsrente', icon: FileText },
|
||||
{ name: 'Geschäftskunden Betriebshaftpflicht', href: '/geschaeftskunden/betriebshaftpflicht', icon: Shield },
|
||||
{ name: 'Geschäftskunden Betriebsunterbrechung', href: '/geschaeftskunden/betriebsunterbrechung', icon: Shield },
|
||||
{ name: 'Geschäftskunden Betriebskrankenversicherung', href: '/geschaeftskunden/betriebskrankenversicherung', icon: Shield },
|
||||
{ name: 'Geschäftskunden Cyber-Versicherung', href: '/geschaeftskunden/cyber-versicherung', icon: Shield },
|
||||
{ name: 'Geschäftskunden Gebäudeversicherung', href: '/geschaeftskunden/gebaeudeversicherung', icon: Shield },
|
||||
{ name: 'Geschäftskunden Rechtsschutz', href: '/geschaeftskunden/rechtsschutz', icon: Shield },
|
||||
{ name: 'Geschäftskunden Risikoschutz', href: '/geschaeftskunden/risikoschutz', icon: Shield },
|
||||
{ name: 'Geschäftskunden Sachversicherung', href: '/geschaeftskunden/sachversicherung', icon: Shield },
|
||||
{ name: 'Geschäftskunden Umwelthaftpflicht', href: '/geschaeftskunden/umwelthaftpflicht', icon: Shield },
|
||||
{ name: 'Geschäftskunden Vermögenssicherung', href: '/geschaeftskunden/vermoegenssicherung', icon: Shield },
|
||||
];
|
||||
|
||||
const normalizedQuery = searchQuery.trim().toLowerCase();
|
||||
const filteredItems = normalizedQuery
|
||||
? searchItems.filter((item) => item.name.toLowerCase().includes(normalizedQuery))
|
||||
? searchItems
|
||||
.filter((item) => item.name.toLowerCase().includes(normalizedQuery))
|
||||
.sort((a, b) => {
|
||||
const aName = a.name.toLowerCase();
|
||||
const bName = b.name.toLowerCase();
|
||||
const aStarts = aName.startsWith(normalizedQuery);
|
||||
const bStarts = bName.startsWith(normalizedQuery);
|
||||
if (aStarts && !bStarts) return -1;
|
||||
if (!aStarts && bStarts) return 1;
|
||||
return aName.localeCompare(bName, 'de', { sensitivity: 'base' });
|
||||
})
|
||||
: [];
|
||||
|
||||
return (
|
||||
@ -76,7 +144,7 @@ const Header = () => {
|
||||
|
||||
{filteredItems.length > 0 && (
|
||||
<div className="absolute right-0 mt-2 w-72 rounded-md border border-gray-200 bg-white shadow-sm overflow-hidden z-50">
|
||||
{filteredItems.slice(0, 8).map((item) => (
|
||||
{filteredItems.slice(0, 20).map((item) => (
|
||||
<button
|
||||
key={`${item.href}-${item.name}`}
|
||||
type="button"
|
||||
|
||||
@ -44,6 +44,13 @@ i18n
|
||||
'geschaeftskunden',
|
||||
'service',
|
||||
'unfall',
|
||||
'gesundheitsvorsorge',
|
||||
'risikoschutz',
|
||||
'sachversicherung',
|
||||
'familienreise',
|
||||
'familienvorsorge',
|
||||
'familienpakete',
|
||||
'familienhaftpflicht',
|
||||
'vermoegenssicherung',
|
||||
'risikolebensversicherung',
|
||||
'krankheitsschutzbrief',
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import React, { useState } from 'react';
|
||||
import { Link, useNavigate } from 'react-router-dom';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Users, Shield, Phone, Mail, CheckCircle, Download, Home, FileText, Calculator } from 'lucide-react';
|
||||
import Layout from '@/components/Layout';
|
||||
import GeneralNotice from '@/components/GeneralNotice';
|
||||
@ -11,6 +12,7 @@ import RightImageCard from '@/components/tab-pages/RightImageCard';
|
||||
|
||||
const Familienpakete = () => {
|
||||
const navigate = useNavigate();
|
||||
const { t } = useTranslation('familienpakete');
|
||||
const baseUrl = import.meta.env.BASE_URL;
|
||||
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
|
||||
const [activeTab, setActiveTab] = useState('overview');
|
||||
@ -20,7 +22,7 @@ const Familienpakete = () => {
|
||||
<div className="min-h-screen bg-gray-50">
|
||||
<div className="container mx-auto px-4 md:px-6 py-8">
|
||||
<div className="max-w-screen-2xl mx-auto">
|
||||
<h2 className="text-2xl font-bold text-gray-900 mb-6 text-center">Familienpakete</h2>
|
||||
<h2 className="text-2xl font-bold text-gray-900 mb-6 text-center">{t('title', 'Familienpakete')}</h2>
|
||||
|
||||
<div className="bg-white rounded-lg border border-gray-200 shadow-sm">
|
||||
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
|
||||
@ -31,28 +33,28 @@ const Familienpakete = () => {
|
||||
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
|
||||
>
|
||||
<Home className="w-4 h-4 mr-1.5" />
|
||||
Übersicht
|
||||
{t('tabs.overview', 'Übersicht')}
|
||||
</TabsTrigger>
|
||||
<TabsTrigger
|
||||
value="details"
|
||||
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
|
||||
>
|
||||
<FileText className="w-4 h-4 mr-1.5" />
|
||||
Details
|
||||
{t('tabs.details', 'Details')}
|
||||
</TabsTrigger>
|
||||
<TabsTrigger
|
||||
value="form"
|
||||
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
|
||||
>
|
||||
<Phone className="w-4 h-4 mr-1.5" />
|
||||
Anfrage
|
||||
{t('tabs.form', 'Anfrage')}
|
||||
</TabsTrigger>
|
||||
<TabsTrigger
|
||||
value="catalog"
|
||||
className="relative px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 data-[state=active]:bg-blue-600 data-[state=active]:text-white data-[state=active]:shadow-md data-[state=inactive]:bg-white data-[state=inactive]:text-gray-600 data-[state=inactive]:hover:bg-gray-50 data-[state=inactive]:border border-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 !outline-none !ring-0"
|
||||
>
|
||||
<Shield className="w-4 h-4 mr-1.5" />
|
||||
Ratgeber
|
||||
{t('tabs.catalog', 'Ratgeber')}
|
||||
</TabsTrigger>
|
||||
</TabsList>
|
||||
</div>
|
||||
@ -65,22 +67,25 @@ const Familienpakete = () => {
|
||||
<>
|
||||
<div className="inline-flex items-center gap-2 rounded-full bg-green-50 border border-green-200 px-3 py-1 text-sm text-green-800 mb-4">
|
||||
<Users className="w-4 h-4" />
|
||||
<span>Alles aus einer Hand</span>
|
||||
<span>{t('overview.badge', 'Alles aus einer Hand')}</span>
|
||||
</div>
|
||||
<h1 className="text-3xl md:text-4xl font-bold text-gray-900 leading-tight">
|
||||
Familienpakete
|
||||
<span className="block text-green-700">kombinieren & sparen</span>
|
||||
{t('overview.title', 'Familienpakete')}
|
||||
<span className="block text-green-700">{t('overview.subtitle', 'kombinieren & sparen')}</span>
|
||||
</h1>
|
||||
<p className="mt-4 text-gray-600 text-lg">
|
||||
Mit passenden Paketen lassen sich Leistungen bündeln und oft Beiträge optimieren.
|
||||
{t(
|
||||
'overview.description',
|
||||
'Mit passenden Paketen lassen sich Leistungen bündeln und oft Beiträge optimieren.'
|
||||
)}
|
||||
</p>
|
||||
|
||||
<div className="mt-6 flex flex-col sm:flex-row gap-3">
|
||||
<Button onClick={() => setActiveTab('form')} className="bg-green-700 hover:bg-green-800">
|
||||
Beratung anfordern
|
||||
{t('overview.primaryButton', 'Beratung anfordern')}
|
||||
</Button>
|
||||
<Button variant="outline" onClick={() => navigate('/kontakt')} className="border-gray-300">
|
||||
Kontakt
|
||||
{t('overview.secondaryButton', 'Kontakt')}
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
@ -88,15 +93,15 @@ const Familienpakete = () => {
|
||||
<div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3">
|
||||
<Shield className="w-5 h-5 text-green-700" />
|
||||
<div className="text-sm">
|
||||
<div className="font-semibold text-gray-900">Sinnvoll</div>
|
||||
<div className="text-gray-600">Bausteine passend</div>
|
||||
<div className="font-semibold text-gray-900">{t('overview.card1Title', 'Sinnvoll')}</div>
|
||||
<div className="text-gray-600">{t('overview.card1Subtitle', 'Bausteine passend')}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-center gap-3 rounded-lg border border-gray-200 bg-white p-3">
|
||||
<Users className="w-5 h-5 text-green-700" />
|
||||
<div className="text-sm">
|
||||
<div className="font-semibold text-gray-900">Familie</div>
|
||||
<div className="text-gray-600">ein Vertrag</div>
|
||||
<div className="font-semibold text-gray-900">{t('overview.card2Title', 'Familie')}</div>
|
||||
<div className="text-gray-600">{t('overview.card2Subtitle', 'ein Vertrag')}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -117,9 +122,11 @@ const Familienpakete = () => {
|
||||
<div className="p-5">
|
||||
<div className="flex items-center gap-2 text-sm text-gray-600">
|
||||
<Users className="w-4 h-4" />
|
||||
<span>einfach, klar, passend</span>
|
||||
<span>{t('overview.rightCardTitle', 'einfach, klar, passend')}</span>
|
||||
</div>
|
||||
<div className="mt-2 text-sm text-gray-600">
|
||||
{t('overview.rightCardText', 'Wir vergleichen Optionen und erklären verständlich.')}
|
||||
</div>
|
||||
<div className="mt-2 text-sm text-gray-600">Wir vergleichen Optionen und erklären verständlich.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -131,20 +138,20 @@ const Familienpakete = () => {
|
||||
<TwoColumnTab
|
||||
left={
|
||||
<>
|
||||
<h3 className="text-2xl font-bold text-gray-900">Beispiele</h3>
|
||||
<p className="mt-2 text-gray-600">Unfall + Haftpflicht + Zusatz – je nach Bedarf.</p>
|
||||
<h3 className="text-2xl font-bold text-gray-900">{t('details.title', 'Beispiele')}</h3>
|
||||
<p className="mt-2 text-gray-600">{t('details.description', 'Unfall + Haftpflicht + Zusatz – je nach Bedarf.')}</p>
|
||||
|
||||
<Card className="mt-6 border-gray-200">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-lg">Typische Kombinationen</CardTitle>
|
||||
<CardDescription>Beispiele</CardDescription>
|
||||
<CardTitle className="text-lg">{t('details.combosTitle', 'Typische Kombinationen')}</CardTitle>
|
||||
<CardDescription>{t('details.combosSubtitle', 'Beispiele')}</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="text-sm">
|
||||
<div className="space-y-2">
|
||||
{[
|
||||
'Kinderunfall + Haftpflicht',
|
||||
'Zahn + Stationär',
|
||||
'Reise + Ausland',
|
||||
t('details.combo1', 'Kinderunfall + Haftpflicht'),
|
||||
t('details.combo2', 'Zahn + Stationär'),
|
||||
t('details.combo3', 'Reise + Ausland'),
|
||||
].map((row) => (
|
||||
<div key={row} className="flex items-start gap-2">
|
||||
<CheckCircle className="w-4 h-4 text-green-700 mt-0.5" />
|
||||
@ -159,10 +166,10 @@ const Familienpakete = () => {
|
||||
right={
|
||||
<Card className="border-gray-200">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-lg">Tipp</CardTitle>
|
||||
<CardDescription>Keine Doppelungen</CardDescription>
|
||||
<CardTitle className="text-lg">{t('details.tipTitle', 'Tipp')}</CardTitle>
|
||||
<CardDescription>{t('details.tipSubtitle', 'Keine Doppelungen')}</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="text-sm text-gray-700">Wir prüfen, was schon vorhanden ist.</CardContent>
|
||||
<CardContent className="text-sm text-gray-700">{t('details.tipText', 'Wir prüfen, was schon vorhanden ist.')}</CardContent>
|
||||
</Card>
|
||||
}
|
||||
/>
|
||||
@ -172,16 +179,16 @@ const Familienpakete = () => {
|
||||
<TwoColumnTab
|
||||
left={
|
||||
<>
|
||||
<h3 className="text-2xl font-bold text-gray-900">Anfrageformular</h3>
|
||||
<p className="mt-2 text-gray-600">Wir bauen ein Paket passend zu deiner Familie.</p>
|
||||
<h3 className="text-2xl font-bold text-gray-900">{t('form.title', 'Anfrageformular')}</h3>
|
||||
<p className="mt-2 text-gray-600">{t('form.subtitle', 'Wir bauen ein Paket passend zu deiner Familie.')}</p>
|
||||
|
||||
<div className="mt-4 flex flex-col sm:flex-row gap-3">
|
||||
<Link to="/contact" className="inline-flex">
|
||||
<Button className="bg-green-700 hover:bg-green-800">Kontaktformular öffnen</Button>
|
||||
<Button className="bg-green-700 hover:bg-green-800">{t('form.openContact', 'Kontaktformular öffnen')}</Button>
|
||||
</Link>
|
||||
<Button variant="outline" className="gap-2" onClick={() => window.print()}>
|
||||
<Download className="w-4 h-4" />
|
||||
Als PDF speichern
|
||||
{t('form.savePdf', 'Als PDF speichern')}
|
||||
</Button>
|
||||
</div>
|
||||
</>
|
||||
@ -190,17 +197,17 @@ const Familienpakete = () => {
|
||||
<RightImageCard src={assetUrl('iStock-956005062.jpg')} alt="Anfrage">
|
||||
<Card className="border-gray-200">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-lg">Direktkontakt</CardTitle>
|
||||
<CardDescription>Wenn es schnell gehen soll.</CardDescription>
|
||||
<CardTitle className="text-lg">{t('form.directTitle', 'Direktkontakt')}</CardTitle>
|
||||
<CardDescription>{t('form.directSubtitle', 'Wenn es schnell gehen soll.')}</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-3 text-sm text-gray-700">
|
||||
<div className="flex items-center gap-2">
|
||||
<Phone className="w-4 h-4 text-green-700" />
|
||||
<span>Telefon: 0171 / 9864053</span>
|
||||
<span>{t('form.phone', 'Telefon: 0171 / 9864053')}</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Mail className="w-4 h-4 text-green-700" />
|
||||
<span>E-Mail: info@finanzen-mizera.de</span>
|
||||
<span>{t('form.email', 'E-Mail: info@finanzen-mizera.de')}</span>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
@ -213,21 +220,21 @@ const Familienpakete = () => {
|
||||
<TwoColumnTab
|
||||
left={
|
||||
<>
|
||||
<h3 className="text-2xl font-bold text-gray-900">Ratgeber</h3>
|
||||
<p className="mt-2 text-gray-600">So findest du das passende Paket.</p>
|
||||
<h3 className="text-2xl font-bold text-gray-900">{t('catalog.title', 'Ratgeber')}</h3>
|
||||
<p className="mt-2 text-gray-600">{t('catalog.subtitle', 'So findest du das passende Paket.')}</p>
|
||||
|
||||
<Card className="mt-6 border-gray-200">
|
||||
<CardHeader>
|
||||
<CardTitle className="text-lg">Checkliste</CardTitle>
|
||||
<CardDescription>Beispiele</CardDescription>
|
||||
<CardTitle className="text-lg">{t('catalog.checklistTitle', 'Checkliste')}</CardTitle>
|
||||
<CardDescription>{t('catalog.checklistSubtitle', 'Beispiele')}</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="text-sm">
|
||||
<div className="space-y-2">
|
||||
{[
|
||||
'Welche Risiken sind wichtig?',
|
||||
'Budget pro Monat',
|
||||
'Bestehende Verträge prüfen',
|
||||
'Leistung vor Preis',
|
||||
t('catalog.row1', 'Welche Risiken sind wichtig?'),
|
||||
t('catalog.row2', 'Budget pro Monat'),
|
||||
t('catalog.row3', 'Bestehende Verträge prüfen'),
|
||||
t('catalog.row4', 'Leistung vor Preis'),
|
||||
].map((row) => (
|
||||
<div key={row} className="flex items-start gap-2">
|
||||
<CheckCircle className="w-4 h-4 text-green-700 mt-0.5" />
|
||||
|
||||
@ -1,37 +1,45 @@
|
||||
import React, { useEffect } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { Heart, Shield, Plane, ArrowRight } from 'lucide-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Layout from '@/components/Layout';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
|
||||
import Disclaimer from '@/components/Disclaimer';
|
||||
|
||||
const Gesundheitsvorsorge = () => {
|
||||
const { t } = useTranslation('gesundheitsvorsorge');
|
||||
const baseUrl = import.meta.env.BASE_URL;
|
||||
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
|
||||
|
||||
// Add SEO metadata for search
|
||||
useEffect(() => {
|
||||
document.title = 'Gesundheitsvorsorge - Agentur Mizera';
|
||||
document.title = t('meta.title', 'Gesundheitsvorsorge - Agentur Mizera');
|
||||
const metaDescription = document.querySelector('meta[name="description"]');
|
||||
if (metaDescription) {
|
||||
metaDescription.setAttribute('content', 'Gesundheitsvorsorge: Umfassende Vorsorge und Prävention für Ihre Gesundheit. Unabhängige Beratung für alle Bereiche der Gesundheitsvorsorge.');
|
||||
metaDescription.setAttribute(
|
||||
'content',
|
||||
t(
|
||||
'meta.description',
|
||||
'Gesundheitsvorsorge: Umfassende Vorsorge und Prävention für Ihre Gesundheit. Unabhängige Beratung für alle Bereiche der Gesundheitsvorsorge.'
|
||||
)
|
||||
);
|
||||
}
|
||||
}, []);
|
||||
}, [t]);
|
||||
|
||||
const healthTopics = [
|
||||
{
|
||||
title: 'Private Krankenversicherung',
|
||||
title: t('tiles.pkv', 'Private Krankenversicherung'),
|
||||
href: '/private-krankenversicherung',
|
||||
image: assetUrl('head_kranken.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Zahnzusatzversicherung',
|
||||
title: t('tiles.zahn', 'Zahnzusatzversicherung'),
|
||||
href: '/zahnzusatzversicherung',
|
||||
image: assetUrl('Fotolia_45263348_S.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Auslandsreisekrankenversicherung',
|
||||
title: t('tiles.ausland', 'Auslandsreisekrankenversicherung'),
|
||||
href: '/auslandsreisekrankenversicherung',
|
||||
image: assetUrl('iStock-637584740.jpg')
|
||||
}
|
||||
@ -51,18 +59,18 @@ const Gesundheitsvorsorge = () => {
|
||||
<div className="max-w-3xl">
|
||||
<div className="bg-black/40 text-white px-8 py-6 md:px-10 md:py-8 shadow-lg">
|
||||
<h1 className="text-4xl md:text-5xl font-bold text-white mb-6">
|
||||
Gesundheitsvorsorge
|
||||
{t('hero.title', 'Gesundheitsvorsorge')}
|
||||
</h1>
|
||||
<p className="text-xl text-white/90 mb-8 max-w-2xl">
|
||||
Umfassender Schutz für Ihre Gesundheit - im In- und Ausland
|
||||
{t('hero.subtitle', 'Umfassender Schutz für Ihre Gesundheit - im In- und Ausland')}
|
||||
</p>
|
||||
<div className="flex flex-col sm:flex-row gap-4">
|
||||
<Button size="lg" className="bg-blue-600 hover:bg-blue-700 text-white">
|
||||
Jetzt beraten lassen
|
||||
{t('hero.primaryCta', 'Jetzt beraten lassen')}
|
||||
<ArrowRight className="ml-2 w-5 h-5" />
|
||||
</Button>
|
||||
<Button size="lg" variant="outline" className="bg-white/10 border-white text-white hover:bg-white/20">
|
||||
Vergleich starten
|
||||
{t('hero.secondaryCta', 'Vergleich starten')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
@ -76,10 +84,10 @@ const Gesundheitsvorsorge = () => {
|
||||
<div className="max-w-6xl mx-auto">
|
||||
<div className="text-center mb-12">
|
||||
<h2 className="text-3xl font-bold text-gray-900 mb-4">
|
||||
Wählen Sie Ihren Versicherungsschutz
|
||||
{t('tiles.title', 'Wählen Sie Ihren Versicherungsschutz')}
|
||||
</h2>
|
||||
<p className="text-lg text-gray-600 max-w-3xl mx-auto">
|
||||
Wir bieten Ihnen maßgeschneiderte Lösungen für alle Bereiche der Gesundheitsvorsorge
|
||||
{t('tiles.subtitle', 'Wir bieten Ihnen maßgeschneiderte Lösungen für alle Bereiche der Gesundheitsvorsorge')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@ -9,12 +9,14 @@ import HeroSlider from '@/components/HeroSlider';
|
||||
import Disclaimer from '@/components/Disclaimer';
|
||||
|
||||
const Index = () => {
|
||||
const { t } = useTranslation('home');
|
||||
const { t, i18n } = useTranslation('home');
|
||||
const navigate = useNavigate();
|
||||
|
||||
const assetUrl = (fileName: string) => `${import.meta.env.BASE_URL}${encodeURI(fileName)}`;
|
||||
const [yearsOfExperience, setYearsOfExperience] = useState(new Date().getFullYear() - 1994);
|
||||
const [focusTopics, setFocusTopics] = useState<Array<{ title: string; href: string; image: string }>>([]);
|
||||
const [focusTopics, setFocusTopics] = useState<
|
||||
Array<{ id: string; title: string; description: string; cta: string; href: string; image: string }>
|
||||
>([]);
|
||||
|
||||
// Berechne die Erfahrungsjahre seit 1994
|
||||
useEffect(() => {
|
||||
@ -24,32 +26,83 @@ const Index = () => {
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
const assetUrl = (fileName: string) => `${import.meta.env.BASE_URL}${encodeURI(fileName)}`;
|
||||
|
||||
const pool = [
|
||||
{ title: 'KFZ-Fahrzeuge', href: '/kfz', image: import.meta.env.BASE_URL + encodeURI('Fotolia_8654128_XS.jpg') },
|
||||
{ title: 'Privatkunden', href: '/privatkunden', image: import.meta.env.BASE_URL + encodeURI('Fotolia_11700075_XS.jpg') },
|
||||
{ title: 'Senioren', href: '/senioren', image: import.meta.env.BASE_URL + encodeURI('Fotolia_8218560_XS.jpg') },
|
||||
{ title: 'Hausrat', href: '/hausrat', image: import.meta.env.BASE_URL + encodeURI('iStock-482694353.jpg') },
|
||||
{ title: 'Rechtsschutzversicherung', href: '/rechtsschutzversicherung', image: import.meta.env.BASE_URL + encodeURI('iStock-1067720324.jpg') },
|
||||
{ title: 'Unfall – Was jetzt?', href: '/unfall', image: import.meta.env.BASE_URL + encodeURI('iStock-523830845.jpg') },
|
||||
{ title: 'Familien & Kinder', href: '/familien-kinder', image: import.meta.env.BASE_URL + encodeURI('iStock-956005062.jpg') },
|
||||
{ title: 'Tierversicherungen', href: '/tierversicherung', image: import.meta.env.BASE_URL + encodeURI('Tiere/DSC_4029.JPG?v=1') },
|
||||
{ title: 'Finanzen', href: '/finanzen', image: import.meta.env.BASE_URL + encodeURI('iStock-957363908.jpg') },
|
||||
{ title: 'Private Krankenversicherung', href: '/private-krankenversicherung', image: import.meta.env.BASE_URL + encodeURI('head_kranken.jpg') },
|
||||
{ title: 'Zahnzusatzversicherung', href: '/zahnzusatzversicherung', image: import.meta.env.BASE_URL + encodeURI('Fotolia_45263348_S.jpg') },
|
||||
{ title: 'Auslandsreisekrankenversicherung', href: '/auslandsreisekrankenversicherung', image: import.meta.env.BASE_URL + encodeURI('iStock-637584740.jpg') },
|
||||
{ title: 'Gesundheitsvorsorge', href: '/gesundheitsvorsorge', image: import.meta.env.BASE_URL + encodeURI('iStock-819100588.jpg') },
|
||||
{ title: 'Sterbegeldversicherung', href: '/senioren-sterbegeldversicherung', image: import.meta.env.BASE_URL + encodeURI('iStock-939772870.jpg') },
|
||||
{
|
||||
id: 'kfz',
|
||||
title: t('topTopics.items.kfz.title', 'KFZ-Versicherung'),
|
||||
description: t('topTopics.items.kfz.description', 'Tarife vergleichen und schnell zum passenden Schutz.'),
|
||||
cta: t('topTopics.items.kfz.cta', 'Jetzt informieren'),
|
||||
href: '/kfz',
|
||||
image: assetUrl('Fotolia_8654128_XS.jpg'),
|
||||
},
|
||||
{
|
||||
id: 'privatkunden',
|
||||
title: t('topTopics.items.privatkunden.title', 'Privatkunden'),
|
||||
description: t('topTopics.items.privatkunden.description', 'Versicherungen für Alltag, Familie und Zuhause.'),
|
||||
cta: t('topTopics.items.privatkunden.cta', 'Jetzt informieren'),
|
||||
href: '/privatkunden',
|
||||
image: assetUrl('Fotolia_11700075_XS.jpg'),
|
||||
},
|
||||
{
|
||||
id: 'gesundheit',
|
||||
title: t('topTopics.items.gesundheit.title', 'Gesundheitsvorsorge'),
|
||||
description: t('topTopics.items.gesundheit.description', 'Optimal abgesichert – privat und individuell.'),
|
||||
cta: t('topTopics.items.gesundheit.cta', 'Mehr erfahren'),
|
||||
href: '/gesundheitsvorsorge',
|
||||
image: assetUrl('head_kranken.jpg'),
|
||||
},
|
||||
{
|
||||
id: 'zahnzusatz',
|
||||
title: t('topTopics.items.zahnzusatz.title', 'Zahnzusatzversicherung'),
|
||||
description: t('topTopics.items.zahnzusatz.description', 'Zahnersatz und -erhalt nach Maß: Stellen Sie sich die Leistungen nach Ihren Wünschen zusammen.'),
|
||||
cta: t('topTopics.items.zahnzusatz.cta', 'Jetzt informieren'),
|
||||
href: '/zahnzusatzversicherung',
|
||||
image: assetUrl('Fotolia_45263348_S.jpg'),
|
||||
},
|
||||
{
|
||||
id: 'ausland',
|
||||
title: t('topTopics.items.ausland.title', 'Auslandskrankenversicherung'),
|
||||
description: t('topTopics.items.ausland.description', 'Auch im Urlaub bestens abgesichert: weltweiter Schutz für medizinische Versorgung.'),
|
||||
cta: t('topTopics.items.ausland.cta', 'Jetzt informieren'),
|
||||
href: '/auslandsreisekrankenversicherung',
|
||||
image: assetUrl('iStock-637584740.jpg'),
|
||||
},
|
||||
{
|
||||
id: 'sterbegeld',
|
||||
title: t('topTopics.items.sterbegeld.title', 'Sterbegeldversicherung'),
|
||||
description: t('topTopics.items.sterbegeld.description', 'Für Ihre Liebsten vorsorgen: finanzielle Sicherheit im Todesfall.'),
|
||||
cta: t('topTopics.items.sterbegeld.cta', 'Jetzt informieren'),
|
||||
href: '/senioren-sterbegeldversicherung',
|
||||
image: assetUrl('iStock-939772870.jpg'),
|
||||
},
|
||||
{
|
||||
id: 'rechtsschutz',
|
||||
title: t('topTopics.items.rechtsschutz.title', 'Rechtsschutzversicherung'),
|
||||
description: t('topTopics.items.rechtsschutz.description', 'Ihre Rechte schützen – passende Bausteine finden.'),
|
||||
cta: t('topTopics.items.rechtsschutz.cta', 'Mehr erfahren'),
|
||||
href: '/rechtsschutzversicherung',
|
||||
image: assetUrl('iStock-1067720324.jpg'),
|
||||
},
|
||||
{
|
||||
id: 'senioren',
|
||||
title: t('topTopics.items.senioren.title', 'Senioren'),
|
||||
description: t('topTopics.items.senioren.description', 'Sicherheit und Komfort – Lösungen für jede Lebensphase.'),
|
||||
cta: t('topTopics.items.senioren.cta', 'Alle Themen'),
|
||||
href: '/senioren',
|
||||
image: assetUrl('Fotolia_8218560_XS.jpg'),
|
||||
},
|
||||
{
|
||||
id: 'finanzen',
|
||||
title: t('topTopics.items.finanzen.title', 'Finanzen'),
|
||||
description: t('topTopics.items.finanzen.description', 'Vermögensaufbau, Altersvorsorge und Finanzierung.'),
|
||||
cta: t('topTopics.items.finanzen.cta', 'Zur Übersicht'),
|
||||
href: '/finanzen',
|
||||
image: assetUrl('iStock-957363908.jpg'),
|
||||
},
|
||||
];
|
||||
|
||||
setFocusTopics(
|
||||
[...pool].sort((a, b) =>
|
||||
a.title.localeCompare(b.title, 'de-DE', { sensitivity: 'base' })
|
||||
)
|
||||
);
|
||||
}, []);
|
||||
setFocusTopics(pool);
|
||||
}, [i18n.language, t]);
|
||||
|
||||
const benefits = [
|
||||
t('benefits.benefit1', {
|
||||
@ -268,58 +321,155 @@ const Index = () => {
|
||||
]}
|
||||
/>
|
||||
|
||||
{(() => {
|
||||
const extraTopicIds = new Set(['zahnzusatz', 'ausland', 'sterbegeld']);
|
||||
const mainTopics = focusTopics.filter((x) => !extraTopicIds.has(x.id));
|
||||
const extraTopics = focusTopics.filter((x) => extraTopicIds.has(x.id));
|
||||
|
||||
const getExtraMeta = (id: string) => {
|
||||
const priceValue = t(`topTopicsExtra.items.${id}.priceValue`, '');
|
||||
const priceUnit = t(`topTopicsExtra.items.${id}.priceUnit`, '');
|
||||
const pricePrefix = t(`topTopicsExtra.items.${id}.pricePrefix`, 'z.B. ab');
|
||||
const title = t(`topTopicsExtra.items.${id}.title`, '');
|
||||
const description = t(`topTopicsExtra.items.${id}.description`, '');
|
||||
const cta = t(`topTopicsExtra.items.${id}.cta`, 'Jetzt informieren');
|
||||
|
||||
return {
|
||||
title: title || undefined,
|
||||
description: description || undefined,
|
||||
cta,
|
||||
pricePrefix: priceValue ? pricePrefix : undefined,
|
||||
priceValue: priceValue || undefined,
|
||||
priceUnit: priceValue ? priceUnit : undefined,
|
||||
};
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
{/* Tematy dla klientów prywatnych */}
|
||||
<section className="py-16 bg-gradient-to-br from-gray-50 to-blue-50">
|
||||
<div className="container mx-auto px-4">
|
||||
<div className="text-center mb-12">
|
||||
<div className="text-xs uppercase tracking-widest text-gray-500 font-semibold mb-3">
|
||||
{t('topTopics.kicker', 'Bestseller')}
|
||||
</div>
|
||||
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
|
||||
{t('topics.title', 'Unsere Leistungen')}
|
||||
{t('topTopics.title', 'Die beliebtesten Themen')}
|
||||
</h2>
|
||||
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
|
||||
{t('topics.subtitle', 'Die wichtigsten Lösungen für Ihre private Absicherung')}
|
||||
{t('topTopics.subtitle', 'Wählen Sie ein Thema und starten Sie mit wenigen Klicks.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-6 max-w-6xl mx-auto">
|
||||
{focusTopics.map((item) => (
|
||||
<Link
|
||||
key={`${item.href}-${item.title}`}
|
||||
to={item.href}
|
||||
className="group block transform transition-all duration-300 hover:scale-105"
|
||||
>
|
||||
<div className="relative h-44 md:h-50 overflow-hidden rounded-xl shadow-lg group-hover:shadow-2xl transition-shadow duration-300">
|
||||
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6 max-w-6xl mx-auto">
|
||||
{mainTopics.map((item) => (
|
||||
<Card key={item.id} className="overflow-hidden shadow-lg hover:shadow-2xl transition-shadow">
|
||||
<div className="relative h-44">
|
||||
<div
|
||||
className="absolute inset-0 bg-cover bg-center transform transition-transform duration-500 group-hover:scale-110"
|
||||
className="absolute inset-0 bg-cover bg-center"
|
||||
style={{ backgroundImage: `url(${item.image})` }}
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-black/70 via-black/20 to-transparent" />
|
||||
|
||||
{/* Overlay mit Titel und Beschreibung */}
|
||||
<div className="absolute bottom-0 left-0 right-0 p-4 text-white">
|
||||
<div className="text-xl font-black">{item.title.replace('Versicherung', '').trim()}</div>
|
||||
<div className="text-sm text-white/90 mt-1">
|
||||
{item.title === 'KFZ-Fahrzeuge' && t('topics.kfz.description', 'Autoversicherung & Kfz')}
|
||||
{item.title === 'Privatkunden' && t('topics.privatkunden.description', 'Sicherheit & Vorsorge')}
|
||||
{item.title === 'Senioren' && t('topics.senioren.description', 'Wohlbefinden im Alter')}
|
||||
{item.title === 'Hausrat' && t('topics.hausrat.description', 'Schutz für Ihr Zuhause')}
|
||||
{item.title === 'Rechtsschutzversicherung' && t('topics.rechtsschutz.description', 'Ihre Rechte schützen')}
|
||||
{item.title === 'Unfall – Was jetzt?' && t('topics.unfall.description', 'Schnelle Hilfe')}
|
||||
{item.title === 'Familien & Kinder' && t('topics.familie.description', 'Für Ihre Familie')}
|
||||
{item.title === 'Tierversicherungen' && t('topics.tiere.description', 'Schutz für Ihre Haustiere')}
|
||||
{item.title === 'Finanzen' && t('topics.finanzen.description', 'Ihre finanzielle Zukunft')}
|
||||
{item.title === 'Private Krankenversicherung' && t('topics.privateKrankenversicherung.description', 'Optimaler Gesundheitsschutz')}
|
||||
{item.title === 'Zahnzusatzversicherung' && t('topics.zahnzusatzversicherung.description', 'Perfekter Zahnschutz')}
|
||||
{item.title === 'Auslandsreisekrankenversicherung' && t('topics.auslandsreisekrankenversicherung.description', 'Sorgenfrei reisen')}
|
||||
{item.title === 'Gesundheitsvorsorge' && t('topics.gesundheitsvorsorge.description', 'Vorsorge & Prävention')}
|
||||
</div>
|
||||
</div>
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-black/50 via-black/10 to-transparent" />
|
||||
</div>
|
||||
</Link>
|
||||
<CardContent className="p-6">
|
||||
<div className="text-lg font-bold text-gray-900 mb-2">{item.title}</div>
|
||||
<div className="text-sm text-gray-600 mb-5">{item.description}</div>
|
||||
<Button asChild className="w-full">
|
||||
<Link to={item.href}>
|
||||
{item.cta}
|
||||
<ArrowRight className="ml-2 h-4 w-4" />
|
||||
</Link>
|
||||
</Button>
|
||||
</CardContent>
|
||||
</Card>
|
||||
))}
|
||||
</div>
|
||||
|
||||
<div className="max-w-6xl mx-auto mt-12">
|
||||
<div className="text-center mb-8">
|
||||
<div className="text-xs uppercase tracking-widest text-gray-500 font-semibold mb-3">
|
||||
{t('topTopicsExtra.kicker', 'Weitere Themen')}
|
||||
</div>
|
||||
<h3 className="text-2xl md:text-3xl font-bold text-gray-900 mb-3">
|
||||
{t('topTopicsExtra.title', 'Mehr Absicherung – passend zu Ihrer Situation')}
|
||||
</h3>
|
||||
<p className="text-lg text-gray-600 max-w-3xl mx-auto">
|
||||
{t('topTopicsExtra.subtitle', 'Beliebte Zusatzlösungen – schnell erklärt und einfach anfragen.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="grid md:grid-cols-3 gap-6">
|
||||
{extraTopics.map((item) => {
|
||||
const meta = getExtraMeta(item.id);
|
||||
const title = meta.title ?? item.title;
|
||||
const description = meta.description ?? item.description;
|
||||
|
||||
return (
|
||||
<Card
|
||||
key={item.id}
|
||||
className="border border-gray-200 shadow-sm hover:shadow-md transition-shadow rounded-xl overflow-hidden flex flex-col"
|
||||
>
|
||||
<div className="relative h-32 rounded-t-xl overflow-hidden">
|
||||
<div
|
||||
className="absolute inset-0 bg-cover bg-center"
|
||||
style={{ backgroundImage: `url(${item.image})` }}
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-black/30 via-black/0 to-transparent" />
|
||||
</div>
|
||||
<CardContent className="p-6 flex-1 flex flex-col">
|
||||
<div className="text-lg font-semibold text-gray-900 mb-3 leading-snug">{title}</div>
|
||||
<div className="text-sm text-gray-600 mb-6">{description}</div>
|
||||
|
||||
<div className="mt-auto">
|
||||
{meta.priceValue ? (
|
||||
<div className="mb-6">
|
||||
<div className="text-xs text-gray-500 font-semibold mb-2 whitespace-pre-line">
|
||||
{meta.pricePrefix}
|
||||
</div>
|
||||
<div className="text-3xl font-extrabold text-gray-900 leading-none">
|
||||
{meta.priceValue}€
|
||||
</div>
|
||||
{meta.priceUnit ? (
|
||||
<div className="mt-2 text-sm text-gray-600 whitespace-pre-line leading-relaxed">
|
||||
{meta.priceUnit}
|
||||
</div>
|
||||
) : null}
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
<Button
|
||||
asChild
|
||||
className="w-full rounded-full py-6 bg-[#7a0000] hover:bg-[#5f0000] text-white"
|
||||
>
|
||||
<Link to={item.href}>
|
||||
{meta.cta}
|
||||
<ArrowRight className="ml-2 h-4 w-4" />
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="max-w-6xl mx-auto mt-10 flex justify-center">
|
||||
<Button asChild variant="outline" className="px-8">
|
||||
<Link to="/leistungen">
|
||||
{t('topTopics.allTopics', 'Alle Themen anzeigen')}
|
||||
<ArrowRight className="ml-2 h-4 w-4" />
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</>
|
||||
);
|
||||
})()}
|
||||
|
||||
{/* Experience Section */}
|
||||
<section className="py-12 bg-white">
|
||||
<div className="container mx-auto px-4">
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import { useLocation } from "react-router-dom";
|
||||
import { useEffect } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
const NotFound = () => {
|
||||
const location = useLocation();
|
||||
const { t } = useTranslation('common');
|
||||
|
||||
useEffect(() => {
|
||||
console.error("404 Error: User attempted to access non-existent route:", location.pathname);
|
||||
@ -12,9 +14,9 @@ const NotFound = () => {
|
||||
<div className="flex min-h-screen items-center justify-center bg-muted">
|
||||
<div className="text-center">
|
||||
<h1 className="mb-4 text-4xl font-bold">404</h1>
|
||||
<p className="mb-4 text-xl text-muted-foreground">Oops! Page not found</p>
|
||||
<p className="mb-4 text-xl text-muted-foreground">{t('notFound.message', 'Seite nicht gefunden')}</p>
|
||||
<a href="/" className="text-primary underline hover:text-primary/90">
|
||||
Return to Home
|
||||
{t('notFound.backHome', 'Zur Startseite')}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -7,26 +7,28 @@ import Layout from '@/components/Layout';
|
||||
import HeroSlider from '@/components/HeroSlider';
|
||||
|
||||
const Privatkunden = () => {
|
||||
const { t } = useTranslation('privatkunden');
|
||||
const { t, i18n } = useTranslation('privatkunden');
|
||||
const navigate = useNavigate();
|
||||
const baseUrl = import.meta.env.BASE_URL;
|
||||
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
|
||||
const [focusTopics, setFocusTopics] = useState<Array<{ title: string; href: string; image: string }>>([]);
|
||||
const [focusTopics, setFocusTopics] = useState<
|
||||
Array<{ id: string; title: string; href: string; image: string }>
|
||||
>([]);
|
||||
|
||||
useEffect(() => {
|
||||
const pool = [
|
||||
{ title: t('topics.kfz', 'KFZ-Fahrzeuge'), href: '/kfz', image: assetUrl('Fotolia_8654128_XS.jpg') },
|
||||
{ title: t('topics.sach', 'Sachversicherung'), href: '/sachversicherung', image: assetUrl('iStock-943842590.jpg') },
|
||||
{ title: t('topics.gesundheit', 'Gesundheitsvorsorge'), href: '/gesundheitsvorsorge', image: assetUrl('iStock-819100588.jpg') },
|
||||
{ title: t('topics.vermoegen', 'Vermögenssicherung'), href: '/vermoegenssicherung', image: assetUrl('iStock-495809266.jpg') },
|
||||
{ title: t('topics.risiko', 'Risikoschutz'), href: '/risikoschutz', image: assetUrl('iStock-970876204.jpg') },
|
||||
{ title: t('topics.altersvorsorge', 'Altersvorsorge'), href: '/altersvorsorge', image: assetUrl('Fotolia_67327775_XS.jpg') },
|
||||
{ id: 'kfz', title: t('topics.kfz', 'KFZ-Fahrzeuge'), href: '/kfz', image: assetUrl('Fotolia_8654128_XS.jpg') },
|
||||
{ id: 'sach', title: t('topics.sach', 'Sachversicherung'), href: '/sachversicherung', image: assetUrl('iStock-943842590.jpg') },
|
||||
{ id: 'gesundheit', title: t('topics.gesundheit', 'Gesundheitsvorsorge'), href: '/gesundheitsvorsorge', image: assetUrl('iStock-819100588.jpg') },
|
||||
{ id: 'vermoegen', title: t('topics.vermoegen', 'Vermögenssicherung'), href: '/vermoegenssicherung', image: assetUrl('iStock-495809266.jpg') },
|
||||
{ id: 'risiko', title: t('topics.risiko', 'Risikoschutz'), href: '/risikoschutz', image: assetUrl('iStock-970876204.jpg') },
|
||||
{ id: 'altersvorsorge', title: t('topics.altersvorsorge', 'Altersvorsorge'), href: '/altersvorsorge', image: assetUrl('Fotolia_67327775_XS.jpg') },
|
||||
];
|
||||
|
||||
setFocusTopics(
|
||||
[...pool].sort((a, b) => a.title.localeCompare(b.title, 'de', { sensitivity: 'base' }))
|
||||
[...pool].sort((a, b) => a.title.localeCompare(b.title, i18n.language || 'de', { sensitivity: 'base' }))
|
||||
);
|
||||
}, []);
|
||||
}, [i18n.language, t]);
|
||||
|
||||
const services = [
|
||||
{
|
||||
@ -45,32 +47,54 @@ const Privatkunden = () => {
|
||||
{
|
||||
icon: Shield,
|
||||
title: t('services.sach.title', 'Sachversicherung'),
|
||||
description: 'Ihr Hab und Gut bestens abgesichert',
|
||||
features: ['Hausratversicherung', 'Unfallversicherung']
|
||||
description: t('services.sach.description', 'Ihr Hab und Gut bestens abgesichert'),
|
||||
features: [
|
||||
t('services.sach.features.hausrat', 'Hausratversicherung'),
|
||||
t('services.sach.features.unfall', 'Unfallversicherung'),
|
||||
]
|
||||
},
|
||||
{
|
||||
icon: Shield,
|
||||
title: 'Gesundheitsvorsorge',
|
||||
description: 'Optimale medizinische Versorgung für die ganze Familie',
|
||||
features: ['Private Krankenversicherung', 'Zahnzusatzversicherung', 'Auslandsreisekrankenversicherung', 'Krankentagegeldversicherung']
|
||||
title: t('services.gesundheit.title', 'Gesundheitsvorsorge'),
|
||||
description: t('services.gesundheit.description', 'Optimale medizinische Versorgung für die ganze Familie'),
|
||||
features: [
|
||||
t('services.gesundheit.features.pkv', 'Private Krankenversicherung'),
|
||||
t('services.gesundheit.features.zahn', 'Zahnzusatzversicherung'),
|
||||
t('services.gesundheit.features.ausland', 'Auslandsreisekrankenversicherung'),
|
||||
t('services.gesundheit.features.ktg', 'Krankentagegeldversicherung'),
|
||||
]
|
||||
},
|
||||
{
|
||||
icon: Shield,
|
||||
title: 'Vermögenssicherung',
|
||||
description: 'Schutz Ihres Lebenswerks und Ihrer Familie',
|
||||
features: ['Lebensversicherung', 'Risikolebensversicherung', 'Wohngebäudeversicherung', 'Hausratversicherung']
|
||||
title: t('services.vermoegen.title', 'Vermögenssicherung'),
|
||||
description: t('services.vermoegen.description', 'Schutz Ihres Lebenswerks und Ihrer Familie'),
|
||||
features: [
|
||||
t('services.vermoegen.features.lebensversicherung', 'Lebensversicherung'),
|
||||
t('services.vermoegen.features.risikolebensversicherung', 'Risikolebensversicherung'),
|
||||
t('services.vermoegen.features.wohngebaeudeversicherung', 'Wohngebäudeversicherung'),
|
||||
t('services.vermoegen.features.hausratversicherung', 'Hausratversicherung'),
|
||||
]
|
||||
},
|
||||
{
|
||||
icon: Shield,
|
||||
title: 'Risikoschutz',
|
||||
description: 'Umfassender Schutz für alle Lebensbereiche',
|
||||
features: ['Unfallversicherung', 'Haftpflichtversicherung', 'Rechtsschutzversicherung']
|
||||
title: t('services.risiko.title', 'Risikoschutz'),
|
||||
description: t('services.risiko.description', 'Umfassender Schutz für alle Lebensbereiche'),
|
||||
features: [
|
||||
t('services.risiko.features.unfallversicherung', 'Unfallversicherung'),
|
||||
t('services.risiko.features.haftpflichtversicherung', 'Haftpflichtversicherung'),
|
||||
t('services.risiko.features.rechtsschutzversicherung', 'Rechtsschutzversicherung'),
|
||||
]
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: 'Altersvorsorge',
|
||||
description: 'Sichere Rente und finanzielle Unabhängigkeit',
|
||||
features: ['Private Rentenversicherung', 'Riester-Rente', 'Rürup-Rente', 'Betriebliche Altersvorsorge']
|
||||
title: t('services.altersvorsorge.title', 'Altersvorsorge'),
|
||||
description: t('services.altersvorsorge.description', 'Sichere Rente und finanzielle Unabhängigkeit'),
|
||||
features: [
|
||||
t('services.altersvorsorge.features.privateRente', 'Private Rentenversicherung'),
|
||||
t('services.altersvorsorge.features.riesterRente', 'Riester-Rente'),
|
||||
t('services.altersvorsorge.features.ruerupRente', 'Rürup-Rente'),
|
||||
t('services.altersvorsorge.features.bav', 'Betriebliche Altersvorsorge'),
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@ -136,17 +160,17 @@ const Privatkunden = () => {
|
||||
|
||||
{/* Links unter dem Bild */}
|
||||
<div className="mt-4 p-4 bg-white rounded-lg shadow-md">
|
||||
{item.title === 'KFZ-Fahrzeuge' && (
|
||||
{item.id === 'kfz' && (
|
||||
<div className="space-y-2">
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div>
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
|
||||
<div className="grid grid-cols-1 gap-2">
|
||||
{[
|
||||
{ title: 'Autoversicherung', href: '/autoversicherung' },
|
||||
{ title: 'Motorradversicherung', href: '/motorradversicherung' },
|
||||
{ title: 'Quadversicherung', href: '/quadversicherung' },
|
||||
{ title: 'FairMobil', href: '/fairmobil' },
|
||||
{ title: 'Drittfahrer-Schutz', href: '/drittfahrer-schutz' },
|
||||
{ title: 'Flottenversicherung', href: '/flottenversicherung' }
|
||||
{ title: t('details.kfz.autoversicherung', 'Autoversicherung'), href: '/autoversicherung' },
|
||||
{ title: t('details.kfz.motorradversicherung', 'Motorradversicherung'), href: '/motorradversicherung' },
|
||||
{ title: t('details.kfz.quadversicherung', 'Quadversicherung'), href: '/quadversicherung' },
|
||||
{ title: t('details.kfz.fairmobil', 'FairMobil'), href: '/fairmobil' },
|
||||
{ title: t('details.kfz.drittfahrerSchutz', 'Drittfahrer-Schutz'), href: '/drittfahrer-schutz' },
|
||||
{ title: t('details.kfz.flottenversicherung', 'Flottenversicherung'), href: '/flottenversicherung' }
|
||||
].map((link) => (
|
||||
<Link
|
||||
key={link.href}
|
||||
@ -163,14 +187,14 @@ const Privatkunden = () => {
|
||||
)}
|
||||
|
||||
{/* Zusätzliche Links unter dem Bild für Sachversicherung */}
|
||||
{item.title === 'Sachversicherung' && (
|
||||
{item.id === 'sach' && (
|
||||
<div className="space-y-2">
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div>
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
|
||||
<div className="grid grid-cols-1 gap-2">
|
||||
{[
|
||||
{ title: 'Hausratversicherung', href: '/hausratversicherung' },
|
||||
{ title: 'Wohngebäudeversicherung', href: '/hausrat' },
|
||||
{ title: 'Unfallversicherung', href: '/unfall' }
|
||||
{ title: t('details.sach.hausratversicherung', 'Hausratversicherung'), href: '/hausratversicherung' },
|
||||
{ title: t('details.sach.wohngebaeudeversicherung', 'Wohngebäudeversicherung'), href: '/hausrat' },
|
||||
{ title: t('details.sach.unfallversicherung', 'Unfallversicherung'), href: '/unfall' }
|
||||
].map((link) => (
|
||||
<Link
|
||||
key={link.href}
|
||||
@ -187,14 +211,14 @@ const Privatkunden = () => {
|
||||
)}
|
||||
|
||||
{/* Zusätzliche Links unter dem Bild für Gesundheitsvorsorge */}
|
||||
{item.title === 'Gesundheitsvorsorge' && (
|
||||
{item.id === 'gesundheit' && (
|
||||
<div className="space-y-2">
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div>
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
|
||||
<div className="grid grid-cols-1 gap-2">
|
||||
{[
|
||||
{ title: 'Private Krankenversicherung', href: '/private-krankenversicherung' },
|
||||
{ title: 'Zahnzusatzversicherung', href: '/zahnzusatzversicherung' },
|
||||
{ title: 'Auslandsreisekrankenversicherung', href: '/auslandsreisekrankenversicherung' }
|
||||
{ title: t('details.gesundheit.privateKrankenversicherung', 'Private Krankenversicherung'), href: '/private-krankenversicherung' },
|
||||
{ title: t('details.gesundheit.zahnzusatzversicherung', 'Zahnzusatzversicherung'), href: '/zahnzusatzversicherung' },
|
||||
{ title: t('details.gesundheit.auslandsreisekrankenversicherung', 'Auslandsreisekrankenversicherung'), href: '/auslandsreisekrankenversicherung' }
|
||||
].map((link) => (
|
||||
<Link
|
||||
key={`${link.href}-${link.title}`}
|
||||
@ -211,14 +235,14 @@ const Privatkunden = () => {
|
||||
)}
|
||||
|
||||
{/* Zusätzliche Links unter dem Bild für Vermögenssicherung */}
|
||||
{item.title === 'Vermögenssicherung' && (
|
||||
{item.id === 'vermoegen' && (
|
||||
<div className="space-y-2">
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div>
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
|
||||
<div className="grid grid-cols-1 gap-2">
|
||||
{[
|
||||
{ title: 'Lebensversicherung', href: '/finanzen' },
|
||||
{ title: 'Risikolebensversicherung', href: '/finanzen' },
|
||||
{ title: 'Wohngebäudeversicherung', href: '/hausrat' }
|
||||
{ title: t('details.vermoegen.lebensversicherung', 'Lebensversicherung'), href: '/finanzen' },
|
||||
{ title: t('details.vermoegen.risikolebensversicherung', 'Risikolebensversicherung'), href: '/finanzen' },
|
||||
{ title: t('details.vermoegen.wohngebaeudeversicherung', 'Wohngebäudeversicherung'), href: '/hausrat' }
|
||||
].map((link) => (
|
||||
<Link
|
||||
key={`${link.href}-${link.title}`}
|
||||
@ -235,13 +259,13 @@ const Privatkunden = () => {
|
||||
)}
|
||||
|
||||
{/* Zusätzliche Links unter dem Bild für Risikoschutz */}
|
||||
{item.title === 'Risikoschutz' && (
|
||||
{item.id === 'risiko' && (
|
||||
<div className="space-y-2">
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div>
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
|
||||
<div className="grid grid-cols-1 gap-2">
|
||||
{[
|
||||
{ title: 'Unfallversicherung', href: '/unfall' },
|
||||
{ title: 'Rechtsschutzversicherung', href: '/service' }
|
||||
{ title: t('details.risiko.unfallversicherung', 'Unfallversicherung'), href: '/unfall' },
|
||||
{ title: t('details.risiko.rechtsschutzversicherung', 'Rechtsschutzversicherung'), href: '/service' }
|
||||
].map((link) => (
|
||||
<Link
|
||||
key={`${link.href}-${link.title}`}
|
||||
@ -258,15 +282,15 @@ const Privatkunden = () => {
|
||||
)}
|
||||
|
||||
{/* Zusätzliche Links unter dem Bild für Altersvorsorge */}
|
||||
{item.title === 'Altersvorsorge' && (
|
||||
{item.id === 'altersvorsorge' && (
|
||||
<div className="space-y-2">
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">Details:</div>
|
||||
<div className="text-xs uppercase tracking-wide text-gray-500 font-semibold mb-3">{t('details.label', 'Details:')}</div>
|
||||
<div className="grid grid-cols-1 gap-2">
|
||||
{[
|
||||
{ title: 'Private Rentenversicherung', href: '/finanzen' },
|
||||
{ title: 'Riester-Rente', href: '/finanzen' },
|
||||
{ title: 'Rürup-Rente', href: '/finanzen' },
|
||||
{ title: 'Betriebliche Altersvorsorge', href: '/finanzen' }
|
||||
{ title: t('details.altersvorsorge.privateRentenversicherung', 'Private Rentenversicherung'), href: '/finanzen' },
|
||||
{ title: t('details.altersvorsorge.riester', 'Riester-Rente'), href: '/finanzen' },
|
||||
{ title: t('details.altersvorsorge.ruerup', 'Rürup-Rente'), href: '/finanzen' },
|
||||
{ title: t('details.altersvorsorge.bav', 'Betriebliche Altersvorsorge'), href: '/finanzen' }
|
||||
].map((link) => (
|
||||
<Link
|
||||
key={`${link.href}-${link.title}`}
|
||||
@ -296,22 +320,22 @@ const Privatkunden = () => {
|
||||
<div className="mb-20">
|
||||
<div className="text-center mb-12">
|
||||
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 mb-4">
|
||||
Ihre Vorteile als Privatkunde
|
||||
{t('benefits.title', 'Ihre Vorteile als Privatkunde')}
|
||||
</h2>
|
||||
<p className="text-lg text-gray-600 max-w-2xl mx-auto">
|
||||
Wir bieten Ihnen maßgeschneiderte Lösungen für Ihre persönliche Absicherung
|
||||
{t('benefits.subtitle', 'Wir bieten Ihnen maßgeschneiderte Lösungen für Ihre persönliche Absicherung')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-gradient-to-r from-blue-50 to-indigo-50 rounded-2xl p-10 shadow-xl">
|
||||
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||
{[
|
||||
{ icon: Shield, title: 'Umfassender Schutz', desc: 'Für alle Lebensbereiche' },
|
||||
{ icon: Users, title: 'Familienfreundlich', desc: 'Optimale Lösungen für Familien' },
|
||||
{ icon: TrendingUp, title: 'Vertragsoptimierung', desc: 'Bestehende Verträge verbessern' },
|
||||
{ icon: Clock, title: 'Schnelle Hilfe', desc: 'Rasche Schadenabwicklung' },
|
||||
{ icon: DollarSign, title: 'Transparente Kosten', desc: 'Keine versteckten Gebühren' },
|
||||
{ icon: MapPin, title: 'Persönliche Betreuung', desc: 'Vor Ort in Ihrer Nähe' }
|
||||
{ icon: Shield, title: t('benefits.items.protection.title', 'Umfassender Schutz'), desc: t('benefits.items.protection.desc', 'Für alle Lebensbereiche') },
|
||||
{ icon: Users, title: t('benefits.items.family.title', 'Familienfreundlich'), desc: t('benefits.items.family.desc', 'Optimale Lösungen für Familien') },
|
||||
{ icon: TrendingUp, title: t('benefits.items.optimization.title', 'Vertragsoptimierung'), desc: t('benefits.items.optimization.desc', 'Bestehende Verträge verbessern') },
|
||||
{ icon: Clock, title: t('benefits.items.fastHelp.title', 'Schnelle Hilfe'), desc: t('benefits.items.fastHelp.desc', 'Rasche Schadenabwicklung') },
|
||||
{ icon: DollarSign, title: t('benefits.items.transparentCosts.title', 'Transparente Kosten'), desc: t('benefits.items.transparentCosts.desc', 'Keine versteckten Gebühren') },
|
||||
{ icon: MapPin, title: t('benefits.items.localSupport.title', 'Persönliche Betreuung'), desc: t('benefits.items.localSupport.desc', 'Vor Ort in Ihrer Nähe') }
|
||||
].map((benefit, index) => {
|
||||
const Icon = benefit.icon;
|
||||
return (
|
||||
@ -333,19 +357,19 @@ const Privatkunden = () => {
|
||||
{/* Contact Section */}
|
||||
<div className="bg-gradient-to-r from-blue-600 to-indigo-600 rounded-2xl p-10 text-center text-white shadow-2xl">
|
||||
<h2 className="text-3xl md:text-4xl font-bold mb-4">
|
||||
Kontaktieren Sie uns
|
||||
{t('contactCta.title', 'Kontaktieren Sie uns')}
|
||||
</h2>
|
||||
<p className="text-lg text-blue-100 mb-8 max-w-2xl mx-auto">
|
||||
Lassen Sie sich unverbindlich zu Ihren Privatkunden-Lösungen beraten.
|
||||
{t('contactCta.subtitle', 'Lassen Sie sich unverbindlich zu Ihren Privatkunden-Lösungen beraten.')}
|
||||
</p>
|
||||
<div className="flex flex-col sm:flex-row gap-4 justify-center">
|
||||
<Button className="bg-white text-blue-600 hover:bg-gray-100 px-8 py-3 text-lg font-semibold shadow-lg">
|
||||
<Phone className="h-5 w-5 mr-2" />
|
||||
Jetzt anrufen
|
||||
{t('contactCta.call', 'Jetzt anrufen')}
|
||||
</Button>
|
||||
<Button variant="outline" className="border-white text-white hover:bg-white hover:text-blue-600 px-8 py-3 text-lg font-semibold">
|
||||
<Mail className="h-5 w-5 mr-2" />
|
||||
Angebot anfordern
|
||||
{t('contactCta.requestOffer', 'Angebot anfordern')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,42 +1,44 @@
|
||||
import React from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { Shield, Heart, Car, Home, Briefcase, Users } from 'lucide-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Layout from '@/components/Layout';
|
||||
import { Card } from '@/components/ui/card';
|
||||
import Disclaimer from '@/components/Disclaimer';
|
||||
|
||||
const Risikoschutz = () => {
|
||||
const { t } = useTranslation('risikoschutz');
|
||||
const baseUrl = import.meta.env.BASE_URL;
|
||||
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
|
||||
|
||||
const topics = [
|
||||
{
|
||||
title: 'Unfallversicherung',
|
||||
title: t('topics.unfall', 'Unfallversicherung'),
|
||||
href: '/unfall',
|
||||
image: assetUrl('iStock-970876204.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Berufsunfähigkeitsversicherung',
|
||||
title: t('topics.bu', 'Berufsunfähigkeitsversicherung'),
|
||||
href: '/berufsunfaehigkeitsversicherung',
|
||||
image: assetUrl('iStock-957363908.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Haftpflichtversicherung',
|
||||
title: t('topics.haftpflicht', 'Haftpflichtversicherung'),
|
||||
href: '/haftpflichtversicherung',
|
||||
image: assetUrl('iStock-943842590.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Rechtsschutzversicherung',
|
||||
title: t('topics.rechtsschutz', 'Rechtsschutzversicherung'),
|
||||
href: '/rechtsschutzversicherung',
|
||||
image: assetUrl('Fotolia_8654128_XS.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Tierhalterhaftpflicht',
|
||||
title: t('topics.tierhalter', 'Tierhalterhaftpflicht'),
|
||||
href: '/tierhalterhaftpflicht',
|
||||
image: assetUrl('iStock-495809266.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Dread-Disease Versicherung',
|
||||
title: t('topics.dread', 'Dread-Disease Versicherung'),
|
||||
href: '/dread-disease-versicherung',
|
||||
image: assetUrl('Fotolia_67327775_XS.jpg')
|
||||
}
|
||||
@ -50,10 +52,10 @@ const Risikoschutz = () => {
|
||||
<div className="container mx-auto px-4">
|
||||
<div className="max-w-4xl mx-auto text-center">
|
||||
<h1 className="text-4xl font-bold text-gray-900 mb-6">
|
||||
Risikoschutz
|
||||
{t('hero.title', 'Risikoschutz')}
|
||||
</h1>
|
||||
<p className="text-xl text-gray-600 mb-8">
|
||||
Umfassender Schutz für Sie und Ihre Familie bei unvorhergesehenen Ereignissen
|
||||
{t('hero.subtitle', 'Umfassender Schutz für Sie und Ihre Familie bei unvorhergesehenen Ereignissen')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,41 +1,42 @@
|
||||
import React from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { Home, Car, Fire, Zap, Shield, Phone } from 'lucide-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Layout from '@/components/Layout';
|
||||
import { Card } from '@/components/ui/card';
|
||||
|
||||
const Sachversicherung = () => {
|
||||
const { t } = useTranslation('sachversicherung');
|
||||
const baseUrl = import.meta.env.BASE_URL;
|
||||
const assetUrl = (fileName: string) => `${baseUrl}${encodeURI(fileName)}`;
|
||||
|
||||
const topics = [
|
||||
{
|
||||
title: 'Hausratversicherung',
|
||||
title: t('topics.hausrat', 'Hausratversicherung'),
|
||||
href: '/hausratversicherung',
|
||||
image: assetUrl('iStock-943842590.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Wohngebäudeversicherung',
|
||||
title: t('topics.wohngebaeude', 'Wohngebäudeversicherung'),
|
||||
href: '/hausrat',
|
||||
image: assetUrl('iStock-495809266.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Haftpflichtversicherung',
|
||||
title: t('topics.haftpflicht', 'Haftpflichtversicherung'),
|
||||
href: '/haftpflichtversicherung',
|
||||
image: assetUrl('Fotolia_67327775_XS.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Tierversicherung',
|
||||
title: t('topics.tiere', 'Tierversicherung'),
|
||||
href: '/tierversicherung',
|
||||
image: assetUrl('iStock-970876204.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Rechtsschutzversicherung',
|
||||
title: t('topics.rechtsschutz', 'Rechtsschutzversicherung'),
|
||||
href: '/rechtsschutzversicherung',
|
||||
image: assetUrl('iStock-957363908.jpg')
|
||||
},
|
||||
{
|
||||
title: 'Elektrogeräteversicherung',
|
||||
title: t('topics.elektro', 'Elektrogeräteversicherung'),
|
||||
href: '/elektrogeraeteversicherung',
|
||||
image: assetUrl('Fotolia_8654128_XS.jpg')
|
||||
}
|
||||
@ -49,10 +50,10 @@ const Sachversicherung = () => {
|
||||
<div className="container mx-auto px-4">
|
||||
<div className="max-w-4xl mx-auto text-center">
|
||||
<h1 className="text-4xl font-bold text-gray-900 mb-6">
|
||||
Sachversicherung
|
||||
{t('hero.title', 'Sachversicherung')}
|
||||
</h1>
|
||||
<p className="text-xl text-gray-600 mb-8">
|
||||
Schutz für Ihr Hab und Gut - von Hausrat bis Immobilie
|
||||
{t('hero.subtitle', 'Schutz für Ihr Hab und Gut - von Hausrat bis Immobilie')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user