From 0ae84197026742a6774fa73cd53d44669ac90bab Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 27 Apr 2026 14:21:18 +0200 Subject: [PATCH] i18n(broadcast): extend with statuses + detail_view sub-namespaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds 5 status labels (draft/scheduled/sending/sent/cancelled) and detail_view: sent_at/scheduled_for date pills, 3 action buttons (Duplizieren/Abbrechen/Zur Übersicht), 5 stats (sent/opened/clicked/ bounced/unsubscribed) with subline interpolation, polling state (Live-Update… / Letzte Aktualisierung) + error variants, preview section heading, scheduled-cancel confirm. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/lib/i18n/locales/broadcast/de.json | 28 +++++++++++++++++++ .../src/lib/i18n/locales/broadcast/en.json | 28 +++++++++++++++++++ .../src/lib/i18n/locales/broadcast/es.json | 28 +++++++++++++++++++ .../src/lib/i18n/locales/broadcast/fr.json | 28 +++++++++++++++++++ .../src/lib/i18n/locales/broadcast/it.json | 28 +++++++++++++++++++ 5 files changed, 140 insertions(+) diff --git a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/de.json b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/de.json index cc4d2d8e4..cd125327c 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/de.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/de.json @@ -1,4 +1,32 @@ { + "statuses": { + "draft": "Entwurf", + "scheduled": "Geplant", + "sending": "Versand läuft", + "sent": "Versendet", + "cancelled": "Abgebrochen" + }, + "detail_view": { + "sent_at": "Versendet {date}", + "scheduled_for": "Geplant für {date}", + "action_duplicate": "Duplizieren", + "action_cancel": "Abbrechen", + "action_overview": "Zur Übersicht", + "stat_sent": "Versendet", + "stat_sent_sub": "von {n}", + "stat_opened": "Geöffnet", + "stat_opened_sub": "{n} Öffnungen", + "stat_clicked": "Geklickt", + "stat_clicked_sub": "{n} Klicks", + "stat_bounced": "Bounced", + "stat_unsubscribed": "Abgemeldet", + "poll_live": "Live-Update …", + "poll_last_update": "Letzte Aktualisierung: {time}", + "poll_error_prefix": "Stats-Fetch fehlgeschlagen", + "poll_error_inline": "Stats-Fetch fehlgeschlagen: {error}", + "section_preview": "Wie die Kampagne aussah", + "confirm_cancel_scheduled": "Geplante Kampagne abbrechen?" + }, "compose_view": { "default_name": "Neue Kampagne", "name_placeholder": "Kampagnen-Name", diff --git a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/en.json b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/en.json index 7627a18e5..6a8179262 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/en.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/en.json @@ -1,4 +1,32 @@ { + "statuses": { + "draft": "Draft", + "scheduled": "Scheduled", + "sending": "Sending", + "sent": "Sent", + "cancelled": "Cancelled" + }, + "detail_view": { + "sent_at": "Sent {date}", + "scheduled_for": "Scheduled for {date}", + "action_duplicate": "Duplicate", + "action_cancel": "Cancel", + "action_overview": "Back to overview", + "stat_sent": "Sent", + "stat_sent_sub": "of {n}", + "stat_opened": "Opened", + "stat_opened_sub": "{n} opens", + "stat_clicked": "Clicked", + "stat_clicked_sub": "{n} clicks", + "stat_bounced": "Bounced", + "stat_unsubscribed": "Unsubscribed", + "poll_live": "Live update…", + "poll_last_update": "Last update: {time}", + "poll_error_prefix": "Stats fetch failed", + "poll_error_inline": "Stats fetch failed: {error}", + "section_preview": "What the campaign looked like", + "confirm_cancel_scheduled": "Cancel scheduled campaign?" + }, "compose_view": { "default_name": "New campaign", "name_placeholder": "Campaign name", diff --git a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/es.json b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/es.json index 776836921..dd2be0e2b 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/es.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/es.json @@ -1,4 +1,32 @@ { + "statuses": { + "draft": "Borrador", + "scheduled": "Programada", + "sending": "Enviando", + "sent": "Enviada", + "cancelled": "Cancelada" + }, + "detail_view": { + "sent_at": "Enviada {date}", + "scheduled_for": "Programada para {date}", + "action_duplicate": "Duplicar", + "action_cancel": "Cancelar", + "action_overview": "Volver a la vista general", + "stat_sent": "Enviados", + "stat_sent_sub": "de {n}", + "stat_opened": "Abiertos", + "stat_opened_sub": "{n} aperturas", + "stat_clicked": "Clicados", + "stat_clicked_sub": "{n} clics", + "stat_bounced": "Rebotados", + "stat_unsubscribed": "Cancelaron suscripción", + "poll_live": "Actualización en vivo…", + "poll_last_update": "Última actualización: {time}", + "poll_error_prefix": "Error al obtener stats", + "poll_error_inline": "Error al obtener stats: {error}", + "section_preview": "Cómo se veía la campaña", + "confirm_cancel_scheduled": "¿Cancelar la campaña programada?" + }, "compose_view": { "default_name": "Nueva campaña", "name_placeholder": "Nombre de la campaña", diff --git a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/fr.json b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/fr.json index 57fbc5878..0c635956b 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/fr.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/fr.json @@ -1,4 +1,32 @@ { + "statuses": { + "draft": "Brouillon", + "scheduled": "Planifiée", + "sending": "Envoi en cours", + "sent": "Envoyée", + "cancelled": "Annulée" + }, + "detail_view": { + "sent_at": "Envoyée {date}", + "scheduled_for": "Planifiée pour {date}", + "action_duplicate": "Dupliquer", + "action_cancel": "Annuler", + "action_overview": "Retour à la vue d'ensemble", + "stat_sent": "Envoyés", + "stat_sent_sub": "sur {n}", + "stat_opened": "Ouverts", + "stat_opened_sub": "{n} ouvertures", + "stat_clicked": "Cliqués", + "stat_clicked_sub": "{n} clics", + "stat_bounced": "Rebondis", + "stat_unsubscribed": "Désabonnés", + "poll_live": "Mise à jour en direct…", + "poll_last_update": "Dernière mise à jour : {time}", + "poll_error_prefix": "Échec de la récupération des stats", + "poll_error_inline": "Échec de la récupération des stats : {error}", + "section_preview": "À quoi ressemblait la campagne", + "confirm_cancel_scheduled": "Annuler la campagne planifiée ?" + }, "compose_view": { "default_name": "Nouvelle campagne", "name_placeholder": "Nom de la campagne", diff --git a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/it.json b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/it.json index 4e446f7d1..5d1929968 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/broadcast/it.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/broadcast/it.json @@ -1,4 +1,32 @@ { + "statuses": { + "draft": "Bozza", + "scheduled": "Pianificata", + "sending": "Invio in corso", + "sent": "Inviata", + "cancelled": "Annullata" + }, + "detail_view": { + "sent_at": "Inviata {date}", + "scheduled_for": "Pianificata per {date}", + "action_duplicate": "Duplica", + "action_cancel": "Annulla", + "action_overview": "Torna alla panoramica", + "stat_sent": "Inviate", + "stat_sent_sub": "su {n}", + "stat_opened": "Aperte", + "stat_opened_sub": "{n} aperture", + "stat_clicked": "Cliccate", + "stat_clicked_sub": "{n} click", + "stat_bounced": "Respinte", + "stat_unsubscribed": "Disiscritti", + "poll_live": "Aggiornamento live…", + "poll_last_update": "Ultimo aggiornamento: {time}", + "poll_error_prefix": "Recupero stats non riuscito", + "poll_error_inline": "Recupero stats non riuscito: {error}", + "section_preview": "Come appariva la campagna", + "confirm_cancel_scheduled": "Annullare la campagna pianificata?" + }, "compose_view": { "default_name": "Nuova campagna", "name_placeholder": "Nome della campagna",