From d5cd3f580d24060b1d4c65a62df36bc8e3af7887 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Sun, 2 Aug 2026 10:12:16 +0200 Subject: [PATCH] =?UTF-8?q?forms.js:=20Statusmeldungen=20(Validierung,=20E?= =?UTF-8?q?rfolg,=20Mailto-Fallback)=20i18n-f=C3=A4hig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die drei bisher hart kodierten deutschen Statustexte in forms.js (Validierungsfehler, Erfolgsmeldung, Mailto-Fallback inkl. Button) laufen jetzt über window.dogiUebersetzen() und wurden in allen 4 Bewerbungsformular-Wörterbüchern (creator/scout/modi/kooperation) für alle 5 Sprachen ergänzt. --- assets/js/forms.js | 22 ++++++++++++++++++---- assets/js/i18n-bewerben-creator.js | 23 +++++++++++++++++++++++ assets/js/i18n-bewerben-kooperation.js | 23 +++++++++++++++++++++++ assets/js/i18n-bewerben-modi.js | 23 +++++++++++++++++++++++ assets/js/i18n-bewerben-scout.js | 23 +++++++++++++++++++++++ 5 files changed, 110 insertions(+), 4 deletions(-) diff --git a/assets/js/forms.js b/assets/js/forms.js index 7187ed9..b6c2bdb 100644 --- a/assets/js/forms.js +++ b/assets/js/forms.js @@ -75,9 +75,15 @@ function setupForm(formId, subjectLabel) { const fields = [...form.querySelectorAll("input[required], select[required], textarea[required], input[type=email]")]; const allValid = fields.map(validateField).every(Boolean); + // Rein per JS gesetzte Statusmeldungen — Übersetzung über + // window.dogiUebersetzen() (siehe main.js), Wörterbuch kommt aus dem + // seiteneigenen assets/js/i18n-bewerben-*.js der jeweiligen Seite. + // Deutscher Text bleibt Fallback, falls ein Key mal fehlen sollte. if (!allValid) { if (status) { - status.textContent = "Bitte prüfe die markierten Felder — es fehlt noch etwas."; + status.textContent = window.dogiUebersetzen + ? window.dogiUebersetzen("form_error_validation") + : "Bitte prüfe die markierten Felder — es fehlt noch etwas."; status.className = "form-status show error"; } return; @@ -91,12 +97,20 @@ function setupForm(formId, subjectLabel) { if (status) { if (delivered) { - status.innerHTML = `Danke, das sieht super aus! 🩵 Deine Bewerbung ist sicher im Postfach von Team Dogi angekommen.`; + status.innerHTML = window.dogiUebersetzen + ? window.dogiUebersetzen("form_success_delivered") + : `Danke, das sieht super aus! 🩵 Deine Bewerbung ist sicher im Postfach von Team Dogi angekommen.`; status.className = "form-status show success"; } else { const mailto = buildMailto(subjectLabel, data); - status.innerHTML = `Danke, das sieht super aus! 🩵 Solange noch kein automatischer Versand eingerichtet ist: - E-Mail jetzt senden`; + const introText = window.dogiUebersetzen + ? window.dogiUebersetzen("form_success_fallback") + : `Danke, das sieht super aus! 🩵 Solange noch kein automatischer Versand eingerichtet ist:`; + const btnText = window.dogiUebersetzen + ? window.dogiUebersetzen("form_success_fallback_btn") + : "E-Mail jetzt senden"; + status.innerHTML = `${introText} + ${btnText}`; status.className = "form-status show success"; } } diff --git a/assets/js/i18n-bewerben-creator.js b/assets/js/i18n-bewerben-creator.js index 2edd609..0ad9334 100644 --- a/assets/js/i18n-bewerben-creator.js +++ b/assets/js/i18n-bewerben-creator.js @@ -83,4 +83,27 @@ window.I18N_PAGE = { fr: "Chercher une autre candidature", pt: "Procurar outra candidatura", }, + + form_error_validation: { + de: "Bitte prüfe die markierten Felder — es fehlt noch etwas.", "de-CH": "Bitte prüef die markierte Felder — es fehlt no öppis.", + en: "Please check the highlighted fields — something's still missing.", fr: "Merci de vérifier les champs signalés — il manque encore quelque chose.", pt: "Verifique os campos destacados — ainda falta algo.", + }, + form_success_delivered: { + de: `Danke, das sieht super aus! 🩵 Deine Bewerbung ist sicher im Postfach von Team Dogi angekommen.`, + "de-CH": `Danke, das gseht super us! 🩵 Dini Bewerbig isch sicher im Postfach vo Team Dogi acho.`, + en: `Thanks, that looks great! 🩵 Your application has safely arrived in Team Dogi's inbox.`, + fr: `Merci, ça a l'air génial ! 🩵 Ta candidature est bien arrivée dans la boîte de réception de la Team Dogi.`, + pt: `Obrigado, ficou ótimo! 🩵 Sua candidatura chegou com segurança na caixa de entrada da Team Dogi.`, + }, + form_success_fallback: { + de: `Danke, das sieht super aus! 🩵 Solange noch kein automatischer Versand eingerichtet ist:`, + "de-CH": `Danke, das gseht super us! 🩵 Solang no kei automatischer Versand yrichtet isch:`, + en: `Thanks, that looks great! 🩵 As long as automatic delivery isn't set up yet:`, + fr: `Merci, ça a l'air génial ! 🩵 Tant que l'envoi automatique n'est pas encore configuré :`, + pt: `Obrigado, ficou ótimo! 🩵 Enquanto o envio automático ainda não está configurado:`, + }, + form_success_fallback_btn: { + de: "E-Mail jetzt senden", "de-CH": "E-Mail jetzt schicke", + en: "Send Email Now", fr: "Envoyer l'e-mail maintenant", pt: "Enviar e-mail agora", + }, }; diff --git a/assets/js/i18n-bewerben-kooperation.js b/assets/js/i18n-bewerben-kooperation.js index 159bb1a..f529939 100644 --- a/assets/js/i18n-bewerben-kooperation.js +++ b/assets/js/i18n-bewerben-kooperation.js @@ -47,4 +47,27 @@ window.I18N_PAGE = { de: "Andere Bewerbung suchen", "de-CH": "Anderi Bewärbig sueche", en: "Look for a Different Application", fr: "Chercher une autre candidature", pt: "Procurar outra candidatura", }, + + form_error_validation: { + de: "Bitte prüfe die markierten Felder — es fehlt noch etwas.", "de-CH": "Bitte prüef die markierte Felder — es fehlt no öppis.", + en: "Please check the highlighted fields — something's still missing.", fr: "Merci de vérifier les champs signalés — il manque encore quelque chose.", pt: "Verifique os campos destacados — ainda falta algo.", + }, + form_success_delivered: { + de: `Danke, das sieht super aus! 🩵 Deine Bewerbung ist sicher im Postfach von Team Dogi angekommen.`, + "de-CH": `Danke, das gseht super us! 🩵 Dini Bewerbig isch sicher im Postfach vo Team Dogi acho.`, + en: `Thanks, that looks great! 🩵 Your application has safely arrived in Team Dogi's inbox.`, + fr: `Merci, ça a l'air génial ! 🩵 Ta candidature est bien arrivée dans la boîte de réception de la Team Dogi.`, + pt: `Obrigado, ficou ótimo! 🩵 Sua candidatura chegou com segurança na caixa de entrada da Team Dogi.`, + }, + form_success_fallback: { + de: `Danke, das sieht super aus! 🩵 Solange noch kein automatischer Versand eingerichtet ist:`, + "de-CH": `Danke, das gseht super us! 🩵 Solang no kei automatischer Versand yrichtet isch:`, + en: `Thanks, that looks great! 🩵 As long as automatic delivery isn't set up yet:`, + fr: `Merci, ça a l'air génial ! 🩵 Tant que l'envoi automatique n'est pas encore configuré :`, + pt: `Obrigado, ficou ótimo! 🩵 Enquanto o envio automático ainda não está configurado:`, + }, + form_success_fallback_btn: { + de: "E-Mail jetzt senden", "de-CH": "E-Mail jetzt schicke", + en: "Send Email Now", fr: "Envoyer l'e-mail maintenant", pt: "Enviar e-mail agora", + }, }; diff --git a/assets/js/i18n-bewerben-modi.js b/assets/js/i18n-bewerben-modi.js index 6bc5bf6..b84c343 100644 --- a/assets/js/i18n-bewerben-modi.js +++ b/assets/js/i18n-bewerben-modi.js @@ -79,4 +79,27 @@ window.I18N_PAGE = { de: "Andere Bewerbung suchen", "de-CH": "Anderi Bewärbig sueche", en: "Looking for a different application", fr: "Chercher une autre candidature", pt: "Procurar outra candidatura", }, + + form_error_validation: { + de: "Bitte prüfe die markierten Felder — es fehlt noch etwas.", "de-CH": "Bitte prüef die markierte Felder — es fehlt no öppis.", + en: "Please check the highlighted fields — something's still missing.", fr: "Merci de vérifier les champs signalés — il manque encore quelque chose.", pt: "Verifique os campos destacados — ainda falta algo.", + }, + form_success_delivered: { + de: `Danke, das sieht super aus! 🩵 Deine Bewerbung ist sicher im Postfach von Team Dogi angekommen.`, + "de-CH": `Danke, das gseht super us! 🩵 Dini Bewerbig isch sicher im Postfach vo Team Dogi acho.`, + en: `Thanks, that looks great! 🩵 Your application has safely arrived in Team Dogi's inbox.`, + fr: `Merci, ça a l'air génial ! 🩵 Ta candidature est bien arrivée dans la boîte de réception de la Team Dogi.`, + pt: `Obrigado, ficou ótimo! 🩵 Sua candidatura chegou com segurança na caixa de entrada da Team Dogi.`, + }, + form_success_fallback: { + de: `Danke, das sieht super aus! 🩵 Solange noch kein automatischer Versand eingerichtet ist:`, + "de-CH": `Danke, das gseht super us! 🩵 Solang no kei automatischer Versand yrichtet isch:`, + en: `Thanks, that looks great! 🩵 As long as automatic delivery isn't set up yet:`, + fr: `Merci, ça a l'air génial ! 🩵 Tant que l'envoi automatique n'est pas encore configuré :`, + pt: `Obrigado, ficou ótimo! 🩵 Enquanto o envio automático ainda não está configurado:`, + }, + form_success_fallback_btn: { + de: "E-Mail jetzt senden", "de-CH": "E-Mail jetzt schicke", + en: "Send Email Now", fr: "Envoyer l'e-mail maintenant", pt: "Enviar e-mail agora", + }, }; diff --git a/assets/js/i18n-bewerben-scout.js b/assets/js/i18n-bewerben-scout.js index 2931e15..9b04fd5 100644 --- a/assets/js/i18n-bewerben-scout.js +++ b/assets/js/i18n-bewerben-scout.js @@ -68,4 +68,27 @@ window.I18N_PAGE = { de: "Andere Bewerbung suchen", "de-CH": "Anderi Bewärbig sueche", en: "Look for a Different Application", fr: "Chercher une autre candidature", pt: "Procurar outra candidatura", }, + + form_error_validation: { + de: "Bitte prüfe die markierten Felder — es fehlt noch etwas.", "de-CH": "Bitte prüef die markierte Felder — es fehlt no öppis.", + en: "Please check the highlighted fields — something's still missing.", fr: "Merci de vérifier les champs signalés — il manque encore quelque chose.", pt: "Verifique os campos destacados — ainda falta algo.", + }, + form_success_delivered: { + de: `Danke, das sieht super aus! 🩵 Deine Bewerbung ist sicher im Postfach von Team Dogi angekommen.`, + "de-CH": `Danke, das gseht super us! 🩵 Dini Bewerbig isch sicher im Postfach vo Team Dogi acho.`, + en: `Thanks, that looks great! 🩵 Your application has safely arrived in Team Dogi's inbox.`, + fr: `Merci, ça a l'air génial ! 🩵 Ta candidature est bien arrivée dans la boîte de réception de la Team Dogi.`, + pt: `Obrigado, ficou ótimo! 🩵 Sua candidatura chegou com segurança na caixa de entrada da Team Dogi.`, + }, + form_success_fallback: { + de: `Danke, das sieht super aus! 🩵 Solange noch kein automatischer Versand eingerichtet ist:`, + "de-CH": `Danke, das gseht super us! 🩵 Solang no kei automatischer Versand yrichtet isch:`, + en: `Thanks, that looks great! 🩵 As long as automatic delivery isn't set up yet:`, + fr: `Merci, ça a l'air génial ! 🩵 Tant que l'envoi automatique n'est pas encore configuré :`, + pt: `Obrigado, ficou ótimo! 🩵 Enquanto o envio automático ainda não está configurado:`, + }, + form_success_fallback_btn: { + de: "E-Mail jetzt senden", "de-CH": "E-Mail jetzt schicke", + en: "Send Email Now", fr: "Envoyer l'e-mail maintenant", pt: "Enviar e-mail agora", + }, };