fix(i18n): complete translations for production launch and fix CMS store context
Some checks failed
CI / ruff (push) Successful in 10s
CI / validate (push) Successful in 26s
CI / dependency-scanning (push) Successful in 28s
CI / pytest (push) Failing after 3h13m27s
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled

- Replace CMS custom get_store_context() with core utility (same fix as loyalty)
- Add 85 missing translation keys across fr/de/lb for core, tenancy, messaging,
  customers, and loyalty modules
- Convert 21 client-side $t() calls to server-side _() in 9 loyalty templates
- Fix 3 broken translation keys in store/cards.html

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 23:38:54 +01:00
parent bc7431943a
commit 6c07f6cbb2
27 changed files with 189 additions and 82 deletions

View File

@@ -35,7 +35,16 @@
"failed_to_delete_notification": "Failed to delete notification",
"failed_to_load_alerts": "Failed to load alerts",
"alert_resolved_successfully": "Alert resolved successfully",
"failed_to_resolve_alert": "Failed to resolve alert"
"failed_to_resolve_alert": "Failed to resolve alert",
"no_template_for_language": "Keine Vorlage für {language} - erstellen Sie eine durch Speichern",
"failed_to_save_template": "Vorlage konnte nicht gespeichert werden",
"test_email_sent": "Test-E-Mail an {email} gesendet"
},
"confirmations": {
"delete_notification": "Sind Sie sicher, dass Sie diese Benachrichtigung löschen möchten?",
"close_conversation": "Diese Konversation schließen?",
"close_conversation_admin": "Sind Sie sicher, dass Sie diese Konversation schließen möchten?",
"delete_customization": "Sind Sie sicher, dass Sie Ihre Anpassung löschen und zur Plattform-Standardvorlage zurückkehren möchten?"
},
"features": {
"messaging_basic": {
@@ -78,6 +87,7 @@
"reply_to": "Antwort an",
"related_entity": "Verknüpfte Entität",
"error_message": "Fehlermeldung",
"retry_count": "Wiederholungsversuche",
"actions": "Aktionen",
"view_detail": "Details anzeigen",
"email_detail": "E-Mail-Detail",
@@ -85,6 +95,7 @@
"text_preview": "Text-Vorschau",
"metadata": "Metadaten",
"content": "Inhalt",
"status_timeline": "Status-Verlauf",
"filter_by_recipient": "Nach Empfänger-E-Mail suchen...",
"filter_by_status": "Alle Status",
"filter_by_template": "Alle Vorlagen",
@@ -104,7 +115,8 @@
"status_delivered": "Zugestellt",
"status_bounced": "Abgewiesen",
"status_opened": "Geöffnet",
"status_clicked": "Angeklickt"
"status_clicked": "Angeklickt",
"retention_note": "E-Mail-Inhalte werden 90 Tage aufbewahrt. Metadaten werden unbegrenzt gespeichert."
},
"permissions": {
"view_messages": "Nachrichten anzeigen",

View File

@@ -35,7 +35,16 @@
"failed_to_delete_notification": "Failed to delete notification",
"failed_to_load_alerts": "Failed to load alerts",
"alert_resolved_successfully": "Alert resolved successfully",
"failed_to_resolve_alert": "Failed to resolve alert"
"failed_to_resolve_alert": "Failed to resolve alert",
"no_template_for_language": "Pas de modèle pour {language} - créez-en un en enregistrant",
"failed_to_save_template": "Échec de l'enregistrement du modèle",
"test_email_sent": "E-mail de test envoyé à {email}"
},
"confirmations": {
"delete_notification": "Êtes-vous sûr de vouloir supprimer cette notification ?",
"close_conversation": "Fermer cette conversation ?",
"close_conversation_admin": "Êtes-vous sûr de vouloir fermer cette conversation ?",
"delete_customization": "Êtes-vous sûr de vouloir supprimer votre personnalisation et revenir au modèle par défaut de la plateforme ?"
},
"features": {
"messaging_basic": {
@@ -78,6 +87,7 @@
"reply_to": "Répondre à",
"related_entity": "Entité liée",
"error_message": "Message d'erreur",
"retry_count": "Tentatives",
"actions": "Actions",
"view_detail": "Voir le détail",
"email_detail": "Détail de l'e-mail",
@@ -85,6 +95,7 @@
"text_preview": "Aperçu texte",
"metadata": "Métadonnées",
"content": "Contenu",
"status_timeline": "Chronologie du statut",
"filter_by_recipient": "Rechercher par e-mail du destinataire...",
"filter_by_status": "Tous les statuts",
"filter_by_template": "Tous les modèles",
@@ -104,7 +115,8 @@
"status_delivered": "Livré",
"status_bounced": "Rebondi",
"status_opened": "Ouvert",
"status_clicked": "Cliqué"
"status_clicked": "Cliqué",
"retention_note": "Le contenu des e-mails est conservé pendant 90 jours. Les métadonnées sont conservées indéfiniment."
},
"permissions": {
"view_messages": "Voir les messages",

View File

@@ -35,7 +35,16 @@
"failed_to_delete_notification": "Failed to delete notification",
"failed_to_load_alerts": "Failed to load alerts",
"alert_resolved_successfully": "Alert resolved successfully",
"failed_to_resolve_alert": "Failed to resolve alert"
"failed_to_resolve_alert": "Failed to resolve alert",
"no_template_for_language": "Keng Virlag fir {language} - erstellt eng andeems Dir späichert",
"failed_to_save_template": "Virlag konnt net gespäichert ginn",
"test_email_sent": "Test-E-Mail u {email} geschéckt"
},
"confirmations": {
"delete_notification": "Sidd Dir sécher datt Dir dës Notifikatioun läsche wëllt?",
"close_conversation": "Dës Conversatioun zoumaachen?",
"close_conversation_admin": "Sidd Dir sécher datt Dir dës Conversatioun zoumaache wëllt?",
"delete_customization": "Sidd Dir sécher datt Dir Är Personnaliséierung läschen an zum Plattform-Standard zréckgoe wëllt?"
},
"features": {
"messaging_basic": {
@@ -59,7 +68,55 @@
"account_settings": "Kont-Astellungen",
"messages": "Messagen",
"notifications": "Notifikatiounen",
"email_templates": "E-Mail-Virlagen"
"email_templates": "E-Mail-Virlagen",
"email_logs": "E-Mail-Protokoller"
},
"email_logs": {
"title": "E-Mail-Protokoller",
"subtitle": "All E-Mailen iwwerpréiwen déi iwwer d'Plattform geschéckt goufen",
"recipient": "Empfänger",
"subject": "Sujet",
"template": "Virlag",
"status": "Status",
"store": "Buttek",
"date": "Datum",
"sent_at": "Geschéckt um",
"provider": "Ubidder",
"from": "Vun",
"to": "Un",
"reply_to": "Äntwert un",
"related_entity": "Verbonnen Entitéit",
"error_message": "Feelernotiz",
"retry_count": "Widderholungsversich",
"actions": "Aktiounen",
"view_detail": "Detailer kucken",
"email_detail": "E-Mail-Detail",
"html_preview": "HTML-Virschau",
"text_preview": "Text-Virschau",
"metadata": "Metadaten",
"content": "Inhalt",
"status_timeline": "Status-Verlaf",
"filter_by_recipient": "No Empfänger-E-Mail sichen...",
"filter_by_status": "All Statussen",
"filter_by_template": "All Virlagen",
"filter_by_store": "All Butteker",
"date_from": "Vun Datum",
"date_to": "Bis Datum",
"apply_filters": "Uwenden",
"reset_filters": "Zrécksetzen",
"total_sent": "Total geschéckt",
"total_failed": "Feelgeschloen",
"total_pending": "Aussteesend",
"total_delivered": "Zougestallt",
"no_logs": "Keng E-Mail-Protokoller fonnt",
"status_sent": "Geschéckt",
"status_failed": "Feelgeschloen",
"status_pending": "Aussteesend",
"status_delivered": "Zougestallt",
"status_bounced": "Zréckgeschéckt",
"status_opened": "Opgemaach",
"status_clicked": "Geklickt",
"retention_note": "E-Mail-Inhalt gëtt 90 Deeg gespäichert. Metadaten ginn onbegrenzt gehalen."
},
"permissions": {
"view_messages": "Messagen kucken",