i18n(broadcast): extend with statuses + detail_view sub-namespaces

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) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-27 14:21:18 +02:00
parent d7c03297b9
commit 0ae8419702
5 changed files with 140 additions and 0 deletions

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",