Files
orion/app/modules/cms/locales/lb.json
Samir Boulahtit adc36246b8
Some checks failed
CI / ruff (push) Successful in 14s
CI / pytest (push) Failing after 2h32m45s
CI / validate (push) Successful in 30s
CI / dependency-scanning (push) Successful in 31s
CI / docs (push) Has been skipped
CI / deploy (push) Has been skipped
feat(storefront): homepage, module gating, widget protocol, i18n fixes
Storefront homepage & module gating:
- CMS owns storefront GET / (slug="home" with 3-tier resolution)
- Catalog loses GET / (keeps /products only)
- Store root redirect (GET / → /store/dashboard or /store/login)
- Route gating: non-core modules return 404 when disabled for platform
- Seed store default homepages per platform

Widget protocol for customer dashboard:
- StorefrontDashboardCard contract in widgets.py
- Widget aggregator get_storefront_dashboard_cards()
- Orders and Loyalty module widget providers
- Dashboard template renders contributed cards (no module names)

Landing template module-agnostic:
- CTAs driven by storefront_nav (not hardcoded module names)
- Header actions check nav item IDs (not enabled_modules)
- Remove hardcoded "Add Product" sidebar button
- Remove all enabled_modules checks from storefront templates

i18n fixes:
- Title placeholder resolution ({{store_name}}) for store default pages
- Storefront nav label_keys prefixed with module code
- Add storefront.account.* keys to 6 modules (en/fr/de/lb)
- Header/footer CMS pages use get_translated_title(current_language)
- Footer labels use i18n keys instead of hardcoded English

Icon cleanup:
- Standardize on map-pin (remove location-marker alias)
- Replace all location-marker references across templates and docs

Docs:
- Storefront builder vision proposal (6 phases)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:53:17 +02:00

403 lines
22 KiB
JSON

{
"platform": {
"nav": {
"pricing": "Präisser",
"find_shop": "Fannt Äre Buttek",
"start_trial": "Gratis Testen",
"admin_login": "Admin Login",
"store_login": "Händler Login",
"toggle_menu": "Menü wiesselen",
"toggle_dark_mode": "Däischter Modus wiesselen"
},
"hero": {
"badge": "{trial_days}-Deeg gratis Testversioun - Keng Kreditkaart néideg",
"title": "Liichtt OMS fir Letzshop Verkeefer",
"subtitle": "Bestellungsverwaltung, Lager an Rechnungsstellung fir de lëtzebuergeschen E-Commerce. Schluss mat Tabellen. Féiert Äert Geschäft.",
"cta_trial": "Gratis Testen",
"cta_find_shop": "Fannt Äre Letzshop Buttek"
},
"pricing": {
"title": "Einfach, transparent Präisser",
"subtitle": "Wielt de Plang deen zu Ärer Firma passt. All Pläng enthalen eng {trial_days}-Deeg gratis Testversioun.",
"monthly": "Monatslech",
"annual": "Jäerlech",
"save_months": "Spuert 2 Méint!",
"most_popular": "AM BELÉIFSTEN",
"recommended": "EMPFOHLEN",
"contact_sales": "Kontaktéiert eis",
"start_trial": "Gratis Testen",
"per_month": "/Mount",
"per_year": "/Joer",
"custom": "Personnaliséiert",
"orders_per_month": "{count} Bestellungen/Mount",
"unlimited_orders": "Onbegrenzt Bestellungen",
"products_limit": "{count} Produkter",
"unlimited_products": "Onbegrenzt Produkter",
"team_members": "{count} Teammemberen",
"unlimited_team": "Onbegrenzt Team",
"letzshop_sync": "Letzshop Synchronisatioun",
"eu_vat_invoicing": "EU TVA Rechnungen",
"analytics_dashboard": "Analyse Dashboard",
"api_access": "API Zougang",
"multi_channel": "Multi-Channel Integratioun",
"products": "Produkter",
"team_member": "Teammember",
"unlimited": "Onbegrenzt",
"order_history": "Méint Bestellungshistorique",
"trial_note": "All Pläng enthalen eng {trial_days}-Deeg gratis Testversioun. Keng Kreditkaart néideg.",
"back_home": "Zréck op d'Haaptsäit"
},
"features": {
"letzshop_sync": "Letzshop Synchronisatioun",
"inventory_basic": "Basis Lagerverwaltung",
"inventory_locations": "Lagerstanduerten",
"inventory_purchase_orders": "Bestellungen",
"invoice_lu": "Lëtzebuerg TVA Rechnungen",
"invoice_eu_vat": "EU TVA Rechnungen",
"invoice_bulk": "Massrechnungen",
"customer_view": "Clientelëscht",
"customer_export": "Client Export",
"analytics_dashboard": "Analyse Dashboard",
"accounting_export": "Comptabilitéits Export",
"api_access": "API Zougang",
"automation_rules": "Automatiséierungsreegelen",
"team_roles": "Team Rollen an Autorisatiounen",
"white_label": "White-Label Optioun",
"multi_store": "Multi-Händler Ënnerstëtzung",
"custom_integrations": "Personnaliséiert Integratiounen",
"sla_guarantee": "SLA Garantie",
"dedicated_support": "Dedizéierte Kontobetreier"
},
"addons": {
"title": "Erweidert Är Plattform",
"subtitle": "Füügt Är Mark, professionell Email a verbessert Sécherheet derbäi.",
"per_year": "/Joer",
"per_month": "/Mount",
"custom_domain": "Eegen Domain",
"custom_domain_desc": "Benotzt Är eegen Domain (mengdomain.lu)",
"premium_ssl": "Premium SSL",
"premium_ssl_desc": "EV Zertifikat fir Vertrauensbadgen",
"email_package": "Email Package",
"email_package_desc": "Professionell Email Adressen"
},
"find_shop": {
"title": "Fannt Äre Letzshop Buttek",
"subtitle": "Verkaaft Dir schonn op Letzshop? Gitt Är Buttek URL an fir unzefänken.",
"placeholder": "Gitt Är Letzshop URL an (z.B. letzshop.lu/vendors/mäi-buttek)",
"button": "Mäi Buttek fannen",
"claim_shop": "Dëse Buttek reklaméieren",
"already_claimed": "Scho reklaméiert",
"no_account": "Kee Letzshop Kont?",
"signup_letzshop": "Registréiert Iech éischt bei Letzshop",
"then_connect": ", dann kommt zréck fir Äre Buttek ze verbannen.",
"search_placeholder": "Letzshop URL oder Butteknumm aginn...",
"search_button": "Sichen",
"examples": "Beispiller:",
"claim_button": "Dëse Buttek reklaméieren a gratis testen",
"not_found": "Mir konnten keen Letzshop Buttek mat dëser URL fannen. Iwwerpréift w.e.g. a probéiert nach eng Kéier.",
"or_signup": "Oder registréiert Iech ouni Letzshop Verbindung",
"need_help": "Braucht Dir Hëllef?",
"no_account_yet": "Dir hutt nach keen Letzshop Kont? Keen Problem!",
"create_letzshop": "Letzshop Kont erstellen",
"signup_without": "Ouni Letzshop registréieren",
"looking_up": "Sich Äre Buttek...",
"found": "Fonnt:",
"claimed_badge": "Scho reklaméiert",
"error_lookup": "D'Sich huet feelgeschloen. Probéiert w.e.g. nach eng Kéier."
},
"signup": {
"step_plan": "Plang wielen",
"step_shop": "Buttek reklaméieren",
"step_account": "Kont",
"step_payment": "Bezuelung",
"choose_plan": "Wielt Äre Plang",
"save_percent": "Spuert {percent}%",
"trial_info": "Mir sammelen Är Bezuelungsinformatiounen, awer Dir gitt eréischt nom Enn vun der Testperiod belaaschtt.",
"connect_shop": "Verbannt Äre Letzshop Buttek",
"connect_optional": "Optional: Verlinkt Äre Letzshop Kont fir Bestellungen automatesch ze synchroniséieren.",
"connect_continue": "Verbannen a weider",
"skip_step": "Dëse Schrëtt iwwersprangen",
"create_account": "Erstellt Äre Kont",
"first_name": "Virnumm",
"last_name": "Numm",
"merchant_name": "Firmennumm",
"email": "Email",
"password": "Passwuert",
"password_hint": "Mindestens 8 Zeechen",
"continue": "Weider",
"continue_payment": "Weider zur Bezuelung",
"back": "Zréck",
"add_payment": "Bezuelungsmethod derbäisetzen",
"no_charge_note": "Dir gitt eréischt nom Enn vun Ärer {trial_days}-Deeg Testperiod belaaschtt.",
"processing": "Veraarbechtung...",
"start_trial": "Gratis Testversioun starten",
"creating_account": "Erstellt Äre Kont...",
"page_title": "Start Är gratis Testversioun",
"required_fields": "Obligatoresch Felder",
"trial_info_days": "-Deeg gratis Testversioun.",
"error_start": "Umeldung konnt net gestart ginn. Probéiert w.e.g. nach eng Kéier.",
"error_account": "Kont konnt net erstallt ginn. Probéiert w.e.g. nach eng Kéier.",
"error_payment_config": "Bezuelung net konfiguréiert. Kontaktéiert w.e.g. de Support.",
"error_payment": "Bezuelung feelgeschloen. Probéiert w.e.g. nach eng Kéier.",
"orders_per_month": "Bestellungen/Mount",
"unlimited": "Onbegrenzt",
"team_members": "Benotzer",
"per_month_short": "/Mount"
},
"success": {
"title": "Wëllkomm bei Orion!",
"subtitle": "Äre Kont gouf erstallt an Är {trial_days}-Deeg gratis Testversioun huet ugefaang.",
"what_next": "Wat kënnt duerno?",
"step_connect": "Letzshop verbannen:",
"step_connect_desc": "Füügt Äre API Schlëssel derbäi fir Bestellungen automatesch ze synchroniséieren.",
"step_invoicing": "Rechnungsstellung astellen:",
"step_invoicing_desc": "Konfiguréiert Är Rechnungsastellungen fir Lëtzebuerger Konformitéit.",
"step_products": "Produkter importéieren:",
"step_products_desc": "Synchroniséiert Äre Produktkatalog vu Letzshop.",
"go_to_dashboard": "Zum Dashboard",
"login_dashboard": "Am Dashboard umellen",
"need_help": "Braucht Dir Hëllef beim Ufänken?",
"contact_support": "Kontaktéiert eist Support Team"
},
"cta": {
"title": "Prett fir Är Bestellungen ze optiméieren?",
"subtitle": "Schléisst Iech Letzshop Händler un déi Orion fir hir Bestellungsverwaltung vertrauen. Fänkt haut Är {trial_days}-Deeg gratis Testversioun un.",
"button": "Gratis Testen"
},
"content_page": {
"home": "Haaptsäit",
"published": "Publizéiert den",
"last_updated": "Lescht aktualiséiert:",
"cta_about_title": "Prett fir unzefänken?",
"cta_contact_title": "Hutt Dir Froen?",
"cta_about_subtitle": "Schléisst Iech Dausende vu Butteker un déi scho op eiser Plattform verkafen",
"cta_contact_subtitle": "Eist Team ass hei fir Iech ze hëllefen",
"cta_about_button": "Kontaktéiert de Verkaf",
"cta_contact_button": "Schéckt eis eng Noriicht"
},
"footer": {
"tagline": "Liichtt OMS fir Letzshop Verkeefer. Verwaltt Bestellungen, Lager an Rechnungen.",
"quick_links": "Séier Linken",
"platform": "Plattform",
"contact": "Kontakt",
"copyright": "© {year} Orion. Gemaach fir de lëtzebuergeschen E-Commerce.",
"privacy": "Dateschutzrichtlinn",
"terms": "Notzungsbedéngungen",
"about": "Iwwer eis",
"faq": "FAQ",
"contact_us": "Kontaktéiert eis",
"all_rights_reserved": "All Rechter virbehalen."
},
"modern": {
"badge_integration": "Offiziell Integratioun",
"badge_connect": "An 2 Minutten verbannen",
"hero_title_1": "Gemaach fir de lëtzebuergeschen E-Commerce",
"hero_title_2": "De Back-Office dee Letzshop Iech net gëtt",
"hero_subtitle": "Synchroniséiert Bestellungen, verwaltt Lager, erstellt Rechnunge mat der korrekter TVA a besëtzt Är Clientsdaten. Alles un engem Plaz.",
"cta_trial": "{trial_days}-Deeg gratis testen",
"cta_how": "Kuckt wéi et funktionéiert",
"hero_note": "Keng Kreditkaart néideg. Setup an 5 Minutten. Ëmmer kënnegen.",
"pain_title": "Kënnt Iech dat bekannt vir?",
"pain_subtitle": "Dat sinn d'deeglech Frustratioune vu Letzshop Verkeefer",
"pain_manual": "Manuell Bestellungsagab",
"pain_manual_desc": "Bestellunge vu Letzshop an Tabelle kopéieren. All. Eenzelen. Dag.",
"pain_inventory": "Lager Chaos",
"pain_inventory_desc": "De Stock an Letzshop stëmmt net mat der Realitéit iwwereneen. Iwwerverkeef passéieren.",
"pain_vat": "Falsch TVA Rechnungen",
"pain_vat_desc": "EU Cliente brauchen déi korrekt TVA. Äre Comptabel beschwéiert sech.",
"pain_customers": "Verluer Clienten",
"pain_customers_desc": "Letzshop besëtzt Är Clientsdaten. Dir kënnt se net retargeten oder Loyalitéit opbauen.",
"how_title": "Wéi et funktionéiert",
"how_subtitle": "Vum Chaos zur Kontroll an 4 Schrëtt",
"how_step1": "Letzshop verbannen",
"how_step1_desc": "Gitt Är Letzshop API Zougangsdaten an. An 2 Minutte fäerdeg, keng technesch Kenntnisser néideg.",
"how_step2": "Bestellunge kommen eran",
"how_step2_desc": "Bestellunge ginn automatesch synchroniséiert. Confirméiert an Tracking direkt vu Orion derbäisetzen.",
"how_step3": "Rechnunge generéieren",
"how_step3_desc": "Ee Klick fir konform PDF Rechnunge mat korrekter TVA fir all EU Land ze erstellen.",
"how_step4": "Äert Geschäft ausbauen",
"how_step4_desc": "Exportéiert Clientë fir Marketing. Verfolgt Lagerstänn. Konzentréiert Iech op de Verkaf, net op Tabellen.",
"features_title": "Alles wat e Letzshop Verkeefer brauch",
"features_subtitle": "D'operativ Tools déi Letzshop net bitt",
"cta_final_title": "Prett fir d'Kontroll iwwer Äert Letzshop Geschäft ze iwwerhuelen?",
"cta_final_subtitle": "Schléisst Iech lëtzebuerger Händler un déi opgehalen hunn géint Tabellen ze kämpfen an ugefaang hunn hiert Geschäft auszbauen.",
"cta_final_note": "Keng Kreditkaart néideg. Setup an 5 Minutten. Voll Professional Fonctiounen während der Testperiod.",
"page_title": "Orion - De Back-Office fir Letzshop Verkeefer",
"features_badge": "Fonctiounen",
"dashboard_title": "Orion Dashboard",
"todays_orders": "Bestellunge vun haut",
"revenue": "Ëmsaz",
"low_stock": "Niddrege Bestand",
"items_need_restock": "Artikelen nei beschtellen",
"recent_orders": "Rezent Bestellunge vu Letzshop",
"confirmed": "Confirméiert",
"shipped": "Verschéckt",
"feat_order_sync": "Automatesch Bestellungssynchronisatioun",
"feat_order_sync_desc": "Bestellunge vu Letzshop erschéngen direkt. Confirméiert a synchroniséiert Tracking-Nummeren automatesch.",
"feat_order_sync_1": "Echtzeit-Synchronisatioun",
"feat_order_sync_2": "Confirmatioun mat engem Klick",
"feat_order_sync_3": "Tracking-Nummere Synchronisatioun",
"feat_inventory": "Richteg Lagerverwaltung",
"feat_inventory_desc": "Eng eenzeg Quell vun der Wouerecht fir all Bestänn. Lagerplazen, Reservatiounen an erakommen Bestandsverfolgung.",
"feat_inventory_1": "Produktlagerplazen (Fächer)",
"feat_inventory_2": "Bestandsreservatiounen",
"feat_inventory_3": "Niddreg-Bestand Alarmer",
"feat_invoicing": "Intelligent TVA Rechnungsstellung",
"feat_invoicing_desc": "PDF Rechnunge mat korrekten TVA Sätz erstellen. Lëtzebuerg, EU-Länner, B2B Reverse-Charge.",
"feat_invoicing_1": "Lëtzebuerg 17% TVA",
"feat_invoicing_2": "EU Destinatioun TVA (OSS)",
"feat_invoicing_3": "B2B Reverse-Charge",
"feat_customers": "Besëtzt Är Clienten",
"feat_customers_desc": "All Clientsdaten an Ärer Datebank. Export op Mailchimp fir Marketingcampagnen.",
"feat_customers_1": "Bestellhistoire pro Client",
"feat_customers_2": "Liewen-Zäitwäert Tracking",
"feat_customers_3": "CSV Export fir Marketing",
"feat_team": "Teamverwaltung",
"feat_team_desc": "Invitéiert Teammemberen mat rollbaséierten Berechtigungen. Jiddereen schafft vun engem Dashboard.",
"feat_team_1": "Méi Benotzer",
"feat_team_2": "Rollbaséierten Zougang",
"feat_team_3": "Aktivitéitsprotokoll",
"feat_purchase_orders": "Bestellungen",
"feat_purchase_orders_desc": "Verfolgt erakommen Bestänn vu Fournisseuren. Wësst wat bestallt ass a wéini et ukënnt.",
"feat_purchase_orders_1": "Fournisseur-Bestellunge verfolgen",
"feat_purchase_orders_2": "Erwaart Ukonfts-Datumer",
"feat_purchase_orders_3": "Empfang an Bestandsaktualiséierung",
"pricing_badge": "Präisser",
"pricing_title": "Einfach, transparent Präisgestaltung",
"pricing_subtitle": "Keng Gebühre pro Bestellung. Keng verstoppte Käschten. Feste Monatspräis.",
"pricing_per_month": "/Mount",
"pricing_trial_note": "All Pläng enthale eng 14-Deeg gratis Testperiod. Keng Kreditkaart néideg.",
"tier_essential": "Essential",
"tier_essential_desc": "Fir Solo-Butteker um Ufank",
"tier_essential_price": "49 EUR",
"tier_essential_feat_1": "100 Bestellungen/Mount",
"tier_essential_feat_2": "200 Produkter",
"tier_essential_feat_3": "Lëtzebuerg TVA Rechnungen",
"tier_essential_feat_4": "1 Teammember",
"tier_essential_cta": "Gratis testen",
"tier_professional": "Professional",
"tier_professional_desc": "Fir wuessend Multichannel-Verkeefer",
"tier_professional_price": "99 EUR",
"tier_professional_badge": "AM BELÉIFSTEN",
"tier_professional_feat_1": "500 Bestellungen/Mount",
"tier_professional_feat_2": "Onlimitéiert Produkter",
"tier_professional_feat_3": "EU TVA Rechnungen",
"tier_professional_feat_4": "Produktlagerplazen",
"tier_professional_feat_5": "Bestellungen",
"tier_professional_feat_6": "Clienten-Export",
"tier_professional_feat_7": "3 Teammemberen",
"tier_professional_cta": "Gratis testen",
"tier_business": "Business",
"tier_business_desc": "Fir grouss Volummen Operatiounen",
"tier_business_price": "199 EUR",
"tier_business_feat_1": "2.000 Bestellungen/Mount",
"tier_business_feat_2": "Alles an Professional",
"tier_business_feat_3": "Analyse Dashboard",
"tier_business_feat_4": "API Zougang",
"tier_business_feat_5": "Comptabilitéitsexport",
"tier_business_feat_6": "10 Teammemberen",
"tier_business_cta": "Gratis testen",
"tier_enterprise": "Enterprise",
"tier_enterprise_desc": "Fir grouss Betriber an Agenturen",
"tier_enterprise_price": "399+ EUR",
"tier_enterprise_feat_1": "Onlimitéiert Bestellungen",
"tier_enterprise_feat_2": "Alles an Business",
"tier_enterprise_feat_3": "White-Label Optioun",
"tier_enterprise_feat_4": "Individuell Integratiounen",
"tier_enterprise_feat_5": "99,9% SLA",
"tier_enterprise_feat_6": "Dedizéierten Support",
"tier_enterprise_cta": "Vertrieb kontaktéieren",
"testimonial_badge": "Gemaach fir Lëtzebuerg",
"testimonial_quote": "Endlech en Tool dat versteet wat Letzshop Verkeefer wierklech brauchen. Keng Tabelle méi, keng TVA Kappwéi méi.",
"testimonial_name": "Marie L.",
"testimonial_location": "Letzshop Buttek, Stad Lëtzebuerg",
"cta_final_trial": "Start Är 14-Deeg gratis Testperiod"
},
"minimal": {
"page_title_fallback": "Heempage",
"marketplace_suffix": "Marktplaz",
"fallback_title_1": "Multi-Store",
"fallback_title_2": "Marktplaz",
"fallback_subtitle": "Deen einfachste Wee fir Ären Online-Shop ze starten an Iech mat Clientë weltwäit ze verbannen.",
"get_started": "Ufänken",
"feat_fast": "Séier",
"feat_fast_desc": "Blëtzséier Leeschtung optimiséiert fir Conversiounen",
"feat_secure": "Sécher",
"feat_secure_desc": "Enterprise-Niveau Sécherheet fir Är Gemittlechkeet",
"feat_custom": "Individuell",
"feat_custom_desc": "Komplett personaliséierbar fir zu Ärer Mark ze passen",
"cta_title": "Prett fir ze starten?",
"cta_subtitle": "Trëtt haut eisem Marktplaz bäi",
"cta_contact": "Kontaktéiert eis",
"cta_learn_more": "Méi erfahren"
}
},
"features": {
"cms_pages_limit": {
"name": "CMS-Säiten",
"description": "Maximal Unzuel vun Inhaltssäiten",
"unit": "Säiten"
},
"cms_custom_pages_limit": {
"name": "Eegen Säiten",
"description": "Maximal Unzuel vun individuell gestaltete Säiten",
"unit": "Säiten"
},
"cms_basic": {
"name": "Basis-CMS",
"description": "Grond-Inhaltsverwalungsfunktiounen"
},
"cms_seo": {
"name": "SEO-Tools",
"description": "Sichmaschinnenoptiméierungstools"
},
"cms_scheduling": {
"name": "Inhaltsplanung",
"description": "Inhalter fir zukünfteg Verëffentlechung plangen"
},
"cms_templates": {
"name": "Säitevirlagen",
"description": "Zougang zu Premium-Säitevirlagen"
}
},
"menu": {
"content_management": "Inhaltsverwaltung",
"shop_content": "Buttek-Inhalter",
"content_pages": "Inhaltsäiten",
"store_themes": "Buttek-Themen",
"media_library": "Mediathéik"
},
"permissions": {
"view_pages": "Säiten kucken",
"view_pages_desc": "Inhaltssäiten kucken",
"manage_pages": "Säiten verwalten",
"manage_pages_desc": "Inhaltssäiten erstellen, änneren a läschen",
"view_media": "Medien kucken",
"view_media_desc": "Mediebibliothéik duerchsichen",
"manage_media": "Medien verwalten",
"manage_media_desc": "Mediefichieren eroplueden, änneren a läschen",
"manage_themes": "Themes verwalten",
"manage_themes_desc": "Buttek-Themes konfiguréieren an upassen"
},
"messages": {
"failed_to_delete_page": "Konnt d'Säit net läschen: {error}",
"media_updated_successfully": "Medium erfollegräich aktualiséiert",
"media_deleted_successfully": "Medium erfollegräich geläscht",
"url_copied_to_clipboard": "URL an d'Tëschëlag kopéiert",
"failed_to_copy_url": "Konnt den URL net kopéieren"
},
"confirmations": {
"delete_file": "Sidd Dir sécher datt Dir dëse Fichier läsche wëllt? Dat kann net réckgängeg gemaach ginn."
},
"storefront": {
"my_account": "Mäi Kont",
"learn_more": "Méi gewuer ginn",
"explore": "Entdecken",
"quick_links": "Schnellzougrëff",
"information": "Informatiounen",
"about": "Iwwer eis",
"contact": "Kontakt",
"faq": "FAQ"
}
}