From 52a5f941febbc9a9992603ca94819b852de514c9 Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Sun, 22 Mar 2026 20:52:38 +0100 Subject: [PATCH] fix(loyalty): resolve 40 missing i18n keys across all frontends Fix template references to match existing locale key names (11 renames in pins-list.html and settings.html) and add 29 missing keys to all 4 locale files (en/fr/de/lb). All 299 template keys now resolve correctly. Co-Authored-By: Claude Opus 4.6 (1M context) --- app/modules/loyalty/locales/de.json | 71 +++++++++++++------ app/modules/loyalty/locales/en.json | 71 +++++++++++++------ app/modules/loyalty/locales/fr.json | 71 +++++++++++++------ app/modules/loyalty/locales/lb.json | 71 +++++++++++++------ .../templates/loyalty/merchant/settings.html | 2 +- .../templates/loyalty/shared/pins-list.html | 32 ++++----- 6 files changed, 217 insertions(+), 101 deletions(-) diff --git a/app/modules/loyalty/locales/de.json b/app/modules/loyalty/locales/de.json index 1ce2d592..26531e55 100644 --- a/app/modules/loyalty/locales/de.json +++ b/app/modules/loyalty/locales/de.json @@ -143,27 +143,32 @@ }, "common": { "active": "Aktiv", - "inactive": "Inaktiv", + "all_stores": "Alle Filialen", + "at": "bei", + "back": "Zurück", "cancel": "Abbrechen", - "save": "Speichern", - "delete": "Löschen", "confirm": "Bestätigen", - "refresh": "Aktualisieren", - "loading": "Laden...", - "saving": "Speichern...", - "view": "Anzeigen", + "continue": "Weiter", + "delete": "Löschen", + "disabled": "Deaktiviert", "edit": "Bearbeiten", - "yes": "Ja", + "enabled": "Aktiviert", + "inactive": "Inaktiv", + "loading": "Laden...", + "minutes": "Minuten", + "never": "Nie", "no": "Nein", "none": "Keine", - "never": "Nie", - "total": "GESAMT", - "continue": "Weiter", - "back": "Zurück", - "points": "Punkte", - "minutes": "Minuten", "or": "oder", - "at": "bei" + "points": "Punkte", + "program_not_setup": "Treueprogramm nicht eingerichtet", + "program_not_setup_desc": "Bitte richten Sie ein Treueprogramm ein", + "refresh": "Aktualisieren", + "save": "Speichern", + "saving": "Speichern...", + "total": "GESAMT", + "view": "Anzeigen", + "yes": "Ja" }, "transactions": { "card_created": "Angemeldet", @@ -290,6 +295,7 @@ "transactions": { "title": "Transaktionen", "subtitle": "Alle Treue-Transaktionen anzeigen", + "adjust_filters": "Versuchen Sie, Ihre Filter anzupassen", "loading": "Transaktionen werden geladen...", "error_loading": "Fehler beim Laden", "search_placeholder": "Transaktionen suchen...", @@ -301,7 +307,11 @@ "col_points": "Punkte", "col_location": "Standort", "col_notes": "Notizen", - "no_transactions": "Keine Transaktionen gefunden" + "no_transactions": "Keine Transaktionen gefunden", + "type_adjust": "Anpassen", + "type_earn": "Verdienen", + "type_expire": "Ablaufen", + "type_redeem": "Einlösen" }, "pins": { "title": "Mitarbeiter-PINs", @@ -333,6 +343,8 @@ "pin_staff_id": "Mitarbeiter-ID (optional)", "pin_code": "PIN-Code", "pin_code_hint": "4-6-stelliger PIN", + "pin_edit_hint": "Leer lassen um aktuellen PIN zu behalten", + "pin_edit_placeholder": "Neuer PIN (optional)", "pin_store": "Filiale", "select_store": "Filiale auswählen", "pin_created": "PIN erfolgreich erstellt", @@ -473,7 +485,9 @@ "error_loading": "Fehler beim Laden" }, "merchant_card_detail": { - "title": "Kartendetail" + "title": "Kartendetail", + "error_loading": "Fehler beim Laden", + "loading": "Kartendetails werden geladen..." }, "merchant_transactions": { "title": "Händler-Transaktionen", @@ -572,23 +586,38 @@ }, "cards": { "title": "Kundenkarten", - "subtitle": "Treuemitglieder über alle Standorte verwalten" + "subtitle": "Treuemitglieder über alle Standorte verwalten", + "error_loading": "Fehler beim Laden", + "loading": "Karten werden geladen..." }, "card_detail": { - "title": "Kartendetail" + "title": "Kartendetail", + "card_label": "Karte", + "error_loading": "Fehler beim Laden", + "loading": "Kartendetails werden geladen..." }, "transactions": { "title": "Transaktionen", - "subtitle": "Alle Transaktionen über alle Standorte anzeigen" + "subtitle": "Alle Transaktionen über alle Standorte anzeigen", + "error_loading": "Fehler beim Laden", + "loading": "Transaktionen werden geladen..." }, "pins": { "title": "Mitarbeiter-PINs", - "subtitle": "PINs für alle Standorte verwalten" + "subtitle": "PINs für alle Standorte verwalten", + "error_loading": "Fehler beim Laden", + "loading": "PINs werden geladen..." }, "settings": { "title": "Treue-Einstellungen", "subtitle": "Treueprogramm-Einstellungen anzeigen", "admin_controlled": "Diese Einstellungen werden vom Plattformadministrator verwaltet", + "error_loading": "Fehler beim Laden", + "loading": "Einstellungen werden geladen...", + "lockout_attempts": "Sperrversuche", + "lockout_minutes": "Sperrdauer (Min)", + "permissions": "Registrierung & Berechtigungen", + "pin_policy": "PIN-Richtlinie", "staff_pin_policy": "Mitarbeiter-PIN-Richtlinie", "self_enrollment": "Selbstanmeldung", "cross_location": "Standortübergreifende Einlösung", diff --git a/app/modules/loyalty/locales/en.json b/app/modules/loyalty/locales/en.json index f1c2a613..fde1ccea 100644 --- a/app/modules/loyalty/locales/en.json +++ b/app/modules/loyalty/locales/en.json @@ -143,27 +143,32 @@ }, "common": { "active": "Active", - "inactive": "Inactive", + "all_stores": "All Stores", + "at": "at", + "back": "Back", "cancel": "Cancel", - "save": "Save", - "delete": "Delete", "confirm": "Confirm", - "refresh": "Refresh", - "loading": "Loading...", - "saving": "Saving...", - "view": "View", + "continue": "Continue", + "delete": "Delete", + "disabled": "Disabled", "edit": "Edit", - "yes": "Yes", + "enabled": "Enabled", + "inactive": "Inactive", + "loading": "Loading...", + "minutes": "minutes", + "never": "Never", "no": "No", "none": "None", - "never": "Never", - "total": "TOTAL", - "continue": "Continue", - "back": "Back", - "points": "points", - "minutes": "minutes", "or": "or", - "at": "at" + "points": "points", + "program_not_setup": "Loyalty program not set up", + "program_not_setup_desc": "Please set up a loyalty program to get started", + "refresh": "Refresh", + "save": "Save", + "saving": "Saving...", + "total": "TOTAL", + "view": "View", + "yes": "Yes" }, "transactions": { "card_created": "Enrolled", @@ -290,6 +295,7 @@ "transactions": { "title": "Transactions", "subtitle": "View all loyalty transactions", + "adjust_filters": "Try adjusting your filters", "loading": "Loading transactions...", "error_loading": "Error loading transactions", "search_placeholder": "Search transactions...", @@ -301,7 +307,11 @@ "col_points": "Points", "col_location": "Location", "col_notes": "Notes", - "no_transactions": "No transactions found" + "no_transactions": "No transactions found", + "type_adjust": "Adjust", + "type_earn": "Earn", + "type_expire": "Expire", + "type_redeem": "Redeem" }, "pins": { "title": "Staff PINs", @@ -333,6 +343,8 @@ "pin_staff_id": "Employee ID (optional)", "pin_code": "PIN Code", "pin_code_hint": "4-6 digit PIN", + "pin_edit_hint": "Leave blank to keep current PIN", + "pin_edit_placeholder": "New PIN (optional)", "pin_store": "Store", "select_store": "Select store", "pin_created": "PIN created successfully", @@ -473,7 +485,9 @@ "error_loading": "Error loading cards" }, "merchant_card_detail": { - "title": "Card Detail" + "title": "Card Detail", + "error_loading": "Error loading card", + "loading": "Loading card details..." }, "merchant_transactions": { "title": "Merchant Transactions", @@ -572,23 +586,38 @@ }, "cards": { "title": "Customer Cards", - "subtitle": "View and manage loyalty members across all locations" + "subtitle": "View and manage loyalty members across all locations", + "error_loading": "Error loading cards", + "loading": "Loading cards..." }, "card_detail": { - "title": "Card Detail" + "title": "Card Detail", + "card_label": "Card", + "error_loading": "Error loading card", + "loading": "Loading card details..." }, "transactions": { "title": "Transactions", - "subtitle": "View all loyalty transactions across locations" + "subtitle": "View all loyalty transactions across locations", + "error_loading": "Error loading transactions", + "loading": "Loading transactions..." }, "pins": { "title": "Staff PINs", - "subtitle": "Manage staff PINs across all locations" + "subtitle": "Manage staff PINs across all locations", + "error_loading": "Error loading PINs", + "loading": "Loading PINs..." }, "settings": { "title": "Loyalty Settings", "subtitle": "View loyalty program settings", "admin_controlled": "These settings are managed by the platform administrator", + "error_loading": "Error loading settings", + "loading": "Loading settings...", + "lockout_attempts": "Lockout Attempts", + "lockout_minutes": "Lockout Duration (min)", + "permissions": "Enrollment & Permissions", + "pin_policy": "PIN Policy", "staff_pin_policy": "Staff PIN Policy", "self_enrollment": "Self Enrollment", "cross_location": "Cross-Location Redemption", diff --git a/app/modules/loyalty/locales/fr.json b/app/modules/loyalty/locales/fr.json index 03d7da20..569f4b3b 100644 --- a/app/modules/loyalty/locales/fr.json +++ b/app/modules/loyalty/locales/fr.json @@ -143,27 +143,32 @@ }, "common": { "active": "Actif", - "inactive": "Inactif", + "all_stores": "Tous les magasins", + "at": "à", + "back": "Retour", "cancel": "Annuler", - "save": "Enregistrer", - "delete": "Supprimer", "confirm": "Confirmer", - "refresh": "Actualiser", - "loading": "Chargement...", - "saving": "Enregistrement...", - "view": "Voir", + "continue": "Continuer", + "delete": "Supprimer", + "disabled": "Désactivé", "edit": "Modifier", - "yes": "Oui", + "enabled": "Activé", + "inactive": "Inactif", + "loading": "Chargement...", + "minutes": "minutes", + "never": "Jamais", "no": "Non", "none": "Aucun", - "never": "Jamais", - "total": "TOTAL", - "continue": "Continuer", - "back": "Retour", - "points": "points", - "minutes": "minutes", "or": "ou", - "at": "à" + "points": "points", + "program_not_setup": "Programme fidélité non configuré", + "program_not_setup_desc": "Veuillez configurer un programme fidélité", + "refresh": "Actualiser", + "save": "Enregistrer", + "saving": "Enregistrement...", + "total": "TOTAL", + "view": "Voir", + "yes": "Oui" }, "transactions": { "card_created": "Inscrit", @@ -290,6 +295,7 @@ "transactions": { "title": "Transactions", "subtitle": "Voir toutes les transactions", + "adjust_filters": "Essayez de modifier vos filtres", "loading": "Chargement des transactions...", "error_loading": "Erreur lors du chargement", "search_placeholder": "Rechercher des transactions...", @@ -301,7 +307,11 @@ "col_points": "Points", "col_location": "Emplacement", "col_notes": "Notes", - "no_transactions": "Aucune transaction trouvée" + "no_transactions": "Aucune transaction trouvée", + "type_adjust": "Ajuster", + "type_earn": "Gagner", + "type_expire": "Expirer", + "type_redeem": "Échanger" }, "pins": { "title": "PINs du personnel", @@ -333,6 +343,8 @@ "pin_staff_id": "ID employé (optionnel)", "pin_code": "Code PIN", "pin_code_hint": "PIN à 4-6 chiffres", + "pin_edit_hint": "Laisser vide pour garder le PIN actuel", + "pin_edit_placeholder": "Nouveau PIN (optionnel)", "pin_store": "Magasin", "select_store": "Sélectionner un magasin", "pin_created": "PIN créé avec succès", @@ -473,7 +485,9 @@ "error_loading": "Erreur lors du chargement" }, "merchant_card_detail": { - "title": "Détail de la carte" + "title": "Détail de la carte", + "error_loading": "Erreur lors du chargement", + "loading": "Chargement des détails..." }, "merchant_transactions": { "title": "Transactions du commerçant", @@ -572,23 +586,38 @@ }, "cards": { "title": "Cartes clients", - "subtitle": "Voir et gérer les membres fidélité sur tous les sites" + "subtitle": "Voir et gérer les membres fidélité sur tous les sites", + "error_loading": "Erreur lors du chargement", + "loading": "Chargement des cartes..." }, "card_detail": { - "title": "Détail de la carte" + "title": "Détail de la carte", + "card_label": "Carte", + "error_loading": "Erreur lors du chargement", + "loading": "Chargement des détails..." }, "transactions": { "title": "Transactions", - "subtitle": "Voir toutes les transactions sur tous les sites" + "subtitle": "Voir toutes les transactions sur tous les sites", + "error_loading": "Erreur lors du chargement", + "loading": "Chargement des transactions..." }, "pins": { "title": "PINs du personnel", - "subtitle": "Gérer les PINs sur tous les sites" + "subtitle": "Gérer les PINs sur tous les sites", + "error_loading": "Erreur lors du chargement", + "loading": "Chargement des PINs..." }, "settings": { "title": "Paramètres fidélité", "subtitle": "Voir les paramètres du programme", "admin_controlled": "Ces paramètres sont gérés par l'administrateur", + "error_loading": "Erreur lors du chargement", + "loading": "Chargement des paramètres...", + "lockout_attempts": "Tentatives avant verrouillage", + "lockout_minutes": "Durée de verrouillage (min)", + "permissions": "Inscription et permissions", + "pin_policy": "Politique PIN", "staff_pin_policy": "Politique PIN personnel", "self_enrollment": "Auto-inscription", "cross_location": "Échange multi-sites", diff --git a/app/modules/loyalty/locales/lb.json b/app/modules/loyalty/locales/lb.json index 67d8e334..8907f278 100644 --- a/app/modules/loyalty/locales/lb.json +++ b/app/modules/loyalty/locales/lb.json @@ -143,27 +143,32 @@ }, "common": { "active": "Aktiv", - "inactive": "Inaktiv", + "all_stores": "All Geschäfter", + "at": "bei", + "back": "Zréck", "cancel": "Ofbriechen", - "save": "Späicheren", - "delete": "Läschen", "confirm": "Bestätegen", - "refresh": "Aktualiséieren", - "loading": "Lueden...", - "saving": "Späicheren...", - "view": "Kucken", + "continue": "Weider", + "delete": "Läschen", + "disabled": "Deaktivéiert", "edit": "Beaarbechten", - "yes": "Jo", + "enabled": "Aktivéiert", + "inactive": "Inaktiv", + "loading": "Lueden...", + "minutes": "Minutten", + "never": "Ni", "no": "Neen", "none": "Keen", - "never": "Ni", - "total": "TOTAL", - "continue": "Weider", - "back": "Zréck", - "points": "Punkten", - "minutes": "Minutten", "or": "oder", - "at": "bei" + "points": "Punkten", + "program_not_setup": "Treieprogramm net ageriicht", + "program_not_setup_desc": "Riicht w.e.g. en Treieprogramm an", + "refresh": "Aktualiséieren", + "save": "Späicheren", + "saving": "Späicheren...", + "total": "TOTAL", + "view": "Kucken", + "yes": "Jo" }, "transactions": { "card_created": "Ageschriwwen", @@ -290,6 +295,7 @@ "transactions": { "title": "Transaktionen", "subtitle": "All Treieprogramm-Transaktioune kucken", + "adjust_filters": "Probéiert Är Filteren unzepassen", "loading": "Transaktioune ginn gelueden...", "error_loading": "Feeler beim Lueden", "search_placeholder": "Transaktioune sichen...", @@ -301,7 +307,11 @@ "col_points": "Punkten", "col_location": "Standuert", "col_notes": "Notizen", - "no_transactions": "Keng Transaktioune fonnt" + "no_transactions": "Keng Transaktioune fonnt", + "type_adjust": "Upassen", + "type_earn": "Verdéngen", + "type_expire": "Oflafen", + "type_redeem": "Aléisen" }, "pins": { "title": "Mataarbechter-PINen", @@ -333,6 +343,8 @@ "pin_staff_id": "Mataarbechter-ID (optional)", "pin_code": "PIN-Code", "pin_code_hint": "4-6-stellegen PIN", + "pin_edit_hint": "Eidel loossen fir den aktuelle PIN ze behalen", + "pin_edit_placeholder": "Neie PIN (optional)", "pin_store": "Geschäft", "select_store": "Geschäft wielen", "pin_created": "PIN erfollegräich erstallt", @@ -473,7 +485,9 @@ "error_loading": "Feeler beim Lueden" }, "merchant_card_detail": { - "title": "Kaartendetail" + "title": "Kaartendetail", + "error_loading": "Feeler beim Lueden", + "loading": "Kaartendetailer ginn gelueden..." }, "merchant_transactions": { "title": "Händler-Transaktionen", @@ -572,23 +586,38 @@ }, "cards": { "title": "Clientskaarten", - "subtitle": "Treieprogramm-Memberen iwwer all Standuerter verwalten" + "subtitle": "Treieprogramm-Memberen iwwer all Standuerter verwalten", + "error_loading": "Feeler beim Lueden", + "loading": "Kaarte ginn gelueden..." }, "card_detail": { - "title": "Kaartendetail" + "title": "Kaartendetail", + "card_label": "Kaart", + "error_loading": "Feeler beim Lueden", + "loading": "Kaartendetailer ginn gelueden..." }, "transactions": { "title": "Transaktionen", - "subtitle": "All Transaktioune vun all Standuerter kucken" + "subtitle": "All Transaktioune vun all Standuerter kucken", + "error_loading": "Feeler beim Lueden", + "loading": "Transaktioune ginn gelueden..." }, "pins": { "title": "Mataarbechter-PINen", - "subtitle": "PINen fir all Standuerter verwalten" + "subtitle": "PINen fir all Standuerter verwalten", + "error_loading": "Feeler beim Lueden", + "loading": "PINe ginn gelueden..." }, "settings": { "title": "Treieprogramm-Astellungen", "subtitle": "Treieprogramm-Astellungen kucken", "admin_controlled": "Dës Astellungen ginn vum Plattformadministrateur geréiert", + "error_loading": "Feeler beim Lueden", + "loading": "Astellunge ginn gelueden...", + "lockout_attempts": "Spärversich", + "lockout_minutes": "Spärdauer (Min)", + "permissions": "Umeldung & Berechtigungen", + "pin_policy": "PIN-Richtlinn", "staff_pin_policy": "Mataarbechter-PIN-Richtlinn", "self_enrollment": "Selwer-Umeldung", "cross_location": "Standuert-iwwergräifend Aléisung", diff --git a/app/modules/loyalty/templates/loyalty/merchant/settings.html b/app/modules/loyalty/templates/loyalty/merchant/settings.html index 2f5bcc2a..19df2218 100644 --- a/app/modules/loyalty/templates/loyalty/merchant/settings.html +++ b/app/modules/loyalty/templates/loyalty/merchant/settings.html @@ -21,7 +21,7 @@
-

{{ _('loyalty.merchant.settings.managed_by_admin') }}

+

{{ _('loyalty.merchant.settings.admin_controlled') }}

diff --git a/app/modules/loyalty/templates/loyalty/shared/pins-list.html b/app/modules/loyalty/templates/loyalty/shared/pins-list.html index a06f536c..920bda74 100644 --- a/app/modules/loyalty/templates/loyalty/shared/pins-list.html +++ b/app/modules/loyalty/templates/loyalty/shared/pins-list.html @@ -26,7 +26,7 @@
-

{{ _('loyalty.shared.pins.active') }}

+

{{ _('loyalty.shared.pins.active_pins') }}

0

@@ -35,7 +35,7 @@
-

{{ _('loyalty.shared.pins.locked') }}

+

{{ _('loyalty.shared.pins.locked_pins') }}

0

@@ -134,26 +134,26 @@
- + + placeholder="{{ _('loyalty.shared.pins.pin_name') }}">
- + + placeholder="{{ _('loyalty.shared.pins.pin_staff_id') }}">
- + + placeholder="{{ _('loyalty.shared.pins.pin_code_hint') }}">
{% if show_store_filter %}
- + + placeholder="{{ _('loyalty.shared.pins.pin_name') }}">
- + + placeholder="{{ _('loyalty.shared.pins.pin_staff_id') }}">
- + @@ -203,7 +203,7 @@
{% if show_store_filter %}
- +