Newsletter-Listen: Empfaengerlisten filtern, speichern und exportieren
Admin-Bereich "Newsletter-Listen" (Plan dev/_tickets/entwicklungsplan- newsletter-listen.md): Berater und Kunden nach Filtern zusammenstellen, als Liste speichern und wieder laden, Export als XLSX/CSV. Jeder Export wird protokolliert (newsletter_list_exports). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ef7e333bd4
commit
d21d94a060
26 changed files with 3664 additions and 0 deletions
|
|
@ -94,4 +94,8 @@ return [
|
|||
'team_customers' => 'Team Kunden',
|
||||
'payment_monitor' => 'Payment Monitor',
|
||||
'payment_monitor_management' => 'Payment Monitor GF',
|
||||
'newsletter_lists' => 'Newsletter-Listen',
|
||||
'newsletter_create' => 'Liste erstellen',
|
||||
'newsletter_saved' => 'Gespeicherte Listen',
|
||||
'newsletter_exports' => 'Export-Protokoll',
|
||||
];
|
||||
|
|
|
|||
158
resources/lang/de/newsletter.php
Normal file
158
resources/lang/de/newsletter.php
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'title' => 'Newsletter-Listen',
|
||||
'intro' => 'Empfängerliste aus Kunden und Beratern zusammenstellen, prüfen und für rapidmail exportieren. Gelöschte, anonymisierte, Fake- und Test-Datensätze werden immer ausgeschlossen, doppelte E-Mail-Adressen automatisch entfernt.',
|
||||
'filter' => [
|
||||
'source' => 'Quelle',
|
||||
'language' => 'Sprache',
|
||||
'country' => 'Land',
|
||||
'optin' => 'Newsletter-Opt-in',
|
||||
'purchase' => 'Kaufstatus',
|
||||
'member' => 'Zugeordneter Berater / Sponsor',
|
||||
'created_from' => 'Angelegt von',
|
||||
'created_to' => 'Angelegt bis',
|
||||
'company' => 'Firma',
|
||||
'consultant_status' => 'Berater-Status',
|
||||
'level' => 'Karriere-Level',
|
||||
'include_admins' => 'Admin-Accounts einbeziehen',
|
||||
'all' => 'alle',
|
||||
'none_member' => 'ohne Zuordnung',
|
||||
'consultant_section' => 'Berater-Filter',
|
||||
'refresh' => 'Vorschau aktualisieren',
|
||||
'reset' => 'Filter zurücksetzen',
|
||||
],
|
||||
'source_option' => [
|
||||
'customers' => 'Kunden',
|
||||
'consultants' => 'Berater',
|
||||
'both' => 'Kunden und Berater',
|
||||
],
|
||||
'source' => [
|
||||
'customer' => 'Kunde',
|
||||
'consultant' => 'Berater',
|
||||
],
|
||||
'optin_option' => [
|
||||
'all' => 'alle (Opt-in wird als Spalte ausgegeben)',
|
||||
'subscribed' => 'nur mit Opt-in',
|
||||
'unsubscribed' => 'nur ohne Opt-in',
|
||||
],
|
||||
'optin_value' => [
|
||||
'yes' => 'ja',
|
||||
'no' => 'nein',
|
||||
'contract' => 'Vertrag',
|
||||
],
|
||||
'purchase_option' => [
|
||||
'all' => 'alle',
|
||||
'has_buyed' => 'hat gekauft',
|
||||
'none' => 'noch nie gekauft',
|
||||
'months_3' => 'gekauft in den letzten 3 Monaten',
|
||||
'months_6' => 'gekauft in den letzten 6 Monaten',
|
||||
'months_12' => 'gekauft in den letzten 12 Monaten',
|
||||
'active_abo' => 'hat aktives Abo',
|
||||
],
|
||||
'company_option' => [
|
||||
'all' => 'alle',
|
||||
'with' => 'nur mit Firma',
|
||||
'without' => 'nur ohne Firma',
|
||||
],
|
||||
'consultant_status_option' => [
|
||||
'active' => 'nur aktive',
|
||||
'inactive' => 'nur inaktive',
|
||||
'all' => 'alle',
|
||||
],
|
||||
'status_value' => [
|
||||
'active' => 'aktiv',
|
||||
'inactive' => 'inaktiv',
|
||||
],
|
||||
'stats' => [
|
||||
'total' => 'eindeutige Adressen',
|
||||
'customers' => 'Kunden',
|
||||
'consultants' => 'Berater',
|
||||
'duplicates' => 'Duplikate entfernt',
|
||||
'invalid' => 'ungültige Adressen',
|
||||
'loading' => 'Liste wird berechnet …',
|
||||
],
|
||||
'hint' => [
|
||||
'optin_all' => 'Die Liste enthält auch Kunden ohne Newsletter-Opt-in. Die Spalte „Newsletter" kennzeichnet den Status je Adresse.',
|
||||
'consultants_contract' => 'Berater haben kein eigenes Opt-in; Grundlage ist der Beratervertrag (Spalte „Newsletter" = Vertrag).',
|
||||
],
|
||||
'export' => [
|
||||
'email' => 'Emailadresse',
|
||||
'firstname' => 'Vorname',
|
||||
'lastname' => 'Nachname',
|
||||
'salutation_label' => 'Anrede',
|
||||
'street' => 'Straße',
|
||||
'zipcode' => 'PLZ',
|
||||
'city' => 'Wohnort',
|
||||
'company' => 'Firma',
|
||||
'consultant' => 'Berater',
|
||||
'country' => 'Land',
|
||||
'language' => 'Sprache',
|
||||
'source_label' => 'Quelle',
|
||||
'number' => 'Nummer',
|
||||
'consultant_number' => 'Berater-Nr.',
|
||||
'optin_label' => 'Newsletter',
|
||||
'status_label' => 'Status',
|
||||
'created_at' => 'Angelegt',
|
||||
'button_xlsx' => 'Export XLSX',
|
||||
'button_csv' => 'Export CSV',
|
||||
'template_only' => 'Nur die 9 Spalten der Vorlage exportieren',
|
||||
],
|
||||
'table' => [
|
||||
'email' => 'E-Mail',
|
||||
'name' => 'Name',
|
||||
'salutation' => 'Anrede',
|
||||
'zipcode' => 'PLZ',
|
||||
'city' => 'Ort',
|
||||
'country' => 'Land',
|
||||
'language' => 'Sprache',
|
||||
'consultant' => 'Berater / Sponsor',
|
||||
'source' => 'Quelle',
|
||||
'optin' => 'Newsletter',
|
||||
'status' => 'Status',
|
||||
'created' => 'Angelegt',
|
||||
],
|
||||
'saved' => [
|
||||
'title' => 'Gespeicherte Listen',
|
||||
'current' => 'Geladene Liste',
|
||||
'name' => 'Name',
|
||||
'name_placeholder' => 'z. B. Newsletter DE Kunden',
|
||||
'save_new' => 'Als neue Liste speichern',
|
||||
'save_changes' => 'Änderungen in dieser Liste speichern',
|
||||
'summary' => 'Filter',
|
||||
'source' => 'Quelle',
|
||||
'last_export' => 'Letzter Export',
|
||||
'last_count' => 'Adressen',
|
||||
'created_by' => 'Angelegt von',
|
||||
'created_at' => 'Angelegt',
|
||||
'actions' => 'Aktionen',
|
||||
'load' => 'Filter laden',
|
||||
'delete' => 'Löschen',
|
||||
'confirm_delete' => 'Liste wirklich löschen? Das Export-Protokoll bleibt erhalten.',
|
||||
'stored' => 'Liste gespeichert.',
|
||||
'updated' => 'Liste aktualisiert.',
|
||||
'deleted' => 'Liste gelöscht.',
|
||||
'intro' => 'Gespeicherte Filterkombinationen. Über „Filter laden" wird die Liste in die Vorschau übernommen, der Export nutzt die hinterlegten Filter.',
|
||||
],
|
||||
'exports' => [
|
||||
'title' => 'Export-Protokoll',
|
||||
'intro' => 'Jeder Download wird mit Benutzer, Zeitpunkt, Filter und Anzahl der Adressen festgehalten.',
|
||||
'date' => 'Datum',
|
||||
'user' => 'Benutzer',
|
||||
'list' => 'Liste',
|
||||
'adhoc' => 'ohne gespeicherte Liste',
|
||||
'summary' => 'Filter',
|
||||
'format' => 'Format',
|
||||
'rows' => 'Adressen',
|
||||
'filename' => 'Datei',
|
||||
],
|
||||
'validation' => [
|
||||
'source' => 'Ungültige Quelle.',
|
||||
'option' => 'Ungültiger Filterwert.',
|
||||
'member' => 'Ungültige Berater-Auswahl.',
|
||||
'date' => 'Ungültiges Datum.',
|
||||
'name' => 'Bitte einen Namen angeben (max. 120 Zeichen).',
|
||||
'list' => 'Liste nicht gefunden.',
|
||||
'date_range' => 'Das Enddatum darf nicht vor dem Startdatum liegen.',
|
||||
],
|
||||
];
|
||||
Loading…
Add table
Add a link
Reference in a new issue