feat(newsletter): newsletter signup as internal component
Wire a newsletter signup form into the CMS internal-component pattern (form-newsletter). Posts to /api/newsletter which subscribes to listmonk (double opt-in) and mirrors a best-effort backup record to the RustyCMS forms plugin. Reuses the contact-form anti-spam stack: Cloudflare Turnstile, honeypots, client-age check, origin validation. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -353,6 +353,22 @@ const TRANSLATION_KEYS = [
|
||||
"mitmachen_error_files_count", // {{n}}
|
||||
"mitmachen_error_files_size", // {{mb}}
|
||||
"mitmachen_error_files_type",
|
||||
// Newsletter form (NewsletterFormComponent.svelte). Generische Submit-/
|
||||
// Server-Error-Texte werden aus contact_* wiederverwendet.
|
||||
"newsletter_label_name",
|
||||
"newsletter_placeholder_name",
|
||||
"newsletter_label_email",
|
||||
"newsletter_placeholder_email",
|
||||
"newsletter_label_consent",
|
||||
"newsletter_privacy_note",
|
||||
"newsletter_submit",
|
||||
"newsletter_submitting",
|
||||
"newsletter_success_title",
|
||||
"newsletter_success_body",
|
||||
"newsletter_error_email_required",
|
||||
"newsletter_error_email_invalid",
|
||||
"newsletter_error_email_max", // {{n}}
|
||||
"newsletter_error_consent_required",
|
||||
] as const;
|
||||
|
||||
export type TranslationKey = (typeof TRANSLATION_KEYS)[number];
|
||||
|
||||
Reference in New Issue
Block a user