Files
orion/app/modules/loyalty/locales/lb.json
Samir Boulahtit 5f2885023c
Some checks failed
CI / ruff (push) Successful in 19s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has been cancelled
fix(loyalty-admin): require at least one terms field on program form
If a merchant saves a loyalty program with both terms_text and
terms_cms_page_slug empty, the storefront enrollment page renders the
"Terms & Conditions" link as a non-clickable <span> (see enroll.html
template branch) — customers can't read what they're agreeing to.

Two changes to the shared program-form to make this impossible to ship
by accident:

1. Yellow warning banner inside the Terms section, visible only when
   both fields are empty. Tells the admin what the storefront will
   look like and what to fix.
2. Save button is disabled until at least one of the two terms
   fields is filled. The button gets a localised :title tooltip
   explaining why it's disabled, and disabled:cursor-not-allowed so
   the disabled state is obvious on hover.

Added three i18n keys (terms_required_warning, terms_text_hint,
terms_required_tooltip) in en/fr/de/lb, plus a small "either this or
the slug above is required" hint under the textarea so each field is
self-explanatory in isolation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 23:36:14 +02:00

966 lines
47 KiB
JSON

{
"loyalty": {
"module": {
"name": "Treieprogrammer",
"description": "Stempel- a Punktebaséiert Treieprogrammer mat Wallet-Integratioun"
},
"program": {
"title": "Treieprogramm",
"create": "Programm erstellen",
"edit": "Programm beaarbechten",
"activate": "Aktivéieren",
"deactivate": "Deaktivéieren",
"type": {
"stamps": "Stempelen",
"points": "Punkten",
"hybrid": "Hybrid"
}
},
"card": {
"title": "Treiekaart",
"number": "Kaartnummer",
"qr_code": "QR-Code",
"enroll": "Client aschreiben",
"deactivate": "Kaart deaktivéieren"
},
"stamp": {
"title": "Stempelen",
"add": "Stempel derbäisetzen",
"redeem": "Belounung aléisen",
"count": "{current} vun {target}",
"until_reward": "{count} bis zur Belounung"
},
"points": {
"title": "Punkten",
"earn": "Punkten sammelen",
"redeem": "Punkten aléisen",
"balance": "{count} Punkten",
"per_euro": "{points} Punkten pro Euro"
},
"pin": {
"title": "Personal-PINen",
"create": "PIN erstellen",
"edit": "PIN beaarbechten",
"unlock": "PIN entspären",
"locked": "PIN gespaart bis {time}"
},
"wallet": {
"google": "An Google Wallet derbäisetzen",
"apple": "An Apple Wallet derbäisetzen"
},
"stats": {
"title": "Statistiken",
"total_cards": "Total Kaarten",
"active_cards": "Aktiv Kaarten",
"stamps_issued": "Stempelen ausgestallt",
"rewards_redeemed": "Belounungen agelées"
},
"errors": {
"program_not_found": "Treieprogramm net fonnt",
"program_inactive": "Treieprogramm ass net aktiv",
"card_not_found": "Treiekaart net fonnt",
"card_inactive": "Treiekaart ass net aktiv",
"cooldown": "W.e.g. waart {minutes} Minutten virum nächste Stempel",
"daily_limit": "Deeglecht Stempel-Limit vun {limit} erreecht",
"insufficient_stamps": "Brauch {required} Stempelen, huet {current}",
"insufficient_points": "Brauch {required} Punkten, huet {current}",
"pin_required": "Personal-PIN erfuerderlech",
"pin_invalid": "Ongëlteg Personal-PIN",
"pin_locked": "PIN gespaart wéinst ze vill Fehlversich"
}
},
"menu": {
"loyalty": "Treiprogramm",
"loyalty_programs": "Treiprogrammer",
"programs": "Programmer",
"analytics": "Analytik",
"dashboard": "Dashboard",
"terminal": "Terminal",
"customer_cards": "Clientekaarten",
"statistics": "Statistiken",
"program": "Programm",
"overview": "Iwwersiicht",
"settings": "Astellungen",
"wallet_debug": "Wallet Debug",
"staff_pins": "Mataarbechter-PINen",
"transactions": "Transaktionen",
"terminal_devices": "POS-Terminaler"
},
"permissions": {
"view_programs": "Programmer kucken",
"view_programs_desc": "Treiheet-Programmer an Detailer kucken",
"manage_programs": "Programmer verwalten",
"manage_programs_desc": "Treiheet-Programmer erstellen a konfiguréieren",
"view_rewards": "Beloununge kucken",
"view_rewards_desc": "Belounungen an Aléisunge kucken",
"manage_rewards": "Beloununge verwalten",
"manage_rewards_desc": "Treiheet-Belounungen erstellen a verwalten"
},
"onboarding": {
"create_program": {
"title": "Treieprogramm erstellen",
"description": "Erstellt Äert éischt Stempel- oder Punkteprogramm"
}
},
"enrollment": {
"title": "Gitt Member vun eisem Belounungsprogramm!",
"subtitle": "Verdéngt {points} Punkt pro ausgegoenen EUR",
"not_available_title": "Programm net verfügbar",
"not_available_message": "Dëse Buttek huet nach kee Treieprogramm ageriicht.",
"welcome_bonus": "Kritt {points} Bonuspunkten wann Dir Iech umellt!",
"already_member": "Schonn Member? Är Punkten sinn mat Ärer E-Mail verlinkt.",
"form": {
"email": "E-Mail",
"first_name": "Virnumm",
"last_name": "Nonumm",
"phone": "Telefon (fakultativ)",
"birthday": "Gebuertsdag (fakultativ)",
"birthday_hint": "Fir speziell Gebuertsdagsbelounungen",
"terms_agree": "Ech akzeptéieren d'",
"terms": "Allgemeng Geschäftsbedingungen",
"marketing_consent": "Mir Neiegkeeten an Sonderoffere schécken",
"joining": "Umeldung leeft...",
"join_button": "Bäitrieden & {points} Punkten kréien"
},
"privacy_policy": "Dateschutzrichtlinn",
"close": "Zoumaachen",
"success": {
"title": "Wëllkomm!",
"message": "Dir sidd elo Member vun eisem Belounungsprogramm.",
"card_number": "Är Kaartnummer",
"wallet_prompt": "Späichert Är Kaart op Ärem Handy fir einfachen Zougang:",
"next_steps_title": "Wéi geet et weider?",
"step_earn": "Weist Är Kaartnummer beim Akaf fir Punkten ze sammelen",
"step_balance": "Préift Äre Kontostand online oder an der App",
"step_redeem": "Léist Punkten géint Belounungen an all eise Standuerter an",
"view_dashboard": "Mäin Treie-Dashboard kucken",
"back_to_home": "Zréck op d'Haaptsäit"
},
"already_enrolled_title": "Dir sidd schonn Member!",
"cross_location_message": "Är Kaart gëllt an all eise Standuerter:",
"single_location_message": "Är Kaart ass bei {store_name} registréiert",
"available_locations": "Benotzt Är Kaart an all eise Standuerter:",
"errors": {
"load_failed": "Programminformatiounen konnten net gelueden ginn",
"email_exists": "Dës E-Mail ass schonn an eisem Treieprogramm registréiert.",
"failed": "Umeldung feelgeschloen. Probéiert w.e.g. nach eng Kéier."
}
},
"common": {
"active": "Aktiv",
"all_stores": "All Geschäfter",
"at": "bei",
"back": "Zréck",
"cancel": "Ofbriechen",
"confirm": "Bestätegen",
"continue": "Weider",
"delete": "Läschen",
"disabled": "Deaktivéiert",
"edit": "Beaarbechten",
"enabled": "Aktivéiert",
"inactive": "Inaktiv",
"loading": "Lueden...",
"minutes": "Minutten",
"never": "Ni",
"no": "Neen",
"none": "Keen",
"or": "oder",
"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",
"contact_admin_setup": "Kontaktéiert Ären Administrator fir d'Treieprogramm anzeriichten",
"setup_program": "Programm ariichten",
"unknown": "Onbekannt"
},
"transactions": {
"card_created": "Ageschriwwen",
"welcome_bonus": "Wëllkommensbonus",
"stamp_earned": "Stempel kritt",
"stamp_redeemed": "Stempel agelées",
"stamp_voided": "Stempel stornéiert",
"stamp_adjustment": "Stempel ugepasst",
"points_earned": "Punkten verdéngt",
"points_redeemed": "Punkten agelées",
"points_voided": "Punkten stornéiert",
"points_adjustment": "Punkten ugepasst",
"points_expired": "Punkten ofgelaf",
"card_deactivated": "Deaktivéiert",
"reward_redeemed": "Belounung agelées",
"welcome_bonus_note": "Wëllkommsbonus bei der Umeldung"
},
"shared": {
"analytics": {
"total_programs": "Programmer insgesamt",
"total_members": "Memberen insgesamt",
"active_members": "Aktiv Memberen",
"points_issued_30d": "Punkten vergi (30D)",
"transactions_30d": "Transaktiounen (30D)",
"x_active": "{count} aktiv",
"points_overview": "Punkteniwwersiicht",
"points_issued_vs_redeemed": "Punkten vergi vs agelées (30D)",
"issued": "Vergi:",
"redeemed": "Agelées:",
"redemption_rate": "Aléisungsquot",
"outstanding_balance": "Ausstehende Solde",
"member_activity": "Memberaktivitéit",
"active_members_30d": "Aktiv Memberen (30D)",
"new_this_month": "Nei dëse Mount",
"merchants_with_programs": "Händler mat Programmer",
"avg_points_per_member": "Durchschn. Punkten pro Member",
"all_time_statistics": "Gesamtstatistiken",
"total_points_issued": "Total Punkten vergi",
"total_points_redeemed": "Total Punkten agelées",
"points_redeemed_30d": "Punkten agelées (30D)",
"outstanding_liability": "Ausstehend Verbindlechkeet",
"location_breakdown": "Opschlësselung no Standuert",
"store": "Geschäft",
"enrolled": "Ageschriwwen",
"points_earned": "Punkten verdéngt",
"points_redeemed": "Punkten agelées"
},
"program_view": {
"program_configuration": "Programmkonfiguratioun",
"program_name": "Programmnumm",
"card_name": "Kaartnumm",
"stamps_configuration": "Stempelkonfiguratioun",
"stamps_target": "Stempelzil",
"reward_description": "Belounungsbeschreiwung",
"reward_value": "Belounungswäert",
"points_configuration": "Punktekonfiguratioun",
"points_per_eur": "Punkten pro EUR",
"welcome_bonus": "Wëllkommensbonus",
"x_points": "{count} Punkten",
"minimum_redemption": "Mindest-Aléisung",
"minimum_purchase": "Mindest-Akaf",
"points_expiration": "Punktenoflaaf",
"x_days_inactivity": "{days} Deeg Inaktivitéit",
"redemption_rewards": "Aléisungsbelounungen",
"reward": "Belounung",
"points_required": "Néideg Punkten",
"description": "Beschreiwung",
"anti_fraud": "Betrugsschutz",
"cooldown": "Waardezäit",
"x_minutes": "{count} Minutten",
"max_daily_stamps": "Max. Stempelen pro Dag",
"staff_pin_required": "Personal-PIN erfuerderlech",
"branding": "Branding",
"primary_color": "Haaptfaarf",
"secondary_color": "Secondärfaarf",
"logo_url": "Logo-URL",
"hero_image_url": "Hannergrondbild-URL",
"terms_privacy": "AGB & Dateschutz",
"terms_conditions": "Allgemeng Geschäftsbedingungen",
"privacy_policy_url": "Dateschutzrichtlinn-URL"
},
"cards": {
"total_members": "Memberen total",
"active_30d": "Aktiv (30D)",
"new_this_month": "Nei dëse Mount",
"total_points_balance": "Total Punktestand",
"search_placeholder": "No Numm, E-Mail, Telefon oder Kaartennummer sichen...",
"all_status": "All Statussen",
"all_stores": "All Geschäfter",
"col_member": "Member",
"col_card_number": "Kaartennummer",
"col_points_balance": "Punktestand",
"col_last_activity": "Lescht Aktivitéit",
"col_status": "Status",
"col_actions": "Aktiounen",
"no_members": "Keng Memberen fonnt",
"adjust_search": "Probéiert Är Sichkriterien unzepassen"
},
"card_detail": {
"title": "Kaartendetail",
"loading": "Kaartendetailer ginn gelueden...",
"error_loading": "Feeler beim Lueden",
"points_balance": "Punktestand",
"total_earned": "Total verdéngt",
"total_redeemed": "Total ageléist",
"member_since": "Member zënter",
"customer_information": "Clientsinformatiounen",
"name": "Numm",
"email": "E-Mail",
"phone": "Telefon",
"birthday": "Gebuertsdag",
"card_details": "Kaartendetailer",
"card_number": "Kaartennummer",
"status": "Status",
"last_activity": "Lescht Aktivitéit",
"enrolled_at": "Ageschriwwen bei",
"transaction_history": "Transaktiouns-Historique",
"col_date": "Datum",
"col_type": "Typ",
"col_points": "Punkten",
"col_location": "Standuert",
"col_notes": "Notizen",
"no_transactions": "Keng Transaktioune fonnt"
},
"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...",
"all_types": "All Typen",
"all_stores": "All Geschäfter",
"col_date": "Datum",
"col_customer": "Client",
"col_type": "Typ",
"col_points": "Punkten",
"col_location": "Standuert",
"col_notes": "Notizen",
"no_transactions": "Keng Transaktioune fonnt",
"type_adjust": "Upassen",
"type_earn": "Verdéngen",
"type_expire": "Oflafen",
"type_redeem": "Aléisen"
},
"pins": {
"title": "Mataarbechter-PINen",
"subtitle": "Mataarbechter-Authentifizéierungs-PINen verwalten",
"loading": "PINe ginn gelueden...",
"error_loading": "Feeler beim Lueden",
"total_pins": "PINen total",
"active_pins": "Aktiv",
"locked_pins": "Gespaart",
"all_stores": "All Geschäfter",
"all_status": "All Statussen",
"status_active": "Aktiv",
"status_inactive": "Inaktiv",
"status_locked": "Gespaart",
"col_name": "Numm",
"col_staff_id": "Mataarbechter-ID",
"col_store": "Geschäft",
"col_status": "Status",
"col_locked": "Gespaart",
"col_last_used": "Lescht benotzt",
"col_actions": "Aktiounen",
"no_pins": "Keng PINen fonnt",
"create_pin": "PIN erstellen",
"edit_pin": "PIN änneren",
"delete_pin": "PIN läschen",
"unlock_pin": "Entspären",
"confirm_delete": "Sidd Dir sécher, datt Dir dësen PIN läsche wëllt?",
"pin_name": "Numm vum Mataarbechter",
"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",
"pin_updated": "PIN erfollegräich aktualiséiert",
"pin_deleted": "PIN erfollegräich geläscht",
"pin_unlocked": "PIN erfollegräich entspäert",
"save": "Späicheren",
"cancel": "Ofbriechen",
"read_only_notice": "PINen sinn an der Admin-Usiicht nëmmen ze liesen",
"save_changes": "Späicheren",
"unlock": "Entspären",
"no_staff_found": "Keng Mataarbechter fonnt"
},
"program_form": {
"program_type": "Programmtyp",
"points_type_desc": "Punkten pro ausgegoenen EUR verdéngen",
"stamps_type_desc": "N Stempelen sammelen, Belounung kréien",
"hybrid_type_desc": "Stempelen a Punkten kombinéiert",
"stamps_configuration": "Stempelkonfiguratioun",
"stamps_target": "Stempelzil",
"stamps_target_help": "Unzuel vun de Stempelen fir d'Belounung",
"reward_description": "Belounungsbeschreiwung",
"reward_value_cents": "Belounungswäert (Cent)",
"points_configuration": "Punktekonfiguratioun",
"points_per_eur": "Punkten pro ausgegoenen EUR",
"eur_equals_points": "1 EUR = {points} Punkt(en)",
"welcome_bonus_points": "Wëllkommensbonuspunkten",
"welcome_bonus_help": "Bonuspunkten bei der Umeldung",
"minimum_redemption_points": "Mindest-Aléisungspunkten",
"minimum_purchase_cents": "Mindest-Akaf (Cent)",
"minimum_purchase_help": "Mindestakafsbetrag fir Punkten ze sammelen (0 = kee Minimum)",
"points_expiration_days": "Punktenoflaaf (Deeg)",
"points_expiration_help": "Deeg vun Inaktivitéit bis zum Punktenoflaaf (0 = ni)",
"redemption_rewards": "Aléisungsbelounungen",
"add_reward": "Belounung derbäisetzen",
"no_rewards_configured": "Keng Belounungen konfiguréiert. Setzt eng Belounung derbäi fir datt Clienten Punkten aléise kënnen.",
"reward_name": "Belounungsnumm",
"points_required": "Néideg Punkten",
"description": "Beschreiwung",
"anti_fraud_settings": "Betrugsschutz-Astellungen",
"cooldown_minutes": "Waardezäit (Minutten)",
"cooldown_help": "Zäit tëschent Stempelen vun der selwechter Kaart",
"max_daily_stamps": "Max. Stempelen pro Dag",
"max_daily_stamps_help": "Maximal Stempelen pro Kaart pro Dag",
"require_staff_pin": "Personal-PIN verlaangen",
"branding": "Branding",
"card_name": "Kaartnumm",
"primary_color": "Haaptfaarf",
"secondary_color": "Secondärfaarf",
"logo_url": "Logo-URL",
"logo_url_help": "Erfuerderlech fir Google Wallet-Integratioun. Muss eng ëffentlech zougänglech Bild-URL sinn (PNG oder JPG).",
"hero_image_url": "Hannergrondbild-URL",
"terms_privacy": "AGB & Dateschutz",
"terms_cms_page": "CMS-Säiten-Slug",
"terms_cms_page_hint": "Gitt e CMS-Säiten-Slug an (z.B. agb) fir déi komplett AGB vum CMS-Modul unzeweisen",
"terms_conditions": "Allgemeng Geschäftsbedingungen (Fallback)",
"terms_fallback_hint": "Gëtt benotzt wann keen CMS-Slug gesat ass",
"terms_text_hint": "Plain-Text-Ersatz. Entweder dëst Feld ODER de CMS-Säit-Slug uewendriwwer ass erfuerderlech, fir datt Clienten d'AGB op der Aschreiwungssäit liesen kënnen.",
"terms_required_warning": "Clienten musse fäeg sinn Är AGB ze liese ier se se akzeptéieren. Fëllt entweder de CMS-Säit-Slug uewendriwwer oder de Plain-Text-Ersatz hei drënner aus — bis dat gemaach ass, ass de \"AGB\"-Link op der Aschreiwungssäit vum Storefront net cliquéierbar.",
"terms_required_tooltip": "Fëllt de CMS-Slug oder den AGB-Plain-Text aus ier Dir späichert.",
"privacy_policy_url": "Dateschutzrichtlinn-URL",
"program_status": "Programmstatus",
"program_active": "Programm aktiv",
"program_active_help": "Deaktivéiert kënne Clienten net sammelen oder aléisen",
"delete_program": "Programm läschen",
"create_program": "Programm erstellen",
"save_changes": "Ännerunge späicheren"
}
},
"admin": {
"programs": {
"title": "Treieprogrammer",
"create_program": "Programm erstellen",
"loading": "Treieprogrammer gi gelueden...",
"error_loading": "Feeler beim Luede vun den Treieprogrammer",
"total_programs": "Programmer insgesamt",
"active": "Aktiv",
"total_members": "Memberen insgesamt",
"transactions_30d": "Transaktiounen (30D)",
"search_placeholder": "No Händlernumm sichen...",
"all_status": "All Status",
"table_merchant": "Händler",
"table_program_type": "Programmtyp",
"table_members": "Memberen",
"table_points_issued": "Punkten vergi",
"table_status": "Status",
"table_created": "Erstellt",
"table_actions": "Aktiounen",
"no_programs": "Keng Treieprogrammer fonnt",
"adjust_filters": "Probéiert Är Sich oder Filter unzepassen",
"no_merchants_yet": "Nach kee Händler huet en Treieprogramm erstellt",
"x_active": "({count} aktiv)",
"x_redeemed": "{count} agelées",
"pt_per_eur": "Pkt/EUR",
"delete_title": "Treieprogramm läschen",
"delete_message": "Treieprogramm fir \"{name}\" läschen? All verbonnen Daten (Kaarten, Transaktiounen, Belounungen) ginn dauerhaft geläscht. Dëst kann net réckgängeg gemaach ginn.",
"delete_confirm": "Programm läschen",
"create_title": "Treieprogramm erstellen",
"create_description": "Wielt en Händler fir en Treieprogramm ze erstellen.",
"search_merchant": "Händler sichen",
"type_merchant_name": "Händlernumm aginn...",
"no_merchants_found": "Keen Händler fonnt",
"existing_program_warning": "Dësen Händler huet schonn en Treieprogramm.",
"view_edit_existing": "Bestehend Programm kucken / beaarbechten"
},
"merchant_detail": {
"title": "Händler-Treiedetailer",
"loading": "Treiedetailer gi gelueden...",
"error_loading": "Feeler beim Luede vun der Händlertreie",
"program_active": "Treieprogramm aktiv",
"no_program_subtitle": "Keen Treieprogramm",
"quick_actions": "Schnellaktiounen",
"edit_program": "Programm beaarbechten",
"admin_policy": "Admin-Richtlinn",
"view_merchant": "Händler kucken",
"total_members": "Memberen insgesamt",
"active_30d": "Aktiv (30D)",
"points_issued_30d": "Punkten vergi (30D)",
"points_redeemed_30d": "Punkten agelées (30D)",
"no_program": "Keen Treieprogramm",
"no_program_desc": "Dësen Händler huet nach keen Treieprogramm ageriicht.",
"create_program": "Programm erstellen",
"delete_title": "Treieprogramm läschen",
"delete_message": "D'Treieprogramm an all verbonnen Daten ginn dauerhaft geläscht. Dëst kann net réckgängeg gemaach ginn.",
"delete_confirm": "Programm läschen",
"location_breakdown": "Opschlësselung no Standuert",
"table_location": "Standuert",
"table_enrolled": "Ageschriwwen",
"table_points_earned": "Punkten verdéngt",
"table_points_redeemed": "Punkten agelées",
"table_transactions_30d": "Transaktiounen (30D)",
"admin_policy_settings": "Admin-Richtlinn-Astellungen",
"staff_pin_policy": "Personal-PIN-Richtlinn",
"self_enrollment": "Selbstumeldung",
"cross_location_redemption": "Standuertiwergreifend Aléisung",
"allowed": "Erlaabt",
"disabled": "Deaktivéiert",
"modify_policy": "Admin-Richtlinn änneren",
"view_cards": "Kaarten kucken",
"view_transactions": "Transaktioune kucken",
"view_pins": "PINen kucken"
},
"merchant_cards": {
"title": "Händlerkaarten",
"subtitle": "Treiekaarten fir dësen Händler kucken",
"loading": "Kaarte ginn gelueden...",
"error_loading": "Feeler beim Lueden"
},
"merchant_card_detail": {
"title": "Kaartendetail",
"error_loading": "Feeler beim Lueden",
"loading": "Kaartendetailer ginn gelueden..."
},
"merchant_transactions": {
"title": "Händler-Transaktionen",
"subtitle": "All Transaktioune fir dësen Händler",
"loading": "Transaktioune ginn gelueden...",
"error_loading": "Feeler beim Lueden"
},
"merchant_pins": {
"title": "Händler-PINen",
"subtitle": "PINen fir dësen Händler kucken (nëmmen liesen)",
"loading": "PINe ginn gelueden...",
"error_loading": "Feeler beim Lueden"
},
"merchant_settings": {
"title": "Händler-Treieastelllungen",
"loading": "Astellunge gi gelueden...",
"error_loading": "Feeler beim Luede vun den Astellungen",
"admin_controlled": "Admin-kontrolléiert Astellungen fir d'Treieprogramm vun dësem Händler",
"staff_pin_policy": "Personal-PIN-Richtlinn",
"staff_pin_description": "Bestëmmt ob Mataarbechter e PIN aginn mussen fir Treietransaktiounen ze veraarbechten.",
"required": "Erfuerderlech",
"required_desc": "Personal muss säin PIN bei all Transaktioun aginn. Recommandéiert fir d'Sécherheet.",
"optional": "Fakultativ",
"optional_desc": "Geschäfter kënne wielen ob PINe verlaangt ginn.",
"pin_disabled": "Deaktivéiert",
"pin_disabled_desc": "Personal-PINe ginn net benotzt. All Mataarbechter kann Transaktiounen veraarbechten.",
"pin_lockout_settings": "PIN-Sparrastellungen",
"max_failed_attempts": "Max. Fehlversich",
"max_failed_attempts_help": "Unzuel vu falschen Versich virun der Spär (3-10)",
"lockout_duration": "Spärauer (Minutten)",
"lockout_duration_help": "Wéi laang d'Spär no Fehlversich dauert (5-120 Minutten)",
"enrollment_settings": "Umeldungsastellungen",
"allow_self_enrollment": "Selbstumeldung erlaben",
"self_enrollment_desc": "Clienten kënne sech per QR-Code ouni Personal umellen",
"transaction_settings": "Transaktiouns-Astellungen",
"allow_cross_location": "Standuertiwergreifend Aléisung erlaben",
"cross_location_desc": "Clienten kënne Punkten an all Standuerter vum Händler aléisen",
"allow_void": "Stornéierungen erlaben",
"void_desc": "Personal kann Punkten/Stempelen bei Réckgaben stornéieren",
"save_settings": "Astellunge späicheren"
},
"analytics": {
"title": "Treie-Analytik",
"subtitle": "Plattformwäit Treieprogramm-Statistiken",
"loading": "Analytik gëtt gelueden...",
"error_loading": "Feeler beim Luede vun der Analytik",
"filter_by_merchant": "No Händler filtréieren",
"search_merchants_placeholder": "Händler no Numm sichen...",
"showing_stats_for": "Statistike fir:",
"wallet_status": "Wallet-Integratiounsstatus",
"google_wallet": "Google Wallet",
"apple_wallet": "Apple Wallet",
"connected": "Verbonnen",
"error": "Feeler",
"not_configured": "Net konfiguréiert",
"issuer_id": "Aussteller-ID",
"project": "Projet",
"wallet_objects": "Wallet-Objeten",
"loyalty_classes": "Treieklassen",
"pass_type_id": "Pass-Typ-ID",
"team_id": "Team-ID",
"active_passes": "Aktiv Päss",
"quick_actions": "Schnellaktiounen",
"view_all_programs": "All Programmer kucken",
"manage_merchants": "Händler verwalten"
},
"program_edit": {
"title": "Programmkonfiguratioun",
"loading": "Konfiguratioun gëtt gelueden...",
"error_loading": "Feeler beim Luede vun der Programmkonfiguratioun",
"create_subtitle": "Treieprogramm fir dësen Händler erstellen",
"edit_subtitle": "Programmkonfiguratioun beaarbechten",
"delete_title": "Treieprogramm läschen",
"delete_message": "D'Treieprogramm an all verbonnen Daten (Kaarten, Transaktiounen, Belounungen) ginn dauerhaft geläscht. Dëst kann net réckgängeg gemaach ginn.",
"delete_confirm": "Programm läschen"
}
},
"merchant": {
"program": {
"title": "Treieprogramm",
"subtitle": "Är Treieprogramm-Konfiguratioun.",
"edit_program": "Programm beaarbechten",
"no_program": "Keen Treieprogramm",
"no_program_desc": "Ärt Treieprogramm gouf nach net ageriicht. Erstellt eent fir Är Clienten ze belounegen.",
"create_program": "Programm erstellen"
},
"program_edit": {
"title": "Treie-Astellungen",
"page_title": "Treieprogramm-Astellungen",
"subtitle": "Konfiguréiert Ärt Treieprogramm",
"loading": "Astellunge gi gelueden...",
"error_loading": "Feeler beim Luede vun den Astellungen",
"delete_title": "Treieprogramm läschen",
"delete_message": "Ärt Treieprogramm an all verbonnen Daten (Kaarten, Transaktiounen, Belounungen) ginn dauerhaft geläscht. Dëst kann net réckgängeg gemaach ginn.",
"delete_confirm": "Programm läschen"
},
"cards": {
"title": "Clientskaarten",
"subtitle": "Treieprogramm-Memberen iwwer all Standuerter verwalten",
"error_loading": "Feeler beim Lueden",
"loading": "Kaarte ginn gelueden..."
},
"card_detail": {
"title": "Kaartendetail",
"card_label": "Kaart",
"error_loading": "Feeler beim Lueden",
"loading": "Kaartendetailer ginn gelueden..."
},
"transactions": {
"title": "Transaktionen",
"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",
"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",
"void_transactions": "Stornéierungen erlaben",
"enabled": "Aktivéiert",
"disabled": "Deaktivéiert",
"required": "Obligatoresch",
"optional": "Optional"
},
"analytics": {
"title": "Treie-Analytik",
"subtitle": "Treieprogramm-Statistiken fir all Är Geschäfter",
"loading": "Analytik gëtt gelueden...",
"error_loading": "Feeler beim Luede vun der Analytik",
"no_program": "Keen Treieprogramm",
"no_program_desc": "Riicht en Treieprogramm an fir hei Analytik ze gesinn.",
"create_program": "Programm erstellen",
"quick_actions": "Schnellaktiounen",
"view_program": "Programm kucken",
"edit_program": "Programm beaarbechten"
}
},
"store": {
"terminal": {
"title": "Treie-Terminal",
"subtitle": "Treietransaktiounen veraarbechten",
"members": "Memberen",
"analytics": "Analytik",
"loading": "Treie-Terminal gëtt gelueden...",
"error_loading": "Feeler beim Luede vum Terminal",
"not_setup": "Treieprogramm net ageriicht",
"not_setup_desc": "Ären Händler huet nach keen Treieprogramm konfiguréiert.",
"setup_program": "Treieprogramm ariichten",
"contact_admin": "Kontaktéiert Ären Administrateur fir d'Ariichtung ofzeschléissen.",
"find_customer": "Client fannen",
"search_placeholder": "E-Mail, Telefon oder Kaartnummer...",
"looking_up": "Sich leeft...",
"look_up_customer": "Client sichen",
"enroll_new_customer": "Neie Client umellen",
"customer_found": "Client fonnt",
"points_balance": "Punktestand",
"stamps": "Stempelen",
"x_more_for_reward": "Nach {count} fir d'Belounung",
"ready_to_redeem": "Prett fir anzeléisen!",
"add_stamp": "Stempel derbäisetzen",
"current": "Aktuell:",
"cooldown_active": "Waardezäit aktiv",
"redeem_stamps": "Stempelen aléisen",
"not_enough_stamps": "Nach net genuch Stempelen",
"earn_points": "Punkten sammelen",
"purchase_amount": "Akafsbetrag",
"points_to_award": "Punkten ze verginn:",
"award_points": "Punkten verginn",
"redeem_reward": "Belounung aléisen",
"select_reward": "Belounung wielen",
"select_reward_placeholder": "Belounung wielen...",
"points_after": "Punkten duerno:",
"search_to_process": "Sicht e Client fir eng Transaktioun ze veraarbechten",
"recent_transactions": "Rezent Transaktiounen un dësem Standuert",
"col_time": "Zäit",
"col_customer": "Client",
"col_type": "Typ",
"col_points": "Punkten",
"col_notes": "Notizen",
"no_recent_transactions": "Keng rezent Transaktiounen",
"enter_staff_pin": "Personal-PIN aginn",
"pin_authorize": "Gitt Äre Personal-PIN an fir dës Transaktioun ze autoriséieren.",
"clear": "Läschen",
"processing": "Veraarbechtung...",
"customer_not_found": "Client net fonnt. Dir kënnt hien als neit Member umellen.",
"error_lookup": "Feeler bei der Clientesich: {message}",
"transaction_failed": "Transaktioun feelgeschloen: {message}",
"stamp_added": "Stempel derbäigesat!",
"stamps_redeemed": "Stempelen agelées! Belounung kritt.",
"x_points_awarded": "{points} Punkten vergi!",
"reward_redeemed": "Belounung agelées: {name}",
"card_label": "Kaart",
"confirm": "Bestätegen",
"pin_authorize_text": "Gitt Ären Mataarbechter-PIN an fir dës Transaktioun ze autorisieren",
"free_item": "Gratis Artikel",
"reward_label": "Belounung",
"search_empty_state": "Sicht e Client fir unzefänken"
},
"cards": {
"title": "Treie-Memberen",
"subtitle": "Memberen vun Ärem Treieprogramm kucken a verwalten",
"enroll_new": "Umellen",
"loading": "Membere gi gelueden...",
"error_loading": "Feeler beim Luede vun de Memberen",
"total_members": "Memberen insgesamt",
"active_30d": "Aktiv (30D)",
"new_this_month": "Nei dëse Mount",
"total_points_balance": "Gesamtpunktestand",
"search_placeholder": "No Numm, E-Mail, Telefon oder Kaart sichen...",
"all_status": "All Status",
"col_member": "Member",
"col_card_number": "Kaartnummer",
"col_points_balance": "Punktestand",
"col_last_activity": "Lescht Aktivitéit",
"col_status": "Status",
"col_actions": "Aktiounen",
"no_members": "Keng Membere fonnt",
"adjust_search": "Probéiert Är Sich unzepassen",
"enroll_first": "Mellt Ären éischte Client un"
},
"card_detail": {
"title": "Memberdetailer",
"loading": "Memberdetailer gi gelueden...",
"error_loading": "Feeler beim Luede vum Member",
"points_balance": "Punktestand",
"total_earned": "Insgesamt verdéngt",
"total_redeemed": "Insgesamt agelées",
"member_since": "Member zënter",
"customer_information": "Clienteninformatioun",
"name": "Numm",
"email": "E-Mail",
"phone": "Telefon",
"birthday": "Gebuertsdag",
"card_details": "Kaartdetailer",
"card_number": "Kaartnummer",
"status": "Status",
"last_activity": "Lescht Aktivitéit",
"enrolled_at": "Ugemellt um",
"transaction_history": "Transaktiounsverlaf",
"col_date": "Datum",
"col_type": "Typ",
"col_points": "Punkten",
"col_location": "Standuert",
"col_notes": "Notizen",
"no_transactions": "Nach keng Transaktiounen",
"card_label": "Kaart"
},
"enroll": {
"title": "Client umellen",
"page_title": "Neie Client umellen",
"subtitle": "Neit Member bei Ärem Treieprogramm derbäisetzen",
"loading": "Lueden...",
"error_loading": "Feeler beim Luede vum Umeldungsformular",
"customer_information": "Clienteninformatioun",
"first_name": "Virnumm",
"last_name": "Nonumm",
"email": "E-Mail",
"phone": "Telefon",
"birthday": "Gebuertsdag",
"birthday_help": "Fir Gebuertsdagsbelounungen (fakultativ)",
"communication_preferences": "Kommunikatiounsastellungen",
"send_emails": "Promotiounsmaile schécken",
"send_sms": "Promotiounssms schécken",
"welcome_bonus": "Wëllkommensbonus",
"welcome_bonus_desc": "Client kritt {points} Bonuspunkten!",
"enroll_customer": "Client umellen",
"enrolling": "Umeldung...",
"customer_enrolled": "Client ugemellt!",
"starting_balance": "Ufankssolde:",
"x_points": "{count} Punkten",
"back_to_terminal": "Zréck zum Terminal",
"enroll_another": "Weider umellen",
"enrollment_failed": "Umeldung feelgeschloen: {message}",
"bonus_points": "Bonuspunkten",
"card_number_label": "Kaartennummer",
"points": "Punkten"
},
"analytics": {
"title": "Treie-Analytik",
"subtitle": "Verfollegt d'Performance vun Ärem Treieprogramm",
"loading": "Analytik gëtt gelueden...",
"error_loading": "Feeler beim Luede vun der Analytik",
"quick_actions": "Schnellaktiounen",
"open_terminal": "Terminal opmaachen",
"view_members": "Membere kucken",
"view_program": "Programm kucken"
},
"program": {
"title": "Treieprogramm",
"subtitle": "Är Treieprogramm-Konfiguratioun",
"edit_program": "Programm beaarbechten",
"loading": "Programm gëtt gelueden...",
"error_loading": "Feeler beim Luede vum Programm",
"no_program": "Keen Treieprogramm",
"no_program_desc": "Ären Händler huet nach keen Treieprogramm konfiguréiert.",
"create_program": "Programm erstellen",
"contact_admin": "Kontaktéiert Ären Administrateur fir en Treieprogramm anzerichten."
},
"pins": {
"title": "Mataarbechter-PINen",
"subtitle": "Mataarbechter-PINen fir dëse Standuert verwalten",
"loading": "PINe ginn gelueden...",
"error_loading": "Feeler beim Lueden vun den PINen"
},
"settings": {
"title": "Treie-Astellungen",
"page_title": "Treieprogramm-Astellungen",
"subtitle": "Konfiguréiert Ärt Treieprogramm",
"back_to_program": "Zréck zum Programm",
"loading": "Astellunge gi gelueden...",
"error_loading": "Feeler beim Luede vun den Astellungen",
"access_restricted": "Zougang ageschränkt",
"owner_only": "Nëmmen den Geschäftseigentümer kann d'Treieprogramm-Astellungen verwalten.",
"delete_title": "Treieprogramm läschen",
"delete_message": "D'Treieprogramm an all verbonnen Daten (Kaarten, Transaktiounen, Belounungen) ginn dauerhaft geläscht. Dëst kann net réckgängeg gemaach ginn.",
"delete_confirm": "Programm läschen",
"program_created": "Programm erfollegräich erstellt",
"program_updated": "Programm erfollegräich aktualiséiert",
"program_deleted": "Treieprogramm geläscht",
"save_failed": "Späichere feelgeschloen: {message}",
"delete_failed": "Läsche feelgeschloen: {message}",
"access_restricted_desc": "Nëmmen den Besëtzer kann d'Astellungen änneren",
"delete_program_confirm": "Läschen",
"delete_program_desc": "Dëst läscht d'Treieprogramm an all verbonnen Daten permanent",
"delete_program_title": "Treieprogramm läschen?"
}
},
"storefront": {
"dashboard": {
"back_to_account": "Zréck zum Kont",
"my_loyalty": "Meng Treie",
"join_title": "Gitt Member vun eisem Belounungsprogramm!",
"join_subtitle": "Sammelt Punkten bei all Akaf an léist se géint Belounungen an.",
"join_now": "Elo bäitrieden",
"points_balance": "Punktestand",
"card_number": "Kaartnummer",
"show_card": "Kaart weisen",
"total_earned": "Insgesamt verdéngt",
"total_redeemed": "Insgesamt agelées",
"available_rewards": "Verfügbar Belounungen",
"no_rewards_yet": "Nach keng Belounungen verfügbar",
"ready_to_redeem": "Prett fir anzeléisen",
"x_more_to_go": "Nach {count}",
"redeem_hint": "Weist Är Kaart dem Personal fir Belounungen am Geschäft anzeléisen.",
"recent_activity": "Rezent Aktivitéit",
"view_all": "Alles kucken",
"no_transactions": "Nach keng Transaktiounen. Maacht en Akaf fir Punkten ze sammelen!",
"earn_redeem_locations": "Sammel- & Aléisungs-Standuerter",
"your_loyalty_card": "Är Treiekaart",
"show_to_staff": "Weist dëst dem Personal beim Akaf oder beim Aléise vu Belounungen."
},
"history": {
"back_to_loyalty": "Zréck zur Treie",
"title": "Transaktiounsverlaf",
"subtitle": "All Är Treiepunkttransaktiounen kucken",
"current_balance": "Aktuell Solde",
"total_earned": "Insgesamt verdéngt",
"total_redeemed": "Insgesamt agelées",
"no_transactions": "Nach keng Transaktiounen",
"balance": "Solde:",
"previous": "Zréck",
"next": "Weider",
"page_x_of_y": "Säit {page} vun {pages}"
},
"account": {
"loyalty": "Treieprogramm"
}
},
"toasts": {
"program_activated": "Programm erfollegräich aktivéiert",
"program_deactivated": "Programm erfollegräich deaktivéiert",
"activate_failed": "Programm konnt net aktivéiert ginn: {message}",
"deactivate_failed": "Programm konnt net deaktivéiert ginn: {message}",
"program_deleted": "Programm erfollegräich geläscht",
"delete_failed": "Programm konnt net geläscht ginn: {message}",
"program_created": "Programm erfollegräich erstellt",
"program_updated": "Programm erfollegräich aktualiséiert",
"loyalty_program_created": "Treieprogramm erstellt",
"loyalty_program_deleted": "Treieprogramm geläscht",
"settings_saved": "Astellungen erfollegräich gespäichert",
"save_failed": "Späichere feelgeschloen: {message}",
"settings_save_failed": "Astellunge konnten net gespäichert ginn: {message}",
"create_failed": "Programm konnt net erstellt ginn: {message}",
"logo_required": "Logo-URL ass erfuerderlech fir d'Wallet-Integratioun.",
"pin_created": "PIN erfollegräich erstallt",
"pin_updated": "PIN erfollegräich aktualiséiert",
"pin_deleted": "PIN erfollegräich geläscht",
"pin_unlocked": "PIN erfollegräich entspäert",
"pin_create_error": "PIN konnt net erstallt ginn",
"pin_update_error": "PIN konnt net aktualiséiert ginn",
"pin_delete_error": "PIN konnt net geläscht ginn",
"pin_unlock_error": "PIN konnt net entspäert ginn"
},
"terminal_devices": {
"title": "POS-Terminaler",
"subtitle": "Koppel POS-Tablets un all Geschäft. De Setup-QR gëtt nëmmen eemol beim Pairing ugewisen.",
"admin_subtitle": "Koppel POS-Tablets am Numm vun dësem Händler.",
"loading": "Terminaler gi gelueden...",
"error_loading": "Terminaler konnten net gelueden ginn",
"no_devices": "Nach keng Terminaler gekoppelt",
"show_revoked": "Widerrufe weisen",
"pair_device": "Tablet koppelen",
"pair_hint": "E laangliewege Setup-QR gëtt generéiert. D'Tablet scannt en eemol an ass duerno verbonnen.",
"pairing_qr": "Tablet-Pairing-QR",
"qr_warning_title": "Späichert dat elo —",
"qr_warning_body": "dëse QR gëtt nëmmen elo gewisen. Wann Dir en zoumaacht ier d'Tablet gekoppelt ass, musst Dir widerruffen a nei koppelen.",
"qr_done": "Tablet ass gekoppelt",
"show_payload": "Roen Inhalt weisen",
"label_field": "Numm vum Terminal",
"label_placeholder": "z. B. Keess 1",
"store_field": "Geschäft",
"select_store": "Geschäft auswielen...",
"revoke": "Widerruffen",
"revoke_title": "Terminal widerruffen?",
"confirm_revoke": "Terminal „{label}“ widerruffen? D'Tablet funktionnéiert direkt net méi.",
"delete_title": "Terminal läschen?",
"confirm_delete": "Terminal „{label}“ definitiv läschen? Dat kann net réckgängeg gemaach ginn.",
"col_label": "Numm",
"col_store": "Geschäft",
"col_status": "Status",
"col_last_seen": "Lescht Aktivitéit",
"col_expires": "Leeft of",
"col_actions": "Aktiounen",
"status_active": "Aktiv",
"status_revoked": "Widerrufen",
"status_expired": "Ofgelaf",
"toasts": {
"paired": "Tablet gekoppelt — weist de QR um Apparat",
"revoked": "Terminal widerrufen",
"deleted": "Terminal geläscht"
},
"errors": {
"store_required": "Wielt w. e. g. e Geschäft",
"pair_failed": "Koppelen huet net geklappt",
"revoke_failed": "Widerruf huet net geklappt",
"delete_failed": "Läschen huet net geklappt"
}
},
"errors": {
"card_not_found": "Kaart net fonnt"
}
}