forms.js: Statusmeldungen (Validierung, Erfolg, Mailto-Fallback) i18n-fähig

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.
This commit is contained in:
2026-08-02 10:12:16 +02:00
parent c1e83bfd5a
commit d5cd3f580d
5 changed files with 110 additions and 4 deletions
+18 -4
View File
@@ -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:
<a href="${mailto}" class="btn btn-outline" style="margin-top:.6rem;">E-Mail jetzt senden</a>`;
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}
<a href="${mailto}" class="btn btn-outline" style="margin-top:.6rem;">${btnText}</a>`;
status.className = "form-status show success";
}
}
+23
View File
@@ -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",
},
};
+23
View File
@@ -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",
},
};
+23
View File
@@ -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",
},
};
+23
View File
@@ -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",
},
};