Two issues caused the admin sidebar to show a mix of French and English:
1. Only 3 of 14 modules had "menu" translations in their locale files.
When a key was missing, _translate_label() fell back to English Title
Case from the key name — mixing with French from modules that had
translations. Added menu sections to all 4 languages (en, fr, de, lb)
across 13 modules.
2. The language middleware hardcoded admin to "en" ignoring user preference,
while the menu API fell back to DEFAULT_LANGUAGE ("fr") when
preferred_language was NULL. Fixed middleware to respect user's
preferred_language and menu API to use middleware-resolved language
as fallback.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
239 lines
12 KiB
JSON
239 lines
12 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"
|
|
},
|
|
"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..."
|
|
},
|
|
"success": {
|
|
"title": "Wëllkomm bei Wizamart!",
|
|
"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 Wizamart fir hir Bestellungsverwaltung vertrauen. Fänkt haut Är {trial_days}-Deeg gratis Testversioun un.",
|
|
"button": "Gratis Testen"
|
|
},
|
|
"footer": {
|
|
"tagline": "Liichtt OMS fir Letzshop Verkeefer. Verwaltt Bestellungen, Lager an Rechnungen.",
|
|
"quick_links": "Séier Linken",
|
|
"platform": "Plattform",
|
|
"contact": "Kontakt",
|
|
"copyright": "© {year} Wizamart. Gemaach fir de lëtzebuergeschen E-Commerce.",
|
|
"privacy": "Dateschutzrichtlinn",
|
|
"terms": "Notzungsbedéngungen",
|
|
"about": "Iwwer eis",
|
|
"faq": "FAQ",
|
|
"contact_us": "Kontaktéiert eis"
|
|
},
|
|
"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 Wizamart 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."
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|