Files
orion/app/modules/customers/locales/lb.json
Samir Boulahtit 10a99f98fe
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(storefront): i18n sweep + locale-aware reset-password and welcome email
Test 5 (storefront password reset + customer dashboard) surfaced five
issues that all traced back to missing i18n plumbing:

- Forgot-password email arrived in EN regardless of storefront locale —
  handler now prefers request.state.language over customer.preferred_language,
  and loyalty self-enrollment backfills preferred_language for new + returning
  customers so future locale-sensitive flows hit the right language without
  being told twice.
- reset-password.html rendered "undefined" icon boxes because $icon magic
  wasn't loaded in the standalone page — replaced with inline SVGs matching
  the forgot-password.html convention.
- reset-password.html was hardcoded English: added lang attr, full _()
  sweep (22 new auth.* keys × 4 locales), language selector, and JS
  validation strings exposed via tojson.
- "Continue shopping" CTA renamed to "Back to Home" (auth.back_to_home,
  4 locales) on login + forgot + reset — loyalty storefronts have no
  catalog to continue to, mirroring the earlier enroll-success rename.
- /account dashboard, profile, addresses were hardcoded English in the
  body (menu was FR because base layout uses _()). New customers.storefront
  .pages.{dashboard,profile,addresses}.* namespace (~80 keys × 4 locales),
  templates updated, Alpine JS strings injected via window.__*I18n.

18 files, 18 changed; arch validation: 126 warnings before = 126 after,
mkdocs --strict clean.

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

154 lines
7.5 KiB
JSON

{
"customers": {
"title": "Clienten",
"customer": "Client",
"add_customer": "Client derbäisetzen",
"edit_customer": "Client änneren",
"customer_name": "Clientennumm",
"customer_email": "Client E-Mail",
"customer_phone": "Client Telefon",
"customer_number": "Clientennummer",
"first_name": "Virnumm",
"last_name": "Nonumm",
"merchant": "Firma",
"total_orders": "Bestellungen insgesamt",
"total_spent": "Total ausginn",
"last_order": "Lescht Bestellung",
"registered": "Registréiert",
"no_customers": "Keng Clienten fonnt",
"search_customers": "Clienten sichen..."
},
"features": {
"customer_view": {
"name": "Kundenusiicht",
"description": "Kundeninformatiounen kucken a verwalten"
},
"customer_export": {
"name": "Kundenexport",
"description": "Kundendaten exportéieren"
},
"customer_messaging": {
"name": "Kundennoriichten",
"description": "Noriichten u Clienten schécken"
}
},
"messages": {
"failed_to_toggle_customer_status": "Clientestatus konnt net geännert ginn",
"failed_to_load_customer_details": "Clientedetailer konnten net geluede ginn",
"failed_to_load_customer_orders": "Clientebestellunge konnten net geluede ginn"
},
"menu": {
"store_operations": "Buttek-Operatiounen",
"customers_section": "Clienten",
"customers": "Clienten",
"all_customers": "All Clienten"
},
"permissions": {
"customers_view": "Clienten kucken",
"customers_view_desc": "Clientelëscht an Detailer kucken",
"customers_edit": "Clienten änneren",
"customers_edit_desc": "Clienteninformatiounen änneren",
"customers_delete": "Clienten läschen",
"customers_delete_desc": "Clientedossieren ewechhuelen",
"customers_export": "Clienten exportéieren",
"customers_export_desc": "Clientedaten exportéieren"
},
"storefront": {
"account": {
"dashboard": "Dashboard",
"profile": "Profil",
"addresses": "Adressen",
"settings": "Astellungen"
},
"pages": {
"dashboard": {
"title": "Mäi Kont",
"welcome_back": "Wëllkomm zréck, {name} !",
"profile_card_title": "Profil",
"profile_card_subtitle": "Informatiounen änneren",
"addresses_card_title": "Adressen",
"addresses_card_subtitle": "Adressen verwalten",
"messages_card_title": "Noriichten",
"messages_card_subtitle": "Support kontaktéieren",
"unread_messages_singular": "{count} ongeliesen Noriicht",
"unread_messages_plural": "{count} ongeliesen Noriichten",
"summary_title": "Kontoiwwersiicht",
"customer_since": "Client zënter",
"logout": "Ofmellen",
"logout_confirm_title": "Ofmellen bestätegen",
"logout_confirm_message": "Sidd Dir sécher datt Dir Iech ofmellen wëllt? Dir musst Iech erëm aloggen fir op Äre Kont ze zougräifen.",
"logout_success": "Erfollegräich ofgemellt",
"logout_failed": "Ofmellen feelgeschloen"
},
"profile": {
"breadcrumb_account": "Mäi Kont",
"breadcrumb_profile": "Profil",
"title": "Mäi Profil",
"subtitle": "Verwalt Är Kontodaten an Astellungen",
"info_section_title": "Profilinformatiounen",
"info_section_subtitle": "Är perséinlech Donnéeën updaten",
"email_label": "E-Mail-Adress",
"save_changes": "Änneren späicheren",
"saving": "Späicheren...",
"prefs_section_title": "Astellungen",
"prefs_section_subtitle": "Verwalt Är Kontosastellungen",
"preferred_language": "Bevorzucht Sprooch",
"use_shop_default": "Buttek-Standard benotzen",
"marketing_communications": "Marketing-Kommunikatioun",
"marketing_desc": "E-Maile mat neie Produkter, Offeren a Promotioune kréien",
"save_preferences": "Astellunge späicheren",
"change_password_subtitle": "Aktualiséiert Äert Kontopasswuert",
"changing": "Änneren...",
"account_info": "Kontoinformatiounen",
"member_since": "Member zënter",
"profile_updated": "Profil erfollegräich aktualiséiert",
"preferences_updated": "Astellungen erfollegräich aktualiséiert",
"password_changed": "Passwuert erfollegräich geännert",
"failed_to_load": "Profil konnt net geluede ginn",
"failed_to_save_profile": "Profil konnt net späichert ginn",
"failed_to_save_preferences": "Astellunge konnten net späichert ginn",
"failed_to_change_password": "Passwuert konnt net geännert ginn"
},
"addresses": {
"title": "Meng Adressen",
"subtitle": "Verwalt Är Liwwer- a Rechnungsadressen",
"add_address": "Adress derbäisetzen",
"empty_state_title": "Nach keng Adressen",
"empty_state_subtitle": "Setzt Är éischt Adress derbäi fir den Bezuelvirgang ze beschleunegen.",
"add_first_address": "Éischt Adress derbäisetzen",
"default_shipping": "Standard-Liwweradress",
"default_billing": "Standard-Rechnungsadress",
"shipping": "Liwwerung",
"billing": "Rechnung",
"set_default": "Als Standard festleeën",
"edit_address": "Adress änneren",
"add_new_address": "Nei Adress",
"address_type": "Adresstyp",
"shipping_address": "Liwweradress",
"billing_address": "Rechnungsadress",
"company_optional": "Entreprise (fakultativ)",
"address_line_1": "Adress",
"address_line_2_optional": "Adresszousatz (fakultativ)",
"postal_code": "Postleitzuel",
"city": "Stad",
"country": "Land",
"set_as_default_shipping": "Als Standard-Liwweradress festleeën",
"set_as_default_billing": "Als Standard-Rechnungsadress festleeën",
"save_changes": "Änneren späicheren",
"saving": "Späicheren...",
"delete_address": "Adress läschen",
"delete_confirm": "Sidd Dir sécher datt Dir dës Adress läsche wëllt? Dës Aktioun kann net réckgängeg gemaach ginn.",
"deleting": "Läschen...",
"address_updated": "Adress aktualiséiert",
"address_added": "Adress derbäigesat",
"address_deleted": "Adress geläscht",
"default_updated": "Standardadress aktualiséiert",
"failed_to_load": "Adressen konnten net geluede ginn. Probéiert nach eng Kéier.",
"failed_to_save": "Adress konnt net späichert ginn. Probéiert nach eng Kéier.",
"failed_to_delete": "Adress konnt net geläscht ginn",
"failed_to_set_default": "Standardadress konnt net festgeluecht ginn"
}
}
}
}