Formular für Schadensmeldungen
Schaden melden. Senden Sie den Sachverhalt, keine Unterlagen, die für die Erstmeldung nicht nötig sind.
Dieses Formular ist kein Versicherungsvertrag und keine rechtsverbindliche Schadensmeldung. Senden Sie nur, was für ein Angebot oder die Erfassung der Anfrage nötig ist. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten – lassen Sie sie weg, sofern die Anfrage ohne sie bearbeitet werden kann.
Aktivieren Sie Anhänge in Ihren Formulareinstellungen und installieren Sie Turnstile auf Ihrer Website. PDF-, JPEG- und PNG-Dateien mit einer Größe von bis zu 5 MiB pro Datei werden privat gespeichert; für den Download ist die Anmeldung des Eigentümers erforderlich.
Vorschau
Formularcode
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Formular für Schadensmeldungen</title>
<style>
body { font-family: "Segoe UI", sans-serif; color: #12263a; margin: 0; background: #fff; }
main { max-width: 640px; margin: 0 auto; padding: 32px 20px 64px; }
h1 { font-size: 28px; font-weight: 650; letter-spacing: -0.02em; line-height: 1.2; }
h2 { font-size: 18px; margin: 18px 0 0; }
p { line-height: 1.5; }
form { display: grid; gap: 14px; position: relative; }
.field { display: grid; gap: 6px; }
label span, .check span { font-size: 14px; }
input, select, textarea { font: inherit; color: inherit; padding: 10px 12px; border: 1px solid #b4bdce; border-radius: 8px; width: 100%; box-sizing: border-box; background: #fff; }
textarea { min-height: 96px; }
.check { display: flex; gap: 8px; align-items: flex-start; }
.check input { width: auto; margin-top: 4px; }
button { background: #3c4ad8; color: #fff; border: 0; border-radius: 8px; padding: 12px 18px; font: inherit; cursor: pointer; }
.note { background: #fff6eb; padding: 12px 14px; border-radius: 8px; }
form [data-show-if] { display: none; }
form:has(select[name="police_report"] option[value="yes"]:checked) [data-show-if="police_report"][data-show-equals="yes"] { display: grid; }
</style>
</head>
<body>
<main>
<h1 data-i18n="title">Formular für Schadensmeldungen</h1>
<p data-i18n="lede">Schaden melden. Senden Sie den Sachverhalt, keine Unterlagen, die für die Erstmeldung nicht nötig sind.</p>
<p class="note" data-i18n="disclaimer">Dieses Formular ist kein Versicherungsvertrag und keine rechtsverbindliche Schadensmeldung. Senden Sie nur, was für ein Angebot oder die Erfassung der Anfrage nötig ist. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten – lassen Sie sie weg, sofern die Anfrage ohne sie bearbeitet werden kann.</p>
<form id="fg-form" action="https://formgong.com/submit" method="POST" enctype="multipart/form-data" data-sitekey="" data-lang="de">
<input type="hidden" name="access_key" value="fk_your_access_key">
<input type="hidden" name="_lang" value="de">
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden"><label>Leave this field empty<input name="botcheck" tabindex="-1" autocomplete="off"></label></div>
<section><h2 data-i18n="section.policy">Policy</h2>
<div class="field"><label for="fg-policy_number"><span data-i18n="policy_number">Policy number</span></label><input id="fg-policy_number" name="policy_number" type="text" required maxlength="40"></div>
<div class="field"><label for="fg-cover_type"><span data-i18n="cover_type">Cover</span></label><select id="fg-cover_type" name="cover_type" required><option value="">—</option><option value="auto" data-i18n="cover_type.auto">Car</option><option value="home" data-i18n="cover_type.home">Home</option><option value="travel" data-i18n="cover_type.travel">Travel</option><option value="other" data-i18n="cover_type.other">Other</option></select></div>
<div class="field"><label for="fg-incident_date"><span data-i18n="incident_date">Date of the incident</span></label><input id="fg-incident_date" name="incident_date" type="date" required></div></section>
<section><h2 data-i18n="section.incident">What happened</h2>
<div class="field"><label for="fg-city"><span data-i18n="city">City</span></label><input id="fg-city" name="city" type="text" required maxlength="80" autocomplete="address-level2"></div>
<div class="field"><label for="fg-description"><span data-i18n="description">What happened?</span></label><textarea id="fg-description" name="description" required maxlength="1000"></textarea></div>
<div class="field"><label for="fg-police_report"><span data-i18n="police_report">Was a police report filed?</span></label><select id="fg-police_report" name="police_report" required><option value="">—</option><option value="yes" data-i18n="police_report.yes">Yes</option><option value="no" data-i18n="police_report.no">No</option></select></div>
<div class="field" data-show-if="police_report" data-show-equals="yes"><label for="fg-police_ref"><span data-i18n="police_ref">Report number</span></label><input id="fg-police_ref" name="police_ref" type="text" maxlength="40"></div></section>
<section><h2 data-i18n="section.contact">Contact</h2>
<div class="field"><label for="fg-name"><span data-i18n="name">Name</span></label><input id="fg-name" name="name" type="text" required maxlength="80" autocomplete="name"></div>
<div class="field"><label for="fg-email"><span data-i18n="email">Email</span></label><input id="fg-email" name="email" type="email" required maxlength="120" autocomplete="email"></div>
<div class="field"><label for="fg-phone"><span data-i18n="phone">Phone</span></label><input id="fg-phone" name="phone" type="tel" required maxlength="40" autocomplete="tel"></div></section>
<section><h2 data-i18n="section.evidence">Photos</h2>
<div class="field"><label for="fg-photo"><span data-i18n="photo">One photo, up to 5 MiB</span></label><input id="fg-photo" name="photo" type="file" accept=".jpg,.jpeg,.png"></div>
<div class="field"><label for="fg-photo_url"><span data-i18n="photo_url">Or a link to photos</span></label><input id="fg-photo_url" name="photo_url" type="url" maxlength="300"></div></section>
<section><h2 data-i18n="section.consent">Consent</h2>
<div class="field"><label class="check"><input id="fg-consent_contact" name="consent_contact" type="checkbox" value="yes" required><span data-i18n="consent_contact">I agree to be contacted about this request.</span></label></div>
<div class="field"><label class="check"><input id="fg-consent_privacy" name="consent_privacy" type="checkbox" value="yes" required><span data-i18n="consent_privacy">I agree that these answers are stored so the request can be handled.</span></label></div></section>
<!-- Set data-sitekey on this form to YOUR_TURNSTILE_SITE_KEY. Required for attachments. -->
<div data-turnstile></div>
<button type="submit" data-i18n="submit">Senden</button>
<p data-status role="status"></p>
</form>
</main>
<script type="application/json" id="fg-labels">{"uk":{"title":"Форма заяви про страховий випадок","lede":"Реєстрація випадку. Опишіть, що сталося, без документів, які не потрібні для першого повідомлення.","submit":"Надіслати","thanks":"Надіслано. Дякуємо.","file_too_big":"До 3 файлів, по 5 MiB, разом до 10 MiB.","error":"Не вдалося надіслати. Спробуйте ще раз.","disclaimer":"Ця форма не є договором страхування і не є юридичним записом про випадок. Надсилайте лише те, що потрібно для розрахунку чи реєстрації заявки. Дані про здоров'я — особлива категорія за GDPR: не додавайте їх, якщо без них заявку можна обробити.","section.policy":"Поліс","policy_number":"Номер поліса","cover_type":"Покриття","cover_type.auto":"Авто","cover_type.home":"Житло","cover_type.travel":"Подорож","cover_type.other":"Інше","incident_date":"Дата випадку","section.incident":"Що сталося","city":"Місто","description":"Що сталося?","police_report":"Чи є заява в поліцію?","police_report.yes":"Так","police_report.no":"Ні","police_ref":"Номер заяви","section.contact":"Контакт","name":"Ім'я","email":"Електронна пошта","phone":"Телефон","section.evidence":"Фото","photo":"Одне фото, до 5 MiB","photo_url":"Або посилання на фото","section.consent":"Згода","consent_contact":"Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.","consent_privacy":"Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."},"en":{"title":"Insurance claim form","lede":"Register a claim. Send the facts of what happened, not documents you do not need for the first notice.","submit":"Send","thanks":"Sent. Thank you.","file_too_big":"Up to 3 files, 5 MiB each and 10 MiB combined.","error":"Could not send. Please try again.","disclaimer":"This form is not an insurance contract or a legal record of a claim. Send only what is needed to quote or register the request. Health details are special-category data under the GDPR — leave them out unless the request cannot be handled without them.","section.policy":"Policy","policy_number":"Policy number","cover_type":"Cover","cover_type.auto":"Car","cover_type.home":"Home","cover_type.travel":"Travel","cover_type.other":"Other","incident_date":"Date of the incident","section.incident":"What happened","city":"City","description":"What happened?","police_report":"Was a police report filed?","police_report.yes":"Yes","police_report.no":"No","police_ref":"Report number","section.contact":"Contact","name":"Name","email":"Email","phone":"Phone","section.evidence":"Photos","photo":"One photo, up to 5 MiB","photo_url":"Or a link to photos","section.consent":"Consent","consent_contact":"I agree to be contacted about this request.","consent_privacy":"I agree that these answers are stored so the request can be handled."},"pl":{"title":"Formularz zgłoszenia szkody","lede":"Zgłoszenie szkody. Opisz, co się stało, bez dokumentów zbędnych przy pierwszym zgłoszeniu.","submit":"Wyślij","thanks":"Wysłano. Dziękujemy.","file_too_big":"Do 3 plików, po 5 MiB, łącznie 10 MiB.","error":"Nie udało się wysłać. Spróbuj ponownie.","disclaimer":"Ten formularz nie jest umową ubezpieczenia ani prawnym zapisem szkody. Podaj tylko to, co jest potrzebne do wyceny lub rejestracji zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO — pomiń je, jeśli zgłoszenie da się obsłużyć bez nich.","section.policy":"Polisa","policy_number":"Numer polisy","cover_type":"Ochrona","cover_type.auto":"Samochód","cover_type.home":"Dom","cover_type.travel":"Podróż","cover_type.other":"Inne","incident_date":"Data zdarzenia","section.incident":"Co się stało","city":"Miasto","description":"Co się stało?","police_report":"Czy złożono zawiadomienie na policji?","police_report.yes":"Tak","police_report.no":"Nie","police_ref":"Numer zawiadomienia","section.contact":"Kontakt","name":"Imię","email":"E-mail","phone":"Telefon","section.evidence":"Zdjęcia","photo":"Jedno zdjęcie, do 5 MiB","photo_url":"Albo link do zdjęć","section.consent":"Zgoda","consent_contact":"Zgadzam się na kontakt w sprawie tego zgłoszenia.","consent_privacy":"Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."},"tr":{"title":"Hasar bildirim formu","lede":"Hasar bildirimi. İlk kayıt için gerekmeyen belgeleri değil, olanı yazın.","submit":"Gönder","thanks":"Gönderildi. Teşekkürler.","file_too_big":"En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.","error":"Gönderilemedi. Lütfen tekrar deneyin.","disclaimer":"Bu form bir sigorta sözleşmesi ya da hasarın yasal kaydı değildir. Teklif veya kayıt için gereken kadarını gönderin. Sağlık verisi GDPR'de özel niteliklidir; talep onsuz işlenebiliyorsa eklemeyin.","section.policy":"Poliçe","policy_number":"Poliçe numarası","cover_type":"Teminat","cover_type.auto":"Araç","cover_type.home":"Konut","cover_type.travel":"Seyahat","cover_type.other":"Diğer","incident_date":"Olay tarihi","section.incident":"Ne oldu","city":"Şehir","description":"Ne oldu?","police_report":"Polis tutanağı var mı?","police_report.yes":"Evet","police_report.no":"Hayır","police_ref":"Tutanak numarası","section.contact":"İletişim","name":"Ad","email":"E-posta","phone":"Telefon","section.evidence":"Fotoğraflar","photo":"Bir fotoğraf, en fazla 5 MiB","photo_url":"Ya da fotoğraf bağlantısı","section.consent":"Onay","consent_contact":"Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.","consent_privacy":"Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."},"ar":{"title":"نموذج مطالبة تأمين","lede":"سجّل مطالبة. أرسل وقائع ما حدث، لا مستندات لا تحتاجها للإبلاغ الأول.","submit":"إرسال","thanks":"تم الإرسال. شكرًا لك.","file_too_big":"حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.","error":"تعذّر الإرسال. يُرجى المحاولة مرة أخرى.","disclaimer":"هذا النموذج ليس عقد تأمين ولا سجلاً قانونياً لمطالبة. أرسل فقط ما هو ضروري لتقديم عرض أسعار أو تسجيل الطلب. تعتبر التفاصيل الصحية بيانات من فئة خاصة بموجب اللائحة العامة لحماية البيانات (GDPR) — استبعدها ما لم يكن من المستحيل معالجة الطلب بدونها.","section.policy":"الوثيقة","policy_number":"رقم الوثيقة","cover_type":"التغطية","cover_type.auto":"سيارة","cover_type.home":"منزل","cover_type.travel":"سفر","cover_type.other":"أخرى","incident_date":"تاريخ الحادث","section.incident":"ما حدث","city":"المدينة","description":"ماذا حدث؟","police_report":"هل قُدّم بلاغ للشرطة؟","police_report.yes":"نعم","police_report.no":"لا","police_ref":"رقم البلاغ","section.contact":"التواصل","name":"الاسم","email":"البريد الإلكتروني","phone":"الهاتف","section.evidence":"الصور","photo":"صورة واحدة حتى 5 MiB","photo_url":"أو رابط للصور","section.consent":"الموافقة","consent_contact":"أوافق على التواصل معي بخصوص هذا الطلب.","consent_privacy":"أوافق على حفظ هذه الإجابات لمعالجة الطلب."},"he":{"title":"טופס הגשת תביעת ביטוח","lede":"דיווח על אירוע. שלחו את עובדות המקרה, בלי מסמכים שאינם נחוצים להודעה הראשונה.","submit":"שליחה","thanks":"נשלח. תודה.","file_too_big":"עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.","error":"השליחה נכשלה. נסו שוב.","disclaimer":"הטופס הזה אינו חוזה ביטוח ואינו תיעוד משפטי של תביעה. שלחו רק את מה שנדרש להצעת מחיר או לרישום הפנייה. נתוני בריאות הם קטגוריה מיוחדת לפי ה-GDPR — אל תוסיפו אותם אם אפשר לטפל בפנייה בלעדיהם.","section.policy":"פוליסה","policy_number":"מספר פוליסה","cover_type":"כיסוי","cover_type.auto":"רכב","cover_type.home":"דירה","cover_type.travel":"נסיעות","cover_type.other":"אחר","incident_date":"תאריך האירוע","section.incident":"מה קרה","city":"עיר","description":"מה קרה?","police_report":"האם הוגשה תלונה במשטרה?","police_report.yes":"כן","police_report.no":"לא","police_ref":"מספר תיק","section.contact":"פרטי קשר","name":"שם","email":"אימייל","phone":"טלפון","section.evidence":"תמונות","photo":"תמונה אחת, עד 5 MiB","photo_url":"או קישור לתמונות","section.consent":"הסכמה","consent_contact":"אני מסכים/ה שייצרו איתי קשר בנוגע לפנייה זו.","consent_privacy":"אני מסכים/ה שהתשובות יישמרו לצורך טיפול בפנייה."},"es":{"title":"Formulario de parte de siniestro","lede":"Comunica un siniestro. Envía los hechos de lo ocurrido, no documentos que no necesites para el primer aviso.","submit":"Enviar","thanks":"Enviado. Gracias.","file_too_big":"Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.","error":"No se pudo enviar. Inténtalo de nuevo.","disclaimer":"Este formulario no es un contrato de seguro ni un registro legal del siniestro. Envía solo lo necesario para la cotización o para registrar la solicitud. Los datos de salud son una categoría especial en el RGPD: no los incluyas si la solicitud puede tramitarse sin ellos.","section.policy":"Póliza","policy_number":"Número de póliza","cover_type":"Cobertura","cover_type.auto":"Coche","cover_type.home":"Hogar","cover_type.travel":"Viaje","cover_type.other":"Otro","incident_date":"Fecha del siniestro","section.incident":"Lo ocurrido","city":"Ciudad","description":"¿Qué ocurrió?","police_report":"¿Se presentó denuncia policial?","police_report.yes":"Sí","police_report.no":"No","police_ref":"Número de denuncia","section.contact":"Contacto","name":"Nombre","email":"Correo electrónico","phone":"Teléfono","section.evidence":"Fotos","photo":"Una foto, hasta 5 MiB","photo_url":"O un enlace a las fotos","section.consent":"Consentimiento","consent_contact":"Acepto que me contacten sobre esta solicitud.","consent_privacy":"Acepto que estas respuestas se guarden para tramitar la solicitud."},"fr":{"title":"Formulaire de déclaration de sinistre","lede":"Déclarez un sinistre. Envoyez les faits, pas des documents inutiles pour la première déclaration.","submit":"Envoyer","thanks":"Envoyé. Merci.","file_too_big":"Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.","error":"Envoi impossible. Veuillez réessayer.","disclaimer":"Ce formulaire n’est pas un contrat d’assurance ni un enregistrement juridique du sinistre. N’envoyez que ce qui est nécessaire pour un devis ou pour enregistrer la demande. Les données de santé sont une catégorie particulière au sens du RGPD : ne les ajoutez pas si la demande peut être traitée sans elles.","section.policy":"Contrat","policy_number":"Numéro de contrat","cover_type":"Couverture","cover_type.auto":"Auto","cover_type.home":"Habitation","cover_type.travel":"Voyage","cover_type.other":"Autre","incident_date":"Date du sinistre","section.incident":"Ce qui s’est passé","city":"Ville","description":"Que s’est-il passé ?","police_report":"Une plainte a-t-elle été déposée ?","police_report.yes":"Oui","police_report.no":"Non","police_ref":"Numéro de plainte","section.contact":"Contact","name":"Nom","email":"E-mail","phone":"Téléphone","section.evidence":"Photos","photo":"Une photo, jusqu’à 5 Mio","photo_url":"Ou un lien vers les photos","section.consent":"Consentement","consent_contact":"J’accepte d’être contacté au sujet de cette demande.","consent_privacy":"J’accepte que ces réponses soient conservées pour traiter la demande."},"pt":{"title":"Formulário de participação de sinistro","lede":"Participe um sinistro. Envie os factos do que aconteceu, não documentos desnecessários para a primeira participação.","submit":"Enviar","thanks":"Enviado. Obrigado.","file_too_big":"Até 3 ficheiros, 5 MiB cada e 10 MiB no total.","error":"Não foi possível enviar. Tente novamente.","disclaimer":"Este formulário não é um contrato de seguro nem um registo legal do sinistro. Envie apenas o que for preciso para a cotação ou para registar o pedido. Os dados de saúde são uma categoria especial no RGPD — não os inclua se o pedido puder ser tratado sem eles.","section.policy":"Apólice","policy_number":"Número da apólice","cover_type":"Cobertura","cover_type.auto":"Automóvel","cover_type.home":"Habitação","cover_type.travel":"Viagem","cover_type.other":"Outro","incident_date":"Data do sinistro","section.incident":"O que aconteceu","city":"Cidade","description":"O que aconteceu?","police_report":"Foi apresentada queixa à polícia?","police_report.yes":"Sim","police_report.no":"Não","police_ref":"Número da queixa","section.contact":"Contacto","name":"Nome","email":"Email","phone":"Telefone","section.evidence":"Fotografias","photo":"Uma fotografia, até 5 MiB","photo_url":"Ou uma ligação para as fotografias","section.consent":"Consentimento","consent_contact":"Aceito ser contactado sobre este pedido.","consent_privacy":"Aceito que estas respostas sejam guardadas para tratar o pedido."},"hi":{"title":"बीमा क्लेम फ़ॉर्म","lede":"क्लेम दर्ज करें। क्या हुआ, उसके तथ्य भेजें, वे दस्तावेज़ नहीं जिनकी पहली सूचना के लिए ज़रूरत नहीं है।","submit":"भेजें","thanks":"भेज दिया गया। धन्यवाद।","file_too_big":"अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।","error":"भेजा नहीं जा सका। कृपया फिर से कोशिश करें।","disclaimer":"यह फ़ॉर्म बीमा अनुबंध या दावे का कानूनी रिकॉर्ड नहीं है। कोटेशन या अनुरोध दर्ज करने के लिए जितना ज़रूरी हो उतना ही भेजें। स्वास्थ्य डेटा GDPR में विशेष श्रेणी है — अगर अनुरोध उसके बिना हो सकता है तो उसे न जोड़ें।","section.policy":"पॉलिसी","policy_number":"पॉलिसी नंबर","cover_type":"कवरेज","cover_type.auto":"कार","cover_type.home":"घर","cover_type.travel":"यात्रा","cover_type.other":"अन्य","incident_date":"घटना की तारीख","section.incident":"क्या हुआ","city":"शहर","description":"क्या हुआ?","police_report":"क्या पुलिस रिपोर्ट दर्ज हुई?","police_report.yes":"हाँ","police_report.no":"नहीं","police_ref":"रिपोर्ट नंबर","section.contact":"संपर्क","name":"नाम","email":"ईमेल","phone":"फ़ोन","section.evidence":"फ़ोटो","photo":"एक फ़ोटो, 5 MiB तक","photo_url":"या फ़ोटो का लिंक","section.consent":"सहमति","consent_contact":"मैं इस अनुरोध के बारे में संपर्क किए जाने के लिए सहमत हूँ।","consent_privacy":"मैं सहमत हूँ कि अनुरोध पर काम करने के लिए ये जवाब सहेजे जाएँ।"},"ja":{"title":"保険金請求フォーム","lede":"事故を届け出ます。最初の連絡に不要な書類ではなく、何が起きたかを送ってください。","submit":"送信","thanks":"送信しました。ありがとうございます。","file_too_big":"ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。","error":"送信できませんでした。もう一度お試しください。","disclaimer":"このフォームは、保険契約や請求に関する法的記録ではありません。見積もりやリクエストの登録に必要な情報のみを送信してください。健康に関する情報は、GDPRにおける特別カテゴリーのデータに該当します。その情報なしではリクエストを処理できない場合を除き、記載しないでください。","section.policy":"保険証券","policy_number":"証券番号","cover_type":"補償","cover_type.auto":"自動車","cover_type.home":"住宅","cover_type.travel":"旅行","cover_type.other":"その他","incident_date":"事故日","section.incident":"事故の内容","city":"市区町村","description":"何が起きましたか?","police_report":"警察に届け出ましたか?","police_report.yes":"はい","police_report.no":"いいえ","police_ref":"受理番号","section.contact":"連絡先","name":"お名前","email":"メールアドレス","phone":"電話番号","section.evidence":"写真","photo":"写真1枚(5 MiB まで)","photo_url":"または写真へのリンク","section.consent":"同意","consent_contact":"このお問い合わせについて連絡を受けることに同意します。","consent_privacy":"お問い合わせへの対応のため、これらの回答が保存されることに同意します。"},"de":{"title":"Formular für Schadensmeldungen","lede":"Schaden melden. Senden Sie den Sachverhalt, keine Unterlagen, die für die Erstmeldung nicht nötig sind.","submit":"Senden","thanks":"Gesendet. Vielen Dank.","file_too_big":"Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.","error":"Senden fehlgeschlagen. Bitte versuchen Sie es erneut.","disclaimer":"Dieses Formular ist kein Versicherungsvertrag und keine rechtsverbindliche Schadensmeldung. Senden Sie nur, was für ein Angebot oder die Erfassung der Anfrage nötig ist. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten – lassen Sie sie weg, sofern die Anfrage ohne sie bearbeitet werden kann.","section.policy":"Vertrag","policy_number":"Versicherungsscheinnummer","cover_type":"Versicherungsschutz","cover_type.auto":"Kfz","cover_type.home":"Wohngebäude/Hausrat","cover_type.travel":"Reise","cover_type.other":"Sonstiges","incident_date":"Schadensdatum","section.incident":"Hergang","city":"Stadt","description":"Was ist passiert?","police_report":"Wurde Anzeige bei der Polizei erstattet?","police_report.yes":"Ja","police_report.no":"Nein","police_ref":"Aktenzeichen","section.contact":"Kontakt","name":"Name","email":"E-Mail","phone":"Telefon","section.evidence":"Fotos","photo":"Ein Foto, bis zu 5 MiB","photo_url":"Oder einen Link zu Fotos","section.consent":"Einwilligung","consent_contact":"Ich bin damit einverstanden, bezüglich dieser Anfrage kontaktiert zu werden.","consent_privacy":"Ich stimme zu, dass diese Antworten gespeichert werden, damit die Anfrage bearbeitet werden kann."}}</script>
<script>
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
(function () {
var MAX = 5242880;
var form = document.getElementById("fg-form");
var packNode = document.getElementById("fg-labels");
if (!form || !packNode) return;
var pack = JSON.parse(packNode.textContent);
function code() {
var q = new URLSearchParams(location.search).get("lang") || "";
// ?lang= preview override, then the form language chosen when copying, then the page and browser.
var raw = (q || form.getAttribute("data-lang") || document.documentElement.lang || (navigator.language || "en")).slice(0, 2).toLowerCase();
return pack[raw] ? raw : "en";
}
function apply() {
var dict = pack[code()];
document.querySelectorAll("[data-i18n]").forEach(function (node) {
var key = node.getAttribute("data-i18n");
if (key && typeof dict[key] === "string") node.textContent = dict[key];
});
}
apply();
var status = form.querySelector("[data-status]");
form.addEventListener("submit", function (event) {
event.preventDefault();
var dict = pack[code()];
var body = new FormData(form);
var files = Array.from(body.values()).filter(function (value) { return value instanceof File && value.size; });
if (files.length > 3 || files.some(function (file) { return file.size > MAX; }) || files.reduce(function (sum,file) { return sum + file.size; },0) > 10 * 1024 * 1024) {
if (status) status.textContent = dict.file_too_big;
return;
}
var button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
fetch(form.action, { method: "POST", headers: { Accept: "application/json" }, body: body })
.then(function (response) { return response.json(); }).then(function (result) {
if (status) status.textContent = result && result.success ? dict.thanks : ((result && result.message) || dict.error);
}).catch(function () { if (status) status.textContent = dict.error; })
.finally(function () { if (button) button.disabled = false; resetCaptcha(form); });
});
mountCaptcha(form.querySelector("[data-turnstile]"), form.dataset.sitekey);
})();
</script>
</body>
</html>
// Generated from src/content/industries.ts — npm run templates:write
import { useState, useEffect, useRef } from "react";
const ENDPOINT = "https://formgong.com/submit";
const FILE_MAX = 5242880;
const LABELS = {
"uk": {
"title": "Форма заяви про страховий випадок",
"lede": "Реєстрація випадку. Опишіть, що сталося, без документів, які не потрібні для першого повідомлення.",
"submit": "Надіслати",
"thanks": "Надіслано. Дякуємо.",
"file_too_big": "До 3 файлів, по 5 MiB, разом до 10 MiB.",
"error": "Не вдалося надіслати. Спробуйте ще раз.",
"disclaimer": "Ця форма не є договором страхування і не є юридичним записом про випадок. Надсилайте лише те, що потрібно для розрахунку чи реєстрації заявки. Дані про здоров'я — особлива категорія за GDPR: не додавайте їх, якщо без них заявку можна обробити.",
"section.policy": "Поліс",
"policy_number": "Номер поліса",
"cover_type": "Покриття",
"cover_type.auto": "Авто",
"cover_type.home": "Житло",
"cover_type.travel": "Подорож",
"cover_type.other": "Інше",
"incident_date": "Дата випадку",
"section.incident": "Що сталося",
"city": "Місто",
"description": "Що сталося?",
"police_report": "Чи є заява в поліцію?",
"police_report.yes": "Так",
"police_report.no": "Ні",
"police_ref": "Номер заяви",
"section.contact": "Контакт",
"name": "Ім'я",
"email": "Електронна пошта",
"phone": "Телефон",
"section.evidence": "Фото",
"photo": "Одне фото, до 5 MiB",
"photo_url": "Або посилання на фото",
"section.consent": "Згода",
"consent_contact": "Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.",
"consent_privacy": "Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."
},
"en": {
"title": "Insurance claim form",
"lede": "Register a claim. Send the facts of what happened, not documents you do not need for the first notice.",
"submit": "Send",
"thanks": "Sent. Thank you.",
"file_too_big": "Up to 3 files, 5 MiB each and 10 MiB combined.",
"error": "Could not send. Please try again.",
"disclaimer": "This form is not an insurance contract or a legal record of a claim. Send only what is needed to quote or register the request. Health details are special-category data under the GDPR — leave them out unless the request cannot be handled without them.",
"section.policy": "Policy",
"policy_number": "Policy number",
"cover_type": "Cover",
"cover_type.auto": "Car",
"cover_type.home": "Home",
"cover_type.travel": "Travel",
"cover_type.other": "Other",
"incident_date": "Date of the incident",
"section.incident": "What happened",
"city": "City",
"description": "What happened?",
"police_report": "Was a police report filed?",
"police_report.yes": "Yes",
"police_report.no": "No",
"police_ref": "Report number",
"section.contact": "Contact",
"name": "Name",
"email": "Email",
"phone": "Phone",
"section.evidence": "Photos",
"photo": "One photo, up to 5 MiB",
"photo_url": "Or a link to photos",
"section.consent": "Consent",
"consent_contact": "I agree to be contacted about this request.",
"consent_privacy": "I agree that these answers are stored so the request can be handled."
},
"pl": {
"title": "Formularz zgłoszenia szkody",
"lede": "Zgłoszenie szkody. Opisz, co się stało, bez dokumentów zbędnych przy pierwszym zgłoszeniu.",
"submit": "Wyślij",
"thanks": "Wysłano. Dziękujemy.",
"file_too_big": "Do 3 plików, po 5 MiB, łącznie 10 MiB.",
"error": "Nie udało się wysłać. Spróbuj ponownie.",
"disclaimer": "Ten formularz nie jest umową ubezpieczenia ani prawnym zapisem szkody. Podaj tylko to, co jest potrzebne do wyceny lub rejestracji zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO — pomiń je, jeśli zgłoszenie da się obsłużyć bez nich.",
"section.policy": "Polisa",
"policy_number": "Numer polisy",
"cover_type": "Ochrona",
"cover_type.auto": "Samochód",
"cover_type.home": "Dom",
"cover_type.travel": "Podróż",
"cover_type.other": "Inne",
"incident_date": "Data zdarzenia",
"section.incident": "Co się stało",
"city": "Miasto",
"description": "Co się stało?",
"police_report": "Czy złożono zawiadomienie na policji?",
"police_report.yes": "Tak",
"police_report.no": "Nie",
"police_ref": "Numer zawiadomienia",
"section.contact": "Kontakt",
"name": "Imię",
"email": "E-mail",
"phone": "Telefon",
"section.evidence": "Zdjęcia",
"photo": "Jedno zdjęcie, do 5 MiB",
"photo_url": "Albo link do zdjęć",
"section.consent": "Zgoda",
"consent_contact": "Zgadzam się na kontakt w sprawie tego zgłoszenia.",
"consent_privacy": "Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."
},
"tr": {
"title": "Hasar bildirim formu",
"lede": "Hasar bildirimi. İlk kayıt için gerekmeyen belgeleri değil, olanı yazın.",
"submit": "Gönder",
"thanks": "Gönderildi. Teşekkürler.",
"file_too_big": "En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.",
"error": "Gönderilemedi. Lütfen tekrar deneyin.",
"disclaimer": "Bu form bir sigorta sözleşmesi ya da hasarın yasal kaydı değildir. Teklif veya kayıt için gereken kadarını gönderin. Sağlık verisi GDPR'de özel niteliklidir; talep onsuz işlenebiliyorsa eklemeyin.",
"section.policy": "Poliçe",
"policy_number": "Poliçe numarası",
"cover_type": "Teminat",
"cover_type.auto": "Araç",
"cover_type.home": "Konut",
"cover_type.travel": "Seyahat",
"cover_type.other": "Diğer",
"incident_date": "Olay tarihi",
"section.incident": "Ne oldu",
"city": "Şehir",
"description": "Ne oldu?",
"police_report": "Polis tutanağı var mı?",
"police_report.yes": "Evet",
"police_report.no": "Hayır",
"police_ref": "Tutanak numarası",
"section.contact": "İletişim",
"name": "Ad",
"email": "E-posta",
"phone": "Telefon",
"section.evidence": "Fotoğraflar",
"photo": "Bir fotoğraf, en fazla 5 MiB",
"photo_url": "Ya da fotoğraf bağlantısı",
"section.consent": "Onay",
"consent_contact": "Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.",
"consent_privacy": "Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."
},
"ar": {
"title": "نموذج مطالبة تأمين",
"lede": "سجّل مطالبة. أرسل وقائع ما حدث، لا مستندات لا تحتاجها للإبلاغ الأول.",
"submit": "إرسال",
"thanks": "تم الإرسال. شكرًا لك.",
"file_too_big": "حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.",
"error": "تعذّر الإرسال. يُرجى المحاولة مرة أخرى.",
"disclaimer": "هذا النموذج ليس عقد تأمين ولا سجلاً قانونياً لمطالبة. أرسل فقط ما هو ضروري لتقديم عرض أسعار أو تسجيل الطلب. تعتبر التفاصيل الصحية بيانات من فئة خاصة بموجب اللائحة العامة لحماية البيانات (GDPR) — استبعدها ما لم يكن من المستحيل معالجة الطلب بدونها.",
"section.policy": "الوثيقة",
"policy_number": "رقم الوثيقة",
"cover_type": "التغطية",
"cover_type.auto": "سيارة",
"cover_type.home": "منزل",
"cover_type.travel": "سفر",
"cover_type.other": "أخرى",
"incident_date": "تاريخ الحادث",
"section.incident": "ما حدث",
"city": "المدينة",
"description": "ماذا حدث؟",
"police_report": "هل قُدّم بلاغ للشرطة؟",
"police_report.yes": "نعم",
"police_report.no": "لا",
"police_ref": "رقم البلاغ",
"section.contact": "التواصل",
"name": "الاسم",
"email": "البريد الإلكتروني",
"phone": "الهاتف",
"section.evidence": "الصور",
"photo": "صورة واحدة حتى 5 MiB",
"photo_url": "أو رابط للصور",
"section.consent": "الموافقة",
"consent_contact": "أوافق على التواصل معي بخصوص هذا الطلب.",
"consent_privacy": "أوافق على حفظ هذه الإجابات لمعالجة الطلب."
},
"he": {
"title": "טופס הגשת תביעת ביטוח",
"lede": "דיווח על אירוע. שלחו את עובדות המקרה, בלי מסמכים שאינם נחוצים להודעה הראשונה.",
"submit": "שליחה",
"thanks": "נשלח. תודה.",
"file_too_big": "עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.",
"error": "השליחה נכשלה. נסו שוב.",
"disclaimer": "הטופס הזה אינו חוזה ביטוח ואינו תיעוד משפטי של תביעה. שלחו רק את מה שנדרש להצעת מחיר או לרישום הפנייה. נתוני בריאות הם קטגוריה מיוחדת לפי ה-GDPR — אל תוסיפו אותם אם אפשר לטפל בפנייה בלעדיהם.",
"section.policy": "פוליסה",
"policy_number": "מספר פוליסה",
"cover_type": "כיסוי",
"cover_type.auto": "רכב",
"cover_type.home": "דירה",
"cover_type.travel": "נסיעות",
"cover_type.other": "אחר",
"incident_date": "תאריך האירוע",
"section.incident": "מה קרה",
"city": "עיר",
"description": "מה קרה?",
"police_report": "האם הוגשה תלונה במשטרה?",
"police_report.yes": "כן",
"police_report.no": "לא",
"police_ref": "מספר תיק",
"section.contact": "פרטי קשר",
"name": "שם",
"email": "אימייל",
"phone": "טלפון",
"section.evidence": "תמונות",
"photo": "תמונה אחת, עד 5 MiB",
"photo_url": "או קישור לתמונות",
"section.consent": "הסכמה",
"consent_contact": "אני מסכים/ה שייצרו איתי קשר בנוגע לפנייה זו.",
"consent_privacy": "אני מסכים/ה שהתשובות יישמרו לצורך טיפול בפנייה."
},
"es": {
"title": "Formulario de parte de siniestro",
"lede": "Comunica un siniestro. Envía los hechos de lo ocurrido, no documentos que no necesites para el primer aviso.",
"submit": "Enviar",
"thanks": "Enviado. Gracias.",
"file_too_big": "Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.",
"error": "No se pudo enviar. Inténtalo de nuevo.",
"disclaimer": "Este formulario no es un contrato de seguro ni un registro legal del siniestro. Envía solo lo necesario para la cotización o para registrar la solicitud. Los datos de salud son una categoría especial en el RGPD: no los incluyas si la solicitud puede tramitarse sin ellos.",
"section.policy": "Póliza",
"policy_number": "Número de póliza",
"cover_type": "Cobertura",
"cover_type.auto": "Coche",
"cover_type.home": "Hogar",
"cover_type.travel": "Viaje",
"cover_type.other": "Otro",
"incident_date": "Fecha del siniestro",
"section.incident": "Lo ocurrido",
"city": "Ciudad",
"description": "¿Qué ocurrió?",
"police_report": "¿Se presentó denuncia policial?",
"police_report.yes": "Sí",
"police_report.no": "No",
"police_ref": "Número de denuncia",
"section.contact": "Contacto",
"name": "Nombre",
"email": "Correo electrónico",
"phone": "Teléfono",
"section.evidence": "Fotos",
"photo": "Una foto, hasta 5 MiB",
"photo_url": "O un enlace a las fotos",
"section.consent": "Consentimiento",
"consent_contact": "Acepto que me contacten sobre esta solicitud.",
"consent_privacy": "Acepto que estas respuestas se guarden para tramitar la solicitud."
},
"fr": {
"title": "Formulaire de déclaration de sinistre",
"lede": "Déclarez un sinistre. Envoyez les faits, pas des documents inutiles pour la première déclaration.",
"submit": "Envoyer",
"thanks": "Envoyé. Merci.",
"file_too_big": "Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.",
"error": "Envoi impossible. Veuillez réessayer.",
"disclaimer": "Ce formulaire n’est pas un contrat d’assurance ni un enregistrement juridique du sinistre. N’envoyez que ce qui est nécessaire pour un devis ou pour enregistrer la demande. Les données de santé sont une catégorie particulière au sens du RGPD : ne les ajoutez pas si la demande peut être traitée sans elles.",
"section.policy": "Contrat",
"policy_number": "Numéro de contrat",
"cover_type": "Couverture",
"cover_type.auto": "Auto",
"cover_type.home": "Habitation",
"cover_type.travel": "Voyage",
"cover_type.other": "Autre",
"incident_date": "Date du sinistre",
"section.incident": "Ce qui s’est passé",
"city": "Ville",
"description": "Que s’est-il passé ?",
"police_report": "Une plainte a-t-elle été déposée ?",
"police_report.yes": "Oui",
"police_report.no": "Non",
"police_ref": "Numéro de plainte",
"section.contact": "Contact",
"name": "Nom",
"email": "E-mail",
"phone": "Téléphone",
"section.evidence": "Photos",
"photo": "Une photo, jusqu’à 5 Mio",
"photo_url": "Ou un lien vers les photos",
"section.consent": "Consentement",
"consent_contact": "J’accepte d’être contacté au sujet de cette demande.",
"consent_privacy": "J’accepte que ces réponses soient conservées pour traiter la demande."
},
"pt": {
"title": "Formulário de participação de sinistro",
"lede": "Participe um sinistro. Envie os factos do que aconteceu, não documentos desnecessários para a primeira participação.",
"submit": "Enviar",
"thanks": "Enviado. Obrigado.",
"file_too_big": "Até 3 ficheiros, 5 MiB cada e 10 MiB no total.",
"error": "Não foi possível enviar. Tente novamente.",
"disclaimer": "Este formulário não é um contrato de seguro nem um registo legal do sinistro. Envie apenas o que for preciso para a cotação ou para registar o pedido. Os dados de saúde são uma categoria especial no RGPD — não os inclua se o pedido puder ser tratado sem eles.",
"section.policy": "Apólice",
"policy_number": "Número da apólice",
"cover_type": "Cobertura",
"cover_type.auto": "Automóvel",
"cover_type.home": "Habitação",
"cover_type.travel": "Viagem",
"cover_type.other": "Outro",
"incident_date": "Data do sinistro",
"section.incident": "O que aconteceu",
"city": "Cidade",
"description": "O que aconteceu?",
"police_report": "Foi apresentada queixa à polícia?",
"police_report.yes": "Sim",
"police_report.no": "Não",
"police_ref": "Número da queixa",
"section.contact": "Contacto",
"name": "Nome",
"email": "Email",
"phone": "Telefone",
"section.evidence": "Fotografias",
"photo": "Uma fotografia, até 5 MiB",
"photo_url": "Ou uma ligação para as fotografias",
"section.consent": "Consentimento",
"consent_contact": "Aceito ser contactado sobre este pedido.",
"consent_privacy": "Aceito que estas respostas sejam guardadas para tratar o pedido."
},
"hi": {
"title": "बीमा क्लेम फ़ॉर्म",
"lede": "क्लेम दर्ज करें। क्या हुआ, उसके तथ्य भेजें, वे दस्तावेज़ नहीं जिनकी पहली सूचना के लिए ज़रूरत नहीं है।",
"submit": "भेजें",
"thanks": "भेज दिया गया। धन्यवाद।",
"file_too_big": "अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।",
"error": "भेजा नहीं जा सका। कृपया फिर से कोशिश करें।",
"disclaimer": "यह फ़ॉर्म बीमा अनुबंध या दावे का कानूनी रिकॉर्ड नहीं है। कोटेशन या अनुरोध दर्ज करने के लिए जितना ज़रूरी हो उतना ही भेजें। स्वास्थ्य डेटा GDPR में विशेष श्रेणी है — अगर अनुरोध उसके बिना हो सकता है तो उसे न जोड़ें।",
"section.policy": "पॉलिसी",
"policy_number": "पॉलिसी नंबर",
"cover_type": "कवरेज",
"cover_type.auto": "कार",
"cover_type.home": "घर",
"cover_type.travel": "यात्रा",
"cover_type.other": "अन्य",
"incident_date": "घटना की तारीख",
"section.incident": "क्या हुआ",
"city": "शहर",
"description": "क्या हुआ?",
"police_report": "क्या पुलिस रिपोर्ट दर्ज हुई?",
"police_report.yes": "हाँ",
"police_report.no": "नहीं",
"police_ref": "रिपोर्ट नंबर",
"section.contact": "संपर्क",
"name": "नाम",
"email": "ईमेल",
"phone": "फ़ोन",
"section.evidence": "फ़ोटो",
"photo": "एक फ़ोटो, 5 MiB तक",
"photo_url": "या फ़ोटो का लिंक",
"section.consent": "सहमति",
"consent_contact": "मैं इस अनुरोध के बारे में संपर्क किए जाने के लिए सहमत हूँ।",
"consent_privacy": "मैं सहमत हूँ कि अनुरोध पर काम करने के लिए ये जवाब सहेजे जाएँ।"
},
"ja": {
"title": "保険金請求フォーム",
"lede": "事故を届け出ます。最初の連絡に不要な書類ではなく、何が起きたかを送ってください。",
"submit": "送信",
"thanks": "送信しました。ありがとうございます。",
"file_too_big": "ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。",
"error": "送信できませんでした。もう一度お試しください。",
"disclaimer": "このフォームは、保険契約や請求に関する法的記録ではありません。見積もりやリクエストの登録に必要な情報のみを送信してください。健康に関する情報は、GDPRにおける特別カテゴリーのデータに該当します。その情報なしではリクエストを処理できない場合を除き、記載しないでください。",
"section.policy": "保険証券",
"policy_number": "証券番号",
"cover_type": "補償",
"cover_type.auto": "自動車",
"cover_type.home": "住宅",
"cover_type.travel": "旅行",
"cover_type.other": "その他",
"incident_date": "事故日",
"section.incident": "事故の内容",
"city": "市区町村",
"description": "何が起きましたか?",
"police_report": "警察に届け出ましたか?",
"police_report.yes": "はい",
"police_report.no": "いいえ",
"police_ref": "受理番号",
"section.contact": "連絡先",
"name": "お名前",
"email": "メールアドレス",
"phone": "電話番号",
"section.evidence": "写真",
"photo": "写真1枚(5 MiB まで)",
"photo_url": "または写真へのリンク",
"section.consent": "同意",
"consent_contact": "このお問い合わせについて連絡を受けることに同意します。",
"consent_privacy": "お問い合わせへの対応のため、これらの回答が保存されることに同意します。"
},
"de": {
"title": "Formular für Schadensmeldungen",
"lede": "Schaden melden. Senden Sie den Sachverhalt, keine Unterlagen, die für die Erstmeldung nicht nötig sind.",
"submit": "Senden",
"thanks": "Gesendet. Vielen Dank.",
"file_too_big": "Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.",
"error": "Senden fehlgeschlagen. Bitte versuchen Sie es erneut.",
"disclaimer": "Dieses Formular ist kein Versicherungsvertrag und keine rechtsverbindliche Schadensmeldung. Senden Sie nur, was für ein Angebot oder die Erfassung der Anfrage nötig ist. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten – lassen Sie sie weg, sofern die Anfrage ohne sie bearbeitet werden kann.",
"section.policy": "Vertrag",
"policy_number": "Versicherungsscheinnummer",
"cover_type": "Versicherungsschutz",
"cover_type.auto": "Kfz",
"cover_type.home": "Wohngebäude/Hausrat",
"cover_type.travel": "Reise",
"cover_type.other": "Sonstiges",
"incident_date": "Schadensdatum",
"section.incident": "Hergang",
"city": "Stadt",
"description": "Was ist passiert?",
"police_report": "Wurde Anzeige bei der Polizei erstattet?",
"police_report.yes": "Ja",
"police_report.no": "Nein",
"police_ref": "Aktenzeichen",
"section.contact": "Kontakt",
"name": "Name",
"email": "E-Mail",
"phone": "Telefon",
"section.evidence": "Fotos",
"photo": "Ein Foto, bis zu 5 MiB",
"photo_url": "Oder einen Link zu Fotos",
"section.consent": "Einwilligung",
"consent_contact": "Ich bin damit einverstanden, bezüglich dieser Anfrage kontaktiert zu werden.",
"consent_privacy": "Ich stimme zu, dass diese Antworten gespeichert werden, damit die Anfrage bearbeitet werden kann."
}
};
export function IndustryForm({ lang = "de", accessKey = "fk_your_access_key", turnstileSiteKey = "" }) {
const t = LABELS[lang] || LABELS.en;
const [status, setStatus] = useState("");
const captcha = useRef(null);
useEffect(() => mountCaptcha(captcha.current, turnstileSiteKey), [turnstileSiteKey]);
const [values, setValues] = useState({ police_report: "" });
function setField(name, value) {
setValues((current) => ({ ...current, [name]: value }));
}
async function onSubmit(event) {
const form = event.currentTarget;
event.preventDefault();
const body = new FormData(form);
body.set("_lang", lang);
const files = Array.from(body.values()).filter(value => value instanceof File && value.size);
if (files.length > 3 || files.some(file => file.size > FILE_MAX) || files.reduce((sum,file) => sum + file.size,0) > 10 * 1024 * 1024) {
setStatus(t.file_too_big);
return;
}
const button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
try {
const response = await fetch(ENDPOINT, { method: "POST", headers: { Accept: "application/json" }, body });
const result = await response.json();
setStatus(result.success ? t.thanks : (result.message || t.error));
} catch { setStatus(t.error); }
finally { if (button) button.disabled = false; resetCaptcha(form); }
}
return (
<form onSubmit={onSubmit}>
<h1>{t.title}</h1>
<p>{t.lede}</p>
{t.disclaimer ? <p>{t.disclaimer}</p> : null}
<input type="hidden" name="access_key" value={accessKey} />
<div aria-hidden="true" style={{ position: "absolute", left: "-10000px", width: 1, height: 1, overflow: "hidden" }}>
<input name="botcheck" tabIndex={-1} autoComplete="off" />
</div>
<section><h2>{t["section.policy"]}</h2>
<label><span>{t["policy_number"]}</span><input name="policy_number" type="text" required maxLength={40} /></label>
<label><span>{t["cover_type"]}</span><select name="cover_type" required><option value="">—</option><option value="auto">{t["cover_type.auto"]}</option><option value="home">{t["cover_type.home"]}</option><option value="travel">{t["cover_type.travel"]}</option><option value="other">{t["cover_type.other"]}</option></select></label>
<label><span>{t["incident_date"]}</span><input name="incident_date" type="date" required /></label></section>
<section><h2>{t["section.incident"]}</h2>
<label><span>{t["city"]}</span><input name="city" type="text" required maxLength={80} autoComplete="address-level2" /></label>
<label><span>{t["description"]}</span><textarea name="description" required maxLength={1000} /></label>
<label><span>{t["police_report"]}</span><select name="police_report" required value={values["police_report"]} onChange={(event) => setField("police_report", event.target.value)}><option value="">—</option><option value="yes">{t["police_report.yes"]}</option><option value="no">{t["police_report.no"]}</option></select></label>
{values["police_report"] === "yes" ? (<label><span>{t["police_ref"]}</span><input name="police_ref" type="text" maxLength={40} /></label>) : null}</section>
<section><h2>{t["section.contact"]}</h2>
<label><span>{t["name"]}</span><input name="name" type="text" required maxLength={80} autoComplete="name" /></label>
<label><span>{t["email"]}</span><input name="email" type="email" required maxLength={120} autoComplete="email" /></label>
<label><span>{t["phone"]}</span><input name="phone" type="tel" required maxLength={40} autoComplete="tel" /></label></section>
<section><h2>{t["section.evidence"]}</h2>
<label><span>{t["photo"]}</span><input name="photo" type="file" accept=".jpg,.jpeg,.png" /></label>
<label><span>{t["photo_url"]}</span><input name="photo_url" type="url" maxLength={300} /></label></section>
<section><h2>{t["section.consent"]}</h2>
<label className="check"><input name="consent_contact" type="checkbox" value="yes" required /><span>{t["consent_contact"]}</span></label>
<label className="check"><input name="consent_privacy" type="checkbox" value="yes" required /><span>{t["consent_privacy"]}</span></label></section>
{/* Set turnstileSiteKey to YOUR_TURNSTILE_SITE_KEY. Required for attachments. */}
<div ref={captcha} data-turnstile />
<button type="submit">{t.submit}</button>
<p>{status}</p>
</form>
);
}
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
<!-- Generated from src/content/industries.ts — npm run templates:write -->
<script setup>
import { reactive, ref, computed, onMounted, onBeforeUnmount } from "vue";
const props = defineProps({
lang: { type: String, default: "de" },
accessKey: { type: String, default: "fk_your_access_key" },
turnstileSiteKey: { type: String, default: "" },
});
const ENDPOINT = "https://formgong.com/submit";
const FILE_MAX = 5242880;
const LABELS = {
"uk": {
"title": "Форма заяви про страховий випадок",
"lede": "Реєстрація випадку. Опишіть, що сталося, без документів, які не потрібні для першого повідомлення.",
"submit": "Надіслати",
"thanks": "Надіслано. Дякуємо.",
"file_too_big": "До 3 файлів, по 5 MiB, разом до 10 MiB.",
"error": "Не вдалося надіслати. Спробуйте ще раз.",
"disclaimer": "Ця форма не є договором страхування і не є юридичним записом про випадок. Надсилайте лише те, що потрібно для розрахунку чи реєстрації заявки. Дані про здоров'я — особлива категорія за GDPR: не додавайте їх, якщо без них заявку можна обробити.",
"section.policy": "Поліс",
"policy_number": "Номер поліса",
"cover_type": "Покриття",
"cover_type.auto": "Авто",
"cover_type.home": "Житло",
"cover_type.travel": "Подорож",
"cover_type.other": "Інше",
"incident_date": "Дата випадку",
"section.incident": "Що сталося",
"city": "Місто",
"description": "Що сталося?",
"police_report": "Чи є заява в поліцію?",
"police_report.yes": "Так",
"police_report.no": "Ні",
"police_ref": "Номер заяви",
"section.contact": "Контакт",
"name": "Ім'я",
"email": "Електронна пошта",
"phone": "Телефон",
"section.evidence": "Фото",
"photo": "Одне фото, до 5 MiB",
"photo_url": "Або посилання на фото",
"section.consent": "Згода",
"consent_contact": "Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.",
"consent_privacy": "Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."
},
"en": {
"title": "Insurance claim form",
"lede": "Register a claim. Send the facts of what happened, not documents you do not need for the first notice.",
"submit": "Send",
"thanks": "Sent. Thank you.",
"file_too_big": "Up to 3 files, 5 MiB each and 10 MiB combined.",
"error": "Could not send. Please try again.",
"disclaimer": "This form is not an insurance contract or a legal record of a claim. Send only what is needed to quote or register the request. Health details are special-category data under the GDPR — leave them out unless the request cannot be handled without them.",
"section.policy": "Policy",
"policy_number": "Policy number",
"cover_type": "Cover",
"cover_type.auto": "Car",
"cover_type.home": "Home",
"cover_type.travel": "Travel",
"cover_type.other": "Other",
"incident_date": "Date of the incident",
"section.incident": "What happened",
"city": "City",
"description": "What happened?",
"police_report": "Was a police report filed?",
"police_report.yes": "Yes",
"police_report.no": "No",
"police_ref": "Report number",
"section.contact": "Contact",
"name": "Name",
"email": "Email",
"phone": "Phone",
"section.evidence": "Photos",
"photo": "One photo, up to 5 MiB",
"photo_url": "Or a link to photos",
"section.consent": "Consent",
"consent_contact": "I agree to be contacted about this request.",
"consent_privacy": "I agree that these answers are stored so the request can be handled."
},
"pl": {
"title": "Formularz zgłoszenia szkody",
"lede": "Zgłoszenie szkody. Opisz, co się stało, bez dokumentów zbędnych przy pierwszym zgłoszeniu.",
"submit": "Wyślij",
"thanks": "Wysłano. Dziękujemy.",
"file_too_big": "Do 3 plików, po 5 MiB, łącznie 10 MiB.",
"error": "Nie udało się wysłać. Spróbuj ponownie.",
"disclaimer": "Ten formularz nie jest umową ubezpieczenia ani prawnym zapisem szkody. Podaj tylko to, co jest potrzebne do wyceny lub rejestracji zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO — pomiń je, jeśli zgłoszenie da się obsłużyć bez nich.",
"section.policy": "Polisa",
"policy_number": "Numer polisy",
"cover_type": "Ochrona",
"cover_type.auto": "Samochód",
"cover_type.home": "Dom",
"cover_type.travel": "Podróż",
"cover_type.other": "Inne",
"incident_date": "Data zdarzenia",
"section.incident": "Co się stało",
"city": "Miasto",
"description": "Co się stało?",
"police_report": "Czy złożono zawiadomienie na policji?",
"police_report.yes": "Tak",
"police_report.no": "Nie",
"police_ref": "Numer zawiadomienia",
"section.contact": "Kontakt",
"name": "Imię",
"email": "E-mail",
"phone": "Telefon",
"section.evidence": "Zdjęcia",
"photo": "Jedno zdjęcie, do 5 MiB",
"photo_url": "Albo link do zdjęć",
"section.consent": "Zgoda",
"consent_contact": "Zgadzam się na kontakt w sprawie tego zgłoszenia.",
"consent_privacy": "Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."
},
"tr": {
"title": "Hasar bildirim formu",
"lede": "Hasar bildirimi. İlk kayıt için gerekmeyen belgeleri değil, olanı yazın.",
"submit": "Gönder",
"thanks": "Gönderildi. Teşekkürler.",
"file_too_big": "En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.",
"error": "Gönderilemedi. Lütfen tekrar deneyin.",
"disclaimer": "Bu form bir sigorta sözleşmesi ya da hasarın yasal kaydı değildir. Teklif veya kayıt için gereken kadarını gönderin. Sağlık verisi GDPR'de özel niteliklidir; talep onsuz işlenebiliyorsa eklemeyin.",
"section.policy": "Poliçe",
"policy_number": "Poliçe numarası",
"cover_type": "Teminat",
"cover_type.auto": "Araç",
"cover_type.home": "Konut",
"cover_type.travel": "Seyahat",
"cover_type.other": "Diğer",
"incident_date": "Olay tarihi",
"section.incident": "Ne oldu",
"city": "Şehir",
"description": "Ne oldu?",
"police_report": "Polis tutanağı var mı?",
"police_report.yes": "Evet",
"police_report.no": "Hayır",
"police_ref": "Tutanak numarası",
"section.contact": "İletişim",
"name": "Ad",
"email": "E-posta",
"phone": "Telefon",
"section.evidence": "Fotoğraflar",
"photo": "Bir fotoğraf, en fazla 5 MiB",
"photo_url": "Ya da fotoğraf bağlantısı",
"section.consent": "Onay",
"consent_contact": "Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.",
"consent_privacy": "Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."
},
"ar": {
"title": "نموذج مطالبة تأمين",
"lede": "سجّل مطالبة. أرسل وقائع ما حدث، لا مستندات لا تحتاجها للإبلاغ الأول.",
"submit": "إرسال",
"thanks": "تم الإرسال. شكرًا لك.",
"file_too_big": "حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.",
"error": "تعذّر الإرسال. يُرجى المحاولة مرة أخرى.",
"disclaimer": "هذا النموذج ليس عقد تأمين ولا سجلاً قانونياً لمطالبة. أرسل فقط ما هو ضروري لتقديم عرض أسعار أو تسجيل الطلب. تعتبر التفاصيل الصحية بيانات من فئة خاصة بموجب اللائحة العامة لحماية البيانات (GDPR) — استبعدها ما لم يكن من المستحيل معالجة الطلب بدونها.",
"section.policy": "الوثيقة",
"policy_number": "رقم الوثيقة",
"cover_type": "التغطية",
"cover_type.auto": "سيارة",
"cover_type.home": "منزل",
"cover_type.travel": "سفر",
"cover_type.other": "أخرى",
"incident_date": "تاريخ الحادث",
"section.incident": "ما حدث",
"city": "المدينة",
"description": "ماذا حدث؟",
"police_report": "هل قُدّم بلاغ للشرطة؟",
"police_report.yes": "نعم",
"police_report.no": "لا",
"police_ref": "رقم البلاغ",
"section.contact": "التواصل",
"name": "الاسم",
"email": "البريد الإلكتروني",
"phone": "الهاتف",
"section.evidence": "الصور",
"photo": "صورة واحدة حتى 5 MiB",
"photo_url": "أو رابط للصور",
"section.consent": "الموافقة",
"consent_contact": "أوافق على التواصل معي بخصوص هذا الطلب.",
"consent_privacy": "أوافق على حفظ هذه الإجابات لمعالجة الطلب."
},
"he": {
"title": "טופס הגשת תביעת ביטוח",
"lede": "דיווח על אירוע. שלחו את עובדות המקרה, בלי מסמכים שאינם נחוצים להודעה הראשונה.",
"submit": "שליחה",
"thanks": "נשלח. תודה.",
"file_too_big": "עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.",
"error": "השליחה נכשלה. נסו שוב.",
"disclaimer": "הטופס הזה אינו חוזה ביטוח ואינו תיעוד משפטי של תביעה. שלחו רק את מה שנדרש להצעת מחיר או לרישום הפנייה. נתוני בריאות הם קטגוריה מיוחדת לפי ה-GDPR — אל תוסיפו אותם אם אפשר לטפל בפנייה בלעדיהם.",
"section.policy": "פוליסה",
"policy_number": "מספר פוליסה",
"cover_type": "כיסוי",
"cover_type.auto": "רכב",
"cover_type.home": "דירה",
"cover_type.travel": "נסיעות",
"cover_type.other": "אחר",
"incident_date": "תאריך האירוע",
"section.incident": "מה קרה",
"city": "עיר",
"description": "מה קרה?",
"police_report": "האם הוגשה תלונה במשטרה?",
"police_report.yes": "כן",
"police_report.no": "לא",
"police_ref": "מספר תיק",
"section.contact": "פרטי קשר",
"name": "שם",
"email": "אימייל",
"phone": "טלפון",
"section.evidence": "תמונות",
"photo": "תמונה אחת, עד 5 MiB",
"photo_url": "או קישור לתמונות",
"section.consent": "הסכמה",
"consent_contact": "אני מסכים/ה שייצרו איתי קשר בנוגע לפנייה זו.",
"consent_privacy": "אני מסכים/ה שהתשובות יישמרו לצורך טיפול בפנייה."
},
"es": {
"title": "Formulario de parte de siniestro",
"lede": "Comunica un siniestro. Envía los hechos de lo ocurrido, no documentos que no necesites para el primer aviso.",
"submit": "Enviar",
"thanks": "Enviado. Gracias.",
"file_too_big": "Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.",
"error": "No se pudo enviar. Inténtalo de nuevo.",
"disclaimer": "Este formulario no es un contrato de seguro ni un registro legal del siniestro. Envía solo lo necesario para la cotización o para registrar la solicitud. Los datos de salud son una categoría especial en el RGPD: no los incluyas si la solicitud puede tramitarse sin ellos.",
"section.policy": "Póliza",
"policy_number": "Número de póliza",
"cover_type": "Cobertura",
"cover_type.auto": "Coche",
"cover_type.home": "Hogar",
"cover_type.travel": "Viaje",
"cover_type.other": "Otro",
"incident_date": "Fecha del siniestro",
"section.incident": "Lo ocurrido",
"city": "Ciudad",
"description": "¿Qué ocurrió?",
"police_report": "¿Se presentó denuncia policial?",
"police_report.yes": "Sí",
"police_report.no": "No",
"police_ref": "Número de denuncia",
"section.contact": "Contacto",
"name": "Nombre",
"email": "Correo electrónico",
"phone": "Teléfono",
"section.evidence": "Fotos",
"photo": "Una foto, hasta 5 MiB",
"photo_url": "O un enlace a las fotos",
"section.consent": "Consentimiento",
"consent_contact": "Acepto que me contacten sobre esta solicitud.",
"consent_privacy": "Acepto que estas respuestas se guarden para tramitar la solicitud."
},
"fr": {
"title": "Formulaire de déclaration de sinistre",
"lede": "Déclarez un sinistre. Envoyez les faits, pas des documents inutiles pour la première déclaration.",
"submit": "Envoyer",
"thanks": "Envoyé. Merci.",
"file_too_big": "Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.",
"error": "Envoi impossible. Veuillez réessayer.",
"disclaimer": "Ce formulaire n’est pas un contrat d’assurance ni un enregistrement juridique du sinistre. N’envoyez que ce qui est nécessaire pour un devis ou pour enregistrer la demande. Les données de santé sont une catégorie particulière au sens du RGPD : ne les ajoutez pas si la demande peut être traitée sans elles.",
"section.policy": "Contrat",
"policy_number": "Numéro de contrat",
"cover_type": "Couverture",
"cover_type.auto": "Auto",
"cover_type.home": "Habitation",
"cover_type.travel": "Voyage",
"cover_type.other": "Autre",
"incident_date": "Date du sinistre",
"section.incident": "Ce qui s’est passé",
"city": "Ville",
"description": "Que s’est-il passé ?",
"police_report": "Une plainte a-t-elle été déposée ?",
"police_report.yes": "Oui",
"police_report.no": "Non",
"police_ref": "Numéro de plainte",
"section.contact": "Contact",
"name": "Nom",
"email": "E-mail",
"phone": "Téléphone",
"section.evidence": "Photos",
"photo": "Une photo, jusqu’à 5 Mio",
"photo_url": "Ou un lien vers les photos",
"section.consent": "Consentement",
"consent_contact": "J’accepte d’être contacté au sujet de cette demande.",
"consent_privacy": "J’accepte que ces réponses soient conservées pour traiter la demande."
},
"pt": {
"title": "Formulário de participação de sinistro",
"lede": "Participe um sinistro. Envie os factos do que aconteceu, não documentos desnecessários para a primeira participação.",
"submit": "Enviar",
"thanks": "Enviado. Obrigado.",
"file_too_big": "Até 3 ficheiros, 5 MiB cada e 10 MiB no total.",
"error": "Não foi possível enviar. Tente novamente.",
"disclaimer": "Este formulário não é um contrato de seguro nem um registo legal do sinistro. Envie apenas o que for preciso para a cotação ou para registar o pedido. Os dados de saúde são uma categoria especial no RGPD — não os inclua se o pedido puder ser tratado sem eles.",
"section.policy": "Apólice",
"policy_number": "Número da apólice",
"cover_type": "Cobertura",
"cover_type.auto": "Automóvel",
"cover_type.home": "Habitação",
"cover_type.travel": "Viagem",
"cover_type.other": "Outro",
"incident_date": "Data do sinistro",
"section.incident": "O que aconteceu",
"city": "Cidade",
"description": "O que aconteceu?",
"police_report": "Foi apresentada queixa à polícia?",
"police_report.yes": "Sim",
"police_report.no": "Não",
"police_ref": "Número da queixa",
"section.contact": "Contacto",
"name": "Nome",
"email": "Email",
"phone": "Telefone",
"section.evidence": "Fotografias",
"photo": "Uma fotografia, até 5 MiB",
"photo_url": "Ou uma ligação para as fotografias",
"section.consent": "Consentimento",
"consent_contact": "Aceito ser contactado sobre este pedido.",
"consent_privacy": "Aceito que estas respostas sejam guardadas para tratar o pedido."
},
"hi": {
"title": "बीमा क्लेम फ़ॉर्म",
"lede": "क्लेम दर्ज करें। क्या हुआ, उसके तथ्य भेजें, वे दस्तावेज़ नहीं जिनकी पहली सूचना के लिए ज़रूरत नहीं है।",
"submit": "भेजें",
"thanks": "भेज दिया गया। धन्यवाद।",
"file_too_big": "अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।",
"error": "भेजा नहीं जा सका। कृपया फिर से कोशिश करें।",
"disclaimer": "यह फ़ॉर्म बीमा अनुबंध या दावे का कानूनी रिकॉर्ड नहीं है। कोटेशन या अनुरोध दर्ज करने के लिए जितना ज़रूरी हो उतना ही भेजें। स्वास्थ्य डेटा GDPR में विशेष श्रेणी है — अगर अनुरोध उसके बिना हो सकता है तो उसे न जोड़ें।",
"section.policy": "पॉलिसी",
"policy_number": "पॉलिसी नंबर",
"cover_type": "कवरेज",
"cover_type.auto": "कार",
"cover_type.home": "घर",
"cover_type.travel": "यात्रा",
"cover_type.other": "अन्य",
"incident_date": "घटना की तारीख",
"section.incident": "क्या हुआ",
"city": "शहर",
"description": "क्या हुआ?",
"police_report": "क्या पुलिस रिपोर्ट दर्ज हुई?",
"police_report.yes": "हाँ",
"police_report.no": "नहीं",
"police_ref": "रिपोर्ट नंबर",
"section.contact": "संपर्क",
"name": "नाम",
"email": "ईमेल",
"phone": "फ़ोन",
"section.evidence": "फ़ोटो",
"photo": "एक फ़ोटो, 5 MiB तक",
"photo_url": "या फ़ोटो का लिंक",
"section.consent": "सहमति",
"consent_contact": "मैं इस अनुरोध के बारे में संपर्क किए जाने के लिए सहमत हूँ।",
"consent_privacy": "मैं सहमत हूँ कि अनुरोध पर काम करने के लिए ये जवाब सहेजे जाएँ।"
},
"ja": {
"title": "保険金請求フォーム",
"lede": "事故を届け出ます。最初の連絡に不要な書類ではなく、何が起きたかを送ってください。",
"submit": "送信",
"thanks": "送信しました。ありがとうございます。",
"file_too_big": "ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。",
"error": "送信できませんでした。もう一度お試しください。",
"disclaimer": "このフォームは、保険契約や請求に関する法的記録ではありません。見積もりやリクエストの登録に必要な情報のみを送信してください。健康に関する情報は、GDPRにおける特別カテゴリーのデータに該当します。その情報なしではリクエストを処理できない場合を除き、記載しないでください。",
"section.policy": "保険証券",
"policy_number": "証券番号",
"cover_type": "補償",
"cover_type.auto": "自動車",
"cover_type.home": "住宅",
"cover_type.travel": "旅行",
"cover_type.other": "その他",
"incident_date": "事故日",
"section.incident": "事故の内容",
"city": "市区町村",
"description": "何が起きましたか?",
"police_report": "警察に届け出ましたか?",
"police_report.yes": "はい",
"police_report.no": "いいえ",
"police_ref": "受理番号",
"section.contact": "連絡先",
"name": "お名前",
"email": "メールアドレス",
"phone": "電話番号",
"section.evidence": "写真",
"photo": "写真1枚(5 MiB まで)",
"photo_url": "または写真へのリンク",
"section.consent": "同意",
"consent_contact": "このお問い合わせについて連絡を受けることに同意します。",
"consent_privacy": "お問い合わせへの対応のため、これらの回答が保存されることに同意します。"
},
"de": {
"title": "Formular für Schadensmeldungen",
"lede": "Schaden melden. Senden Sie den Sachverhalt, keine Unterlagen, die für die Erstmeldung nicht nötig sind.",
"submit": "Senden",
"thanks": "Gesendet. Vielen Dank.",
"file_too_big": "Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.",
"error": "Senden fehlgeschlagen. Bitte versuchen Sie es erneut.",
"disclaimer": "Dieses Formular ist kein Versicherungsvertrag und keine rechtsverbindliche Schadensmeldung. Senden Sie nur, was für ein Angebot oder die Erfassung der Anfrage nötig ist. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten – lassen Sie sie weg, sofern die Anfrage ohne sie bearbeitet werden kann.",
"section.policy": "Vertrag",
"policy_number": "Versicherungsscheinnummer",
"cover_type": "Versicherungsschutz",
"cover_type.auto": "Kfz",
"cover_type.home": "Wohngebäude/Hausrat",
"cover_type.travel": "Reise",
"cover_type.other": "Sonstiges",
"incident_date": "Schadensdatum",
"section.incident": "Hergang",
"city": "Stadt",
"description": "Was ist passiert?",
"police_report": "Wurde Anzeige bei der Polizei erstattet?",
"police_report.yes": "Ja",
"police_report.no": "Nein",
"police_ref": "Aktenzeichen",
"section.contact": "Kontakt",
"name": "Name",
"email": "E-Mail",
"phone": "Telefon",
"section.evidence": "Fotos",
"photo": "Ein Foto, bis zu 5 MiB",
"photo_url": "Oder einen Link zu Fotos",
"section.consent": "Einwilligung",
"consent_contact": "Ich bin damit einverstanden, bezüglich dieser Anfrage kontaktiert zu werden.",
"consent_privacy": "Ich stimme zu, dass diese Antworten gespeichert werden, damit die Anfrage bearbeitet werden kann."
}
};
const t = computed(() => LABELS[props.lang] || LABELS.en);
const status = ref("");
const captcha = ref(null);
let disposeCaptcha;
onMounted(() => { disposeCaptcha = mountCaptcha(captcha.value, props.turnstileSiteKey); });
onBeforeUnmount(() => disposeCaptcha?.());
const values = reactive({ police_report: "" });
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
async function onSubmit(event) {
const form = event.currentTarget;
event.preventDefault();
const body = new FormData(form);
body.set("_lang", props.lang);
const files = Array.from(body.values()).filter(value => value instanceof File && value.size);
if (files.length > 3 || files.some(file => file.size > FILE_MAX) || files.reduce((sum,file) => sum + file.size,0) > 10 * 1024 * 1024) {
status.value = t.value.file_too_big;
return;
}
const button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
try {
const response = await fetch(ENDPOINT, { method: "POST", headers: { Accept: "application/json" }, body });
const result = await response.json();
status.value = result.success ? t.value.thanks : (result.message || t.value.error);
} catch { status.value = t.value.error; }
finally { if (button) button.disabled = false; resetCaptcha(form); }
}
</script>
<template>
<form @submit.prevent="onSubmit">
<h1>{{ t.title }}</h1>
<p>{{ t.lede }}</p>
<p v-if="t.disclaimer">{{ t.disclaimer }}</p>
<input type="hidden" name="access_key" :value="accessKey">
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden">
<input name="botcheck" tabindex="-1" autocomplete="off">
</div>
<section><h2>{{ t["section.policy"] }}</h2>
<label><span>{{ t["policy_number"] }}</span><input name="policy_number" type="text" required maxlength="40"></label>
<label><span>{{ t["cover_type"] }}</span><select name="cover_type" required><option value="">—</option><option value="auto">{{ t["cover_type.auto"] }}</option><option value="home">{{ t["cover_type.home"] }}</option><option value="travel">{{ t["cover_type.travel"] }}</option><option value="other">{{ t["cover_type.other"] }}</option></select></label>
<label><span>{{ t["incident_date"] }}</span><input name="incident_date" type="date" required></label></section>
<section><h2>{{ t["section.incident"] }}</h2>
<label><span>{{ t["city"] }}</span><input name="city" type="text" required maxlength="80" autocomplete="address-level2"></label>
<label><span>{{ t["description"] }}</span><textarea name="description" required maxlength="1000"></textarea></label>
<label><span>{{ t["police_report"] }}</span><select name="police_report" required v-model="values.police_report"><option value="">—</option><option value="yes">{{ t["police_report.yes"] }}</option><option value="no">{{ t["police_report.no"] }}</option></select></label>
<template v-if="values["police_report"] === 'yes'"><label><span>{{ t["police_ref"] }}</span><input name="police_ref" type="text" maxlength="40"></label></template></section>
<section><h2>{{ t["section.contact"] }}</h2>
<label><span>{{ t["name"] }}</span><input name="name" type="text" required maxlength="80" autocomplete="name"></label>
<label><span>{{ t["email"] }}</span><input name="email" type="email" required maxlength="120" autocomplete="email"></label>
<label><span>{{ t["phone"] }}</span><input name="phone" type="tel" required maxlength="40" autocomplete="tel"></label></section>
<section><h2>{{ t["section.evidence"] }}</h2>
<label><span>{{ t["photo"] }}</span><input name="photo" type="file" accept=".jpg,.jpeg,.png"></label>
<label><span>{{ t["photo_url"] }}</span><input name="photo_url" type="url" maxlength="300"></label></section>
<section><h2>{{ t["section.consent"] }}</h2>
<label class="check"><input name="consent_contact" type="checkbox" value="yes" required><span>{{ t["consent_contact"] }}</span></label>
<label class="check"><input name="consent_privacy" type="checkbox" value="yes" required><span>{{ t["consent_privacy"] }}</span></label></section>
<!-- Set turnstileSiteKey to YOUR_TURNSTILE_SITE_KEY. Required for attachments. -->
<div ref="captcha" data-turnstile></div>
<button type="submit">{{ t.submit }}</button>
<p>{{ status }}</p>
</form>
</template>
<!-- Generated from src/content/industries.ts — npm run templates:write -->
<script>
import { onMount } from "svelte";
let { lang = "de", accessKey = "fk_your_access_key", turnstileSiteKey = "" } = $props();
let captcha;
onMount(() => mountCaptcha(captcha, turnstileSiteKey));
const ENDPOINT = "https://formgong.com/submit";
const FILE_MAX = 5242880;
const LABELS = {
"uk": {
"title": "Форма заяви про страховий випадок",
"lede": "Реєстрація випадку. Опишіть, що сталося, без документів, які не потрібні для першого повідомлення.",
"submit": "Надіслати",
"thanks": "Надіслано. Дякуємо.",
"file_too_big": "До 3 файлів, по 5 MiB, разом до 10 MiB.",
"error": "Не вдалося надіслати. Спробуйте ще раз.",
"disclaimer": "Ця форма не є договором страхування і не є юридичним записом про випадок. Надсилайте лише те, що потрібно для розрахунку чи реєстрації заявки. Дані про здоров'я — особлива категорія за GDPR: не додавайте їх, якщо без них заявку можна обробити.",
"section.policy": "Поліс",
"policy_number": "Номер поліса",
"cover_type": "Покриття",
"cover_type.auto": "Авто",
"cover_type.home": "Житло",
"cover_type.travel": "Подорож",
"cover_type.other": "Інше",
"incident_date": "Дата випадку",
"section.incident": "Що сталося",
"city": "Місто",
"description": "Що сталося?",
"police_report": "Чи є заява в поліцію?",
"police_report.yes": "Так",
"police_report.no": "Ні",
"police_ref": "Номер заяви",
"section.contact": "Контакт",
"name": "Ім'я",
"email": "Електронна пошта",
"phone": "Телефон",
"section.evidence": "Фото",
"photo": "Одне фото, до 5 MiB",
"photo_url": "Або посилання на фото",
"section.consent": "Згода",
"consent_contact": "Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.",
"consent_privacy": "Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."
},
"en": {
"title": "Insurance claim form",
"lede": "Register a claim. Send the facts of what happened, not documents you do not need for the first notice.",
"submit": "Send",
"thanks": "Sent. Thank you.",
"file_too_big": "Up to 3 files, 5 MiB each and 10 MiB combined.",
"error": "Could not send. Please try again.",
"disclaimer": "This form is not an insurance contract or a legal record of a claim. Send only what is needed to quote or register the request. Health details are special-category data under the GDPR — leave them out unless the request cannot be handled without them.",
"section.policy": "Policy",
"policy_number": "Policy number",
"cover_type": "Cover",
"cover_type.auto": "Car",
"cover_type.home": "Home",
"cover_type.travel": "Travel",
"cover_type.other": "Other",
"incident_date": "Date of the incident",
"section.incident": "What happened",
"city": "City",
"description": "What happened?",
"police_report": "Was a police report filed?",
"police_report.yes": "Yes",
"police_report.no": "No",
"police_ref": "Report number",
"section.contact": "Contact",
"name": "Name",
"email": "Email",
"phone": "Phone",
"section.evidence": "Photos",
"photo": "One photo, up to 5 MiB",
"photo_url": "Or a link to photos",
"section.consent": "Consent",
"consent_contact": "I agree to be contacted about this request.",
"consent_privacy": "I agree that these answers are stored so the request can be handled."
},
"pl": {
"title": "Formularz zgłoszenia szkody",
"lede": "Zgłoszenie szkody. Opisz, co się stało, bez dokumentów zbędnych przy pierwszym zgłoszeniu.",
"submit": "Wyślij",
"thanks": "Wysłano. Dziękujemy.",
"file_too_big": "Do 3 plików, po 5 MiB, łącznie 10 MiB.",
"error": "Nie udało się wysłać. Spróbuj ponownie.",
"disclaimer": "Ten formularz nie jest umową ubezpieczenia ani prawnym zapisem szkody. Podaj tylko to, co jest potrzebne do wyceny lub rejestracji zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO — pomiń je, jeśli zgłoszenie da się obsłużyć bez nich.",
"section.policy": "Polisa",
"policy_number": "Numer polisy",
"cover_type": "Ochrona",
"cover_type.auto": "Samochód",
"cover_type.home": "Dom",
"cover_type.travel": "Podróż",
"cover_type.other": "Inne",
"incident_date": "Data zdarzenia",
"section.incident": "Co się stało",
"city": "Miasto",
"description": "Co się stało?",
"police_report": "Czy złożono zawiadomienie na policji?",
"police_report.yes": "Tak",
"police_report.no": "Nie",
"police_ref": "Numer zawiadomienia",
"section.contact": "Kontakt",
"name": "Imię",
"email": "E-mail",
"phone": "Telefon",
"section.evidence": "Zdjęcia",
"photo": "Jedno zdjęcie, do 5 MiB",
"photo_url": "Albo link do zdjęć",
"section.consent": "Zgoda",
"consent_contact": "Zgadzam się na kontakt w sprawie tego zgłoszenia.",
"consent_privacy": "Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."
},
"tr": {
"title": "Hasar bildirim formu",
"lede": "Hasar bildirimi. İlk kayıt için gerekmeyen belgeleri değil, olanı yazın.",
"submit": "Gönder",
"thanks": "Gönderildi. Teşekkürler.",
"file_too_big": "En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.",
"error": "Gönderilemedi. Lütfen tekrar deneyin.",
"disclaimer": "Bu form bir sigorta sözleşmesi ya da hasarın yasal kaydı değildir. Teklif veya kayıt için gereken kadarını gönderin. Sağlık verisi GDPR'de özel niteliklidir; talep onsuz işlenebiliyorsa eklemeyin.",
"section.policy": "Poliçe",
"policy_number": "Poliçe numarası",
"cover_type": "Teminat",
"cover_type.auto": "Araç",
"cover_type.home": "Konut",
"cover_type.travel": "Seyahat",
"cover_type.other": "Diğer",
"incident_date": "Olay tarihi",
"section.incident": "Ne oldu",
"city": "Şehir",
"description": "Ne oldu?",
"police_report": "Polis tutanağı var mı?",
"police_report.yes": "Evet",
"police_report.no": "Hayır",
"police_ref": "Tutanak numarası",
"section.contact": "İletişim",
"name": "Ad",
"email": "E-posta",
"phone": "Telefon",
"section.evidence": "Fotoğraflar",
"photo": "Bir fotoğraf, en fazla 5 MiB",
"photo_url": "Ya da fotoğraf bağlantısı",
"section.consent": "Onay",
"consent_contact": "Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.",
"consent_privacy": "Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."
},
"ar": {
"title": "نموذج مطالبة تأمين",
"lede": "سجّل مطالبة. أرسل وقائع ما حدث، لا مستندات لا تحتاجها للإبلاغ الأول.",
"submit": "إرسال",
"thanks": "تم الإرسال. شكرًا لك.",
"file_too_big": "حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.",
"error": "تعذّر الإرسال. يُرجى المحاولة مرة أخرى.",
"disclaimer": "هذا النموذج ليس عقد تأمين ولا سجلاً قانونياً لمطالبة. أرسل فقط ما هو ضروري لتقديم عرض أسعار أو تسجيل الطلب. تعتبر التفاصيل الصحية بيانات من فئة خاصة بموجب اللائحة العامة لحماية البيانات (GDPR) — استبعدها ما لم يكن من المستحيل معالجة الطلب بدونها.",
"section.policy": "الوثيقة",
"policy_number": "رقم الوثيقة",
"cover_type": "التغطية",
"cover_type.auto": "سيارة",
"cover_type.home": "منزل",
"cover_type.travel": "سفر",
"cover_type.other": "أخرى",
"incident_date": "تاريخ الحادث",
"section.incident": "ما حدث",
"city": "المدينة",
"description": "ماذا حدث؟",
"police_report": "هل قُدّم بلاغ للشرطة؟",
"police_report.yes": "نعم",
"police_report.no": "لا",
"police_ref": "رقم البلاغ",
"section.contact": "التواصل",
"name": "الاسم",
"email": "البريد الإلكتروني",
"phone": "الهاتف",
"section.evidence": "الصور",
"photo": "صورة واحدة حتى 5 MiB",
"photo_url": "أو رابط للصور",
"section.consent": "الموافقة",
"consent_contact": "أوافق على التواصل معي بخصوص هذا الطلب.",
"consent_privacy": "أوافق على حفظ هذه الإجابات لمعالجة الطلب."
},
"he": {
"title": "טופס הגשת תביעת ביטוח",
"lede": "דיווח על אירוע. שלחו את עובדות המקרה, בלי מסמכים שאינם נחוצים להודעה הראשונה.",
"submit": "שליחה",
"thanks": "נשלח. תודה.",
"file_too_big": "עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.",
"error": "השליחה נכשלה. נסו שוב.",
"disclaimer": "הטופס הזה אינו חוזה ביטוח ואינו תיעוד משפטי של תביעה. שלחו רק את מה שנדרש להצעת מחיר או לרישום הפנייה. נתוני בריאות הם קטגוריה מיוחדת לפי ה-GDPR — אל תוסיפו אותם אם אפשר לטפל בפנייה בלעדיהם.",
"section.policy": "פוליסה",
"policy_number": "מספר פוליסה",
"cover_type": "כיסוי",
"cover_type.auto": "רכב",
"cover_type.home": "דירה",
"cover_type.travel": "נסיעות",
"cover_type.other": "אחר",
"incident_date": "תאריך האירוע",
"section.incident": "מה קרה",
"city": "עיר",
"description": "מה קרה?",
"police_report": "האם הוגשה תלונה במשטרה?",
"police_report.yes": "כן",
"police_report.no": "לא",
"police_ref": "מספר תיק",
"section.contact": "פרטי קשר",
"name": "שם",
"email": "אימייל",
"phone": "טלפון",
"section.evidence": "תמונות",
"photo": "תמונה אחת, עד 5 MiB",
"photo_url": "או קישור לתמונות",
"section.consent": "הסכמה",
"consent_contact": "אני מסכים/ה שייצרו איתי קשר בנוגע לפנייה זו.",
"consent_privacy": "אני מסכים/ה שהתשובות יישמרו לצורך טיפול בפנייה."
},
"es": {
"title": "Formulario de parte de siniestro",
"lede": "Comunica un siniestro. Envía los hechos de lo ocurrido, no documentos que no necesites para el primer aviso.",
"submit": "Enviar",
"thanks": "Enviado. Gracias.",
"file_too_big": "Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.",
"error": "No se pudo enviar. Inténtalo de nuevo.",
"disclaimer": "Este formulario no es un contrato de seguro ni un registro legal del siniestro. Envía solo lo necesario para la cotización o para registrar la solicitud. Los datos de salud son una categoría especial en el RGPD: no los incluyas si la solicitud puede tramitarse sin ellos.",
"section.policy": "Póliza",
"policy_number": "Número de póliza",
"cover_type": "Cobertura",
"cover_type.auto": "Coche",
"cover_type.home": "Hogar",
"cover_type.travel": "Viaje",
"cover_type.other": "Otro",
"incident_date": "Fecha del siniestro",
"section.incident": "Lo ocurrido",
"city": "Ciudad",
"description": "¿Qué ocurrió?",
"police_report": "¿Se presentó denuncia policial?",
"police_report.yes": "Sí",
"police_report.no": "No",
"police_ref": "Número de denuncia",
"section.contact": "Contacto",
"name": "Nombre",
"email": "Correo electrónico",
"phone": "Teléfono",
"section.evidence": "Fotos",
"photo": "Una foto, hasta 5 MiB",
"photo_url": "O un enlace a las fotos",
"section.consent": "Consentimiento",
"consent_contact": "Acepto que me contacten sobre esta solicitud.",
"consent_privacy": "Acepto que estas respuestas se guarden para tramitar la solicitud."
},
"fr": {
"title": "Formulaire de déclaration de sinistre",
"lede": "Déclarez un sinistre. Envoyez les faits, pas des documents inutiles pour la première déclaration.",
"submit": "Envoyer",
"thanks": "Envoyé. Merci.",
"file_too_big": "Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.",
"error": "Envoi impossible. Veuillez réessayer.",
"disclaimer": "Ce formulaire n’est pas un contrat d’assurance ni un enregistrement juridique du sinistre. N’envoyez que ce qui est nécessaire pour un devis ou pour enregistrer la demande. Les données de santé sont une catégorie particulière au sens du RGPD : ne les ajoutez pas si la demande peut être traitée sans elles.",
"section.policy": "Contrat",
"policy_number": "Numéro de contrat",
"cover_type": "Couverture",
"cover_type.auto": "Auto",
"cover_type.home": "Habitation",
"cover_type.travel": "Voyage",
"cover_type.other": "Autre",
"incident_date": "Date du sinistre",
"section.incident": "Ce qui s’est passé",
"city": "Ville",
"description": "Que s’est-il passé ?",
"police_report": "Une plainte a-t-elle été déposée ?",
"police_report.yes": "Oui",
"police_report.no": "Non",
"police_ref": "Numéro de plainte",
"section.contact": "Contact",
"name": "Nom",
"email": "E-mail",
"phone": "Téléphone",
"section.evidence": "Photos",
"photo": "Une photo, jusqu’à 5 Mio",
"photo_url": "Ou un lien vers les photos",
"section.consent": "Consentement",
"consent_contact": "J’accepte d’être contacté au sujet de cette demande.",
"consent_privacy": "J’accepte que ces réponses soient conservées pour traiter la demande."
},
"pt": {
"title": "Formulário de participação de sinistro",
"lede": "Participe um sinistro. Envie os factos do que aconteceu, não documentos desnecessários para a primeira participação.",
"submit": "Enviar",
"thanks": "Enviado. Obrigado.",
"file_too_big": "Até 3 ficheiros, 5 MiB cada e 10 MiB no total.",
"error": "Não foi possível enviar. Tente novamente.",
"disclaimer": "Este formulário não é um contrato de seguro nem um registo legal do sinistro. Envie apenas o que for preciso para a cotação ou para registar o pedido. Os dados de saúde são uma categoria especial no RGPD — não os inclua se o pedido puder ser tratado sem eles.",
"section.policy": "Apólice",
"policy_number": "Número da apólice",
"cover_type": "Cobertura",
"cover_type.auto": "Automóvel",
"cover_type.home": "Habitação",
"cover_type.travel": "Viagem",
"cover_type.other": "Outro",
"incident_date": "Data do sinistro",
"section.incident": "O que aconteceu",
"city": "Cidade",
"description": "O que aconteceu?",
"police_report": "Foi apresentada queixa à polícia?",
"police_report.yes": "Sim",
"police_report.no": "Não",
"police_ref": "Número da queixa",
"section.contact": "Contacto",
"name": "Nome",
"email": "Email",
"phone": "Telefone",
"section.evidence": "Fotografias",
"photo": "Uma fotografia, até 5 MiB",
"photo_url": "Ou uma ligação para as fotografias",
"section.consent": "Consentimento",
"consent_contact": "Aceito ser contactado sobre este pedido.",
"consent_privacy": "Aceito que estas respostas sejam guardadas para tratar o pedido."
},
"hi": {
"title": "बीमा क्लेम फ़ॉर्म",
"lede": "क्लेम दर्ज करें। क्या हुआ, उसके तथ्य भेजें, वे दस्तावेज़ नहीं जिनकी पहली सूचना के लिए ज़रूरत नहीं है।",
"submit": "भेजें",
"thanks": "भेज दिया गया। धन्यवाद।",
"file_too_big": "अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।",
"error": "भेजा नहीं जा सका। कृपया फिर से कोशिश करें।",
"disclaimer": "यह फ़ॉर्म बीमा अनुबंध या दावे का कानूनी रिकॉर्ड नहीं है। कोटेशन या अनुरोध दर्ज करने के लिए जितना ज़रूरी हो उतना ही भेजें। स्वास्थ्य डेटा GDPR में विशेष श्रेणी है — अगर अनुरोध उसके बिना हो सकता है तो उसे न जोड़ें।",
"section.policy": "पॉलिसी",
"policy_number": "पॉलिसी नंबर",
"cover_type": "कवरेज",
"cover_type.auto": "कार",
"cover_type.home": "घर",
"cover_type.travel": "यात्रा",
"cover_type.other": "अन्य",
"incident_date": "घटना की तारीख",
"section.incident": "क्या हुआ",
"city": "शहर",
"description": "क्या हुआ?",
"police_report": "क्या पुलिस रिपोर्ट दर्ज हुई?",
"police_report.yes": "हाँ",
"police_report.no": "नहीं",
"police_ref": "रिपोर्ट नंबर",
"section.contact": "संपर्क",
"name": "नाम",
"email": "ईमेल",
"phone": "फ़ोन",
"section.evidence": "फ़ोटो",
"photo": "एक फ़ोटो, 5 MiB तक",
"photo_url": "या फ़ोटो का लिंक",
"section.consent": "सहमति",
"consent_contact": "मैं इस अनुरोध के बारे में संपर्क किए जाने के लिए सहमत हूँ।",
"consent_privacy": "मैं सहमत हूँ कि अनुरोध पर काम करने के लिए ये जवाब सहेजे जाएँ।"
},
"ja": {
"title": "保険金請求フォーム",
"lede": "事故を届け出ます。最初の連絡に不要な書類ではなく、何が起きたかを送ってください。",
"submit": "送信",
"thanks": "送信しました。ありがとうございます。",
"file_too_big": "ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。",
"error": "送信できませんでした。もう一度お試しください。",
"disclaimer": "このフォームは、保険契約や請求に関する法的記録ではありません。見積もりやリクエストの登録に必要な情報のみを送信してください。健康に関する情報は、GDPRにおける特別カテゴリーのデータに該当します。その情報なしではリクエストを処理できない場合を除き、記載しないでください。",
"section.policy": "保険証券",
"policy_number": "証券番号",
"cover_type": "補償",
"cover_type.auto": "自動車",
"cover_type.home": "住宅",
"cover_type.travel": "旅行",
"cover_type.other": "その他",
"incident_date": "事故日",
"section.incident": "事故の内容",
"city": "市区町村",
"description": "何が起きましたか?",
"police_report": "警察に届け出ましたか?",
"police_report.yes": "はい",
"police_report.no": "いいえ",
"police_ref": "受理番号",
"section.contact": "連絡先",
"name": "お名前",
"email": "メールアドレス",
"phone": "電話番号",
"section.evidence": "写真",
"photo": "写真1枚(5 MiB まで)",
"photo_url": "または写真へのリンク",
"section.consent": "同意",
"consent_contact": "このお問い合わせについて連絡を受けることに同意します。",
"consent_privacy": "お問い合わせへの対応のため、これらの回答が保存されることに同意します。"
},
"de": {
"title": "Formular für Schadensmeldungen",
"lede": "Schaden melden. Senden Sie den Sachverhalt, keine Unterlagen, die für die Erstmeldung nicht nötig sind.",
"submit": "Senden",
"thanks": "Gesendet. Vielen Dank.",
"file_too_big": "Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.",
"error": "Senden fehlgeschlagen. Bitte versuchen Sie es erneut.",
"disclaimer": "Dieses Formular ist kein Versicherungsvertrag und keine rechtsverbindliche Schadensmeldung. Senden Sie nur, was für ein Angebot oder die Erfassung der Anfrage nötig ist. Gesundheitsdaten sind nach der DSGVO besondere Kategorien personenbezogener Daten – lassen Sie sie weg, sofern die Anfrage ohne sie bearbeitet werden kann.",
"section.policy": "Vertrag",
"policy_number": "Versicherungsscheinnummer",
"cover_type": "Versicherungsschutz",
"cover_type.auto": "Kfz",
"cover_type.home": "Wohngebäude/Hausrat",
"cover_type.travel": "Reise",
"cover_type.other": "Sonstiges",
"incident_date": "Schadensdatum",
"section.incident": "Hergang",
"city": "Stadt",
"description": "Was ist passiert?",
"police_report": "Wurde Anzeige bei der Polizei erstattet?",
"police_report.yes": "Ja",
"police_report.no": "Nein",
"police_ref": "Aktenzeichen",
"section.contact": "Kontakt",
"name": "Name",
"email": "E-Mail",
"phone": "Telefon",
"section.evidence": "Fotos",
"photo": "Ein Foto, bis zu 5 MiB",
"photo_url": "Oder einen Link zu Fotos",
"section.consent": "Einwilligung",
"consent_contact": "Ich bin damit einverstanden, bezüglich dieser Anfrage kontaktiert zu werden.",
"consent_privacy": "Ich stimme zu, dass diese Antworten gespeichert werden, damit die Anfrage bearbeitet werden kann."
}
};
let status = $state("");
let values = $state({ police_report: "" });
const t = $derived(LABELS[lang] || LABELS.en);
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
async function onSubmit(event) {
const form = event.currentTarget;
event.preventDefault();
const body = new FormData(form);
body.set("_lang", lang);
const files = Array.from(body.values()).filter(value => value instanceof File && value.size);
if (files.length > 3 || files.some(file => file.size > FILE_MAX) || files.reduce((sum,file) => sum + file.size,0) > 10 * 1024 * 1024) {
status = t.file_too_big;
return;
}
const button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
try {
const response = await fetch(ENDPOINT, { method: "POST", headers: { Accept: "application/json" }, body });
const result = await response.json();
status = result.success ? t.thanks : (result.message || t.error);
} catch { status = t.error; }
finally { if (button) button.disabled = false; resetCaptcha(form); }
}
</script>
<form onsubmit={onSubmit}>
<h1>{t.title}</h1>
<p>{t.lede}</p>
{#if t.disclaimer}<p>{t.disclaimer}</p>{/if}
<input type="hidden" name="access_key" value={accessKey}>
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden">
<input name="botcheck" tabindex="-1" autocomplete="off">
</div>
<section><h2>{t["section.policy"]}</h2>
<label><span>{t["policy_number"]}</span><input name="policy_number" type="text" required maxlength="40"></label>
<label><span>{t["cover_type"]}</span><select name="cover_type" required><option value="">—</option><option value="auto">{t["cover_type.auto"]}</option><option value="home">{t["cover_type.home"]}</option><option value="travel">{t["cover_type.travel"]}</option><option value="other">{t["cover_type.other"]}</option></select></label>
<label><span>{t["incident_date"]}</span><input name="incident_date" type="date" required></label></section>
<section><h2>{t["section.incident"]}</h2>
<label><span>{t["city"]}</span><input name="city" type="text" required maxlength="80"></label>
<label><span>{t["description"]}</span><textarea name="description" required maxlength="1000"></textarea></label>
<label><span>{t["police_report"]}</span><select name="police_report" required bind:value={values.police_report}><option value="">—</option><option value="yes">{t["police_report.yes"]}</option><option value="no">{t["police_report.no"]}</option></select></label>
{#if values.police_report === "yes"}<label><span>{t["police_ref"]}</span><input name="police_ref" type="text" maxlength="40"></label>{/if}</section>
<section><h2>{t["section.contact"]}</h2>
<label><span>{t["name"]}</span><input name="name" type="text" required maxlength="80"></label>
<label><span>{t["email"]}</span><input name="email" type="email" required maxlength="120"></label>
<label><span>{t["phone"]}</span><input name="phone" type="tel" required maxlength="40"></label></section>
<section><h2>{t["section.evidence"]}</h2>
<label><span>{t["photo"]}</span><input name="photo" type="file" accept=".jpg,.jpeg,.png"></label>
<label><span>{t["photo_url"]}</span><input name="photo_url" type="url" maxlength="300"></label></section>
<section><h2>{t["section.consent"]}</h2>
<label class="check"><input name="consent_contact" type="checkbox" value="yes" required><span>{t["consent_contact"]}</span></label>
<label class="check"><input name="consent_privacy" type="checkbox" value="yes" required><span>{t["consent_privacy"]}</span></label></section>
<!-- Set turnstileSiteKey to YOUR_TURNSTILE_SITE_KEY. Required for attachments. -->
<div bind:this={captcha} data-turnstile></div>
<button type="submit">{t.submit}</button>
<p>{status}</p>
</form>