refactor: complete module-driven architecture migration
This commit completes the migration to a fully module-driven architecture: ## Models Migration - Moved all domain models from models/database/ to their respective modules: - tenancy: User, Admin, Vendor, Company, Platform, VendorDomain, etc. - cms: MediaFile, VendorTheme - messaging: Email, VendorEmailSettings, VendorEmailTemplate - core: AdminMenuConfig - models/database/ now only contains Base and TimestampMixin (infrastructure) ## Schemas Migration - Moved all domain schemas from models/schema/ to their respective modules: - tenancy: company, vendor, admin, team, vendor_domain - cms: media, image, vendor_theme - messaging: email - models/schema/ now only contains base.py and auth.py (infrastructure) ## Routes Migration - Moved admin routes from app/api/v1/admin/ to modules: - menu_config.py -> core module - modules.py -> tenancy module - module_config.py -> tenancy module - app/api/v1/admin/ now only aggregates auto-discovered module routes ## Menu System - Implemented module-driven menu system with MenuDiscoveryService - Extended FrontendType enum: PLATFORM, ADMIN, VENDOR, STOREFRONT - Added MenuItemDefinition and MenuSectionDefinition dataclasses - Each module now defines its own menu items in definition.py - MenuService integrates with MenuDiscoveryService for template rendering ## Documentation - Updated docs/architecture/models-structure.md - Updated docs/architecture/menu-management.md - Updated architecture validation rules for new exceptions ## Architecture Validation - Updated MOD-019 rule to allow base.py in models/schema/ - Created core module exceptions.py and schemas/ directory - All validation errors resolved (only warnings remain) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -135,257 +135,6 @@
|
||||
"account": "Kont",
|
||||
"wishlist": "Wonschlëscht"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
"welcome": "Wëllkomm zréck",
|
||||
"overview": "Iwwersiicht",
|
||||
"quick_stats": "Séier Statistiken",
|
||||
"recent_activity": "Rezent Aktivitéit",
|
||||
"total_products": "Produkter insgesamt",
|
||||
"total_orders": "Bestellungen insgesamt",
|
||||
"total_customers": "Clienten insgesamt",
|
||||
"total_revenue": "Ëmsaz insgesamt",
|
||||
"active_products": "Aktiv Produkter",
|
||||
"pending_orders": "Aussteesend Bestellungen",
|
||||
"new_customers": "Nei Clienten",
|
||||
"today": "Haut",
|
||||
"this_week": "Dës Woch",
|
||||
"this_month": "Dëse Mount",
|
||||
"this_year": "Dëst Joer",
|
||||
"error_loading": "Feeler beim Lueden vum Dashboard",
|
||||
"no_data": "Keng Donnéeën disponibel"
|
||||
},
|
||||
"products": {
|
||||
"title": "Produkter",
|
||||
"product": "Produkt",
|
||||
"add_product": "Produkt derbäisetzen",
|
||||
"edit_product": "Produkt änneren",
|
||||
"delete_product": "Produkt läschen",
|
||||
"product_name": "Produktnumm",
|
||||
"product_code": "Produktcode",
|
||||
"sku": "SKU",
|
||||
"price": "Präis",
|
||||
"sale_price": "Verkafspräis",
|
||||
"cost": "Käschten",
|
||||
"stock": "Lager",
|
||||
"in_stock": "Op Lager",
|
||||
"out_of_stock": "Net op Lager",
|
||||
"low_stock": "Niddregen Stock",
|
||||
"availability": "Disponibilitéit",
|
||||
"available": "Disponibel",
|
||||
"unavailable": "Net disponibel",
|
||||
"brand": "Mark",
|
||||
"category": "Kategorie",
|
||||
"categories": "Kategorien",
|
||||
"image": "Bild",
|
||||
"images": "Biller",
|
||||
"main_image": "Haaptbild",
|
||||
"gallery": "Galerie",
|
||||
"weight": "Gewiicht",
|
||||
"dimensions": "Dimensiounen",
|
||||
"color": "Faarf",
|
||||
"size": "Gréisst",
|
||||
"material": "Material",
|
||||
"condition": "Zoustand",
|
||||
"new": "Nei",
|
||||
"used": "Gebraucht",
|
||||
"refurbished": "Iwwerholl",
|
||||
"no_products": "Keng Produkter fonnt",
|
||||
"search_products": "Produkter sichen...",
|
||||
"filter_by_category": "No Kategorie filteren",
|
||||
"filter_by_status": "No Status filteren",
|
||||
"sort_by": "Sortéieren no",
|
||||
"sort_newest": "Neisten",
|
||||
"sort_oldest": "Eelsten",
|
||||
"sort_price_low": "Präis: Niddreg op Héich",
|
||||
"sort_price_high": "Präis: Héich op Niddreg",
|
||||
"sort_name_az": "Numm: A-Z",
|
||||
"sort_name_za": "Numm: Z-A"
|
||||
},
|
||||
"orders": {
|
||||
"title": "Bestellungen",
|
||||
"order": "Bestellung",
|
||||
"order_id": "Bestellungs-ID",
|
||||
"order_number": "Bestellungsnummer",
|
||||
"order_date": "Bestellungsdatum",
|
||||
"order_status": "Bestellungsstatus",
|
||||
"order_details": "Bestellungsdetailer",
|
||||
"order_items": "Bestellungsartikelen",
|
||||
"order_total": "Bestellungstotal",
|
||||
"subtotal": "Subtotal",
|
||||
"shipping": "Versand",
|
||||
"tax": "Steier",
|
||||
"discount": "Rabatt",
|
||||
"customer": "Client",
|
||||
"shipping_address": "Liwweradress",
|
||||
"billing_address": "Rechnungsadress",
|
||||
"payment_method": "Bezuelmethod",
|
||||
"payment_status": "Bezuelstatus",
|
||||
"tracking": "Tracking",
|
||||
"tracking_number": "Trackingnummer",
|
||||
"carrier": "Transporteur",
|
||||
"no_orders": "Keng Bestellunge fonnt",
|
||||
"search_orders": "Bestellunge sichen...",
|
||||
"filter_by_status": "No Status filteren",
|
||||
"status_pending": "Aussteesend",
|
||||
"status_processing": "A Veraarbechtung",
|
||||
"status_shipped": "Verschéckt",
|
||||
"status_delivered": "Geliwwert",
|
||||
"status_cancelled": "Annuléiert",
|
||||
"status_refunded": "Rembourséiert",
|
||||
"status_confirmed": "Bestätegt",
|
||||
"status_rejected": "Ofgeleent",
|
||||
"confirm_order": "Bestellung bestätegen",
|
||||
"reject_order": "Bestellung oflehnen",
|
||||
"set_tracking": "Tracking setzen",
|
||||
"view_details": "Detailer kucken"
|
||||
},
|
||||
"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",
|
||||
"company": "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..."
|
||||
},
|
||||
"inventory": {
|
||||
"title": "Inventar",
|
||||
"stock_level": "Lagerniveau",
|
||||
"quantity": "Quantitéit",
|
||||
"reorder_point": "Nobestellungspunkt",
|
||||
"adjust_stock": "Lager upaassen",
|
||||
"stock_in": "Lager eran",
|
||||
"stock_out": "Lager eraus",
|
||||
"transfer": "Transfer",
|
||||
"history": "Geschicht",
|
||||
"low_stock_alert": "Niddreg Lager Alarm",
|
||||
"out_of_stock_alert": "Net op Lager Alarm"
|
||||
},
|
||||
"marketplace": {
|
||||
"title": "Marchéplaz",
|
||||
"import": "Import",
|
||||
"export": "Export",
|
||||
"sync": "Synchroniséieren",
|
||||
"source": "Quell",
|
||||
"source_url": "Quell URL",
|
||||
"import_products": "Produkter importéieren",
|
||||
"start_import": "Import starten",
|
||||
"importing": "Importéieren...",
|
||||
"import_complete": "Import fäerdeg",
|
||||
"import_failed": "Import feelgeschloen",
|
||||
"import_history": "Importgeschicht",
|
||||
"job_id": "Job ID",
|
||||
"started_at": "Ugefaang um",
|
||||
"completed_at": "Fäerdeg um",
|
||||
"duration": "Dauer",
|
||||
"imported_count": "Importéiert",
|
||||
"error_count": "Feeler",
|
||||
"total_processed": "Total veraarbecht",
|
||||
"progress": "Fortschrëtt",
|
||||
"no_import_jobs": "Nach keng Import Jobs",
|
||||
"start_first_import": "Start Ären éischten Import mat der Form uewendriwwer"
|
||||
},
|
||||
"letzshop": {
|
||||
"title": "Letzshop Integratioun",
|
||||
"connection": "Verbindung",
|
||||
"credentials": "Umeldungsdaten",
|
||||
"api_key": "API Schlëssel",
|
||||
"api_endpoint": "API Endpunkt",
|
||||
"auto_sync": "Automatesch Sync",
|
||||
"sync_interval": "Sync Intervall",
|
||||
"every_hour": "All Stonn",
|
||||
"every_day": "All Dag",
|
||||
"test_connection": "Verbindung testen",
|
||||
"save_credentials": "Umeldungsdaten späicheren",
|
||||
"connection_success": "Verbindung erfollegräich",
|
||||
"connection_failed": "Verbindung feelgeschloen",
|
||||
"last_sync": "Läschte Sync",
|
||||
"sync_status": "Sync Status",
|
||||
"import_orders": "Bestellungen importéieren",
|
||||
"export_products": "Produkter exportéieren",
|
||||
"no_credentials": "Konfiguréiert Ären API Schlëssel an den Astellungen fir unzefänken",
|
||||
"carriers": {
|
||||
"dhl": "DHL",
|
||||
"ups": "UPS",
|
||||
"fedex": "FedEx",
|
||||
"dpd": "DPD",
|
||||
"gls": "GLS",
|
||||
"post_luxembourg": "Post Lëtzebuerg",
|
||||
"other": "Anerer"
|
||||
}
|
||||
},
|
||||
"team": {
|
||||
"title": "Team",
|
||||
"members": "Memberen",
|
||||
"add_member": "Member derbäisetzen",
|
||||
"invite_member": "Member invitéieren",
|
||||
"remove_member": "Member ewechhuelen",
|
||||
"role": "Roll",
|
||||
"owner": "Proprietär",
|
||||
"manager": "Manager",
|
||||
"editor": "Editeur",
|
||||
"viewer": "Betruechter",
|
||||
"permissions": "Rechter",
|
||||
"pending_invitations": "Aussteesend Invitatiounen",
|
||||
"invitation_sent": "Invitatioun geschéckt",
|
||||
"invitation_accepted": "Invitatioun ugeholl"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Astellungen",
|
||||
"general": "Allgemeng",
|
||||
"store": "Buttek",
|
||||
"store_name": "Butteknumm",
|
||||
"store_description": "Buttekbeschreiwung",
|
||||
"contact_email": "Kontakt E-Mail",
|
||||
"contact_phone": "Kontakt Telefon",
|
||||
"business_address": "Geschäftsadress",
|
||||
"tax_number": "Steiernummer",
|
||||
"currency": "Wärung",
|
||||
"timezone": "Zäitzon",
|
||||
"language": "Sprooch",
|
||||
"language_settings": "Sproochastellungen",
|
||||
"default_language": "Standard Sprooch",
|
||||
"dashboard_language": "Dashboard Sprooch",
|
||||
"storefront_language": "Buttek Sprooch",
|
||||
"enabled_languages": "Aktivéiert Sproochen",
|
||||
"notifications": "Notifikatiounen",
|
||||
"email_notifications": "E-Mail Notifikatiounen",
|
||||
"integrations": "Integratiounen",
|
||||
"api_keys": "API Schlësselen",
|
||||
"webhooks": "Webhooks",
|
||||
"save_settings": "Astellunge späicheren",
|
||||
"settings_saved": "Astellungen erfollegräich gespäichert"
|
||||
},
|
||||
"profile": {
|
||||
"title": "Profil",
|
||||
"my_profile": "Mäi Profil",
|
||||
"edit_profile": "Profil änneren",
|
||||
"personal_info": "Perséinlech Informatiounen",
|
||||
"first_name": "Virnumm",
|
||||
"last_name": "Nonumm",
|
||||
"email": "E-Mail",
|
||||
"phone": "Telefon",
|
||||
"avatar": "Avatar",
|
||||
"change_avatar": "Avatar änneren",
|
||||
"security": "Sécherheet",
|
||||
"two_factor": "Zwee-Faktor Authentifikatioun",
|
||||
"sessions": "Aktiv Sessiounen",
|
||||
"preferences": "Astellungen",
|
||||
"language_preference": "Sproochpräferenz",
|
||||
"save_profile": "Profil späicheren",
|
||||
"profile_updated": "Profil erfollegräich aktualiséiert"
|
||||
},
|
||||
"errors": {
|
||||
"generic": "E Feeler ass opgetrueden",
|
||||
"not_found": "Net fonnt",
|
||||
@@ -414,35 +163,6 @@
|
||||
"logout_title": "Ofmellen bestätegen",
|
||||
"logout_message": "Sidd Dir sécher datt Dir Iech ofmelle wëllt?"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notifikatiounen",
|
||||
"mark_read": "Als gelies markéieren",
|
||||
"mark_all_read": "Alles als gelies markéieren",
|
||||
"no_notifications": "Keng Notifikatiounen",
|
||||
"new_order": "Nei Bestellung",
|
||||
"order_updated": "Bestellung aktualiséiert",
|
||||
"low_stock": "Niddreg Lager Alarm",
|
||||
"import_complete": "Import fäerdeg",
|
||||
"import_failed": "Import feelgeschloen"
|
||||
},
|
||||
"shop": {
|
||||
"welcome": "Wëllkomm an eisem Buttek",
|
||||
"browse_products": "Produkter duerchsichen",
|
||||
"add_to_cart": "An de Kuerf",
|
||||
"buy_now": "Elo kafen",
|
||||
"view_cart": "Kuerf kucken",
|
||||
"checkout": "Bezuelen",
|
||||
"continue_shopping": "Weider akafen",
|
||||
"start_shopping": "Ufänken mat Akafen",
|
||||
"empty_cart": "Äre Kuerf ass eidel",
|
||||
"cart_total": "Kuerf Total",
|
||||
"proceed_checkout": "Zur Bezuelung goen",
|
||||
"payment": "Bezuelung",
|
||||
"place_order": "Bestellung opgi",
|
||||
"order_placed": "Bestellung erfollegräich opginn",
|
||||
"thank_you": "Merci fir Är Bestellung",
|
||||
"order_confirmation": "Bestellungsbestätegung"
|
||||
},
|
||||
"footer": {
|
||||
"all_rights_reserved": "All Rechter reservéiert",
|
||||
"powered_by": "Ënnerstëtzt vun"
|
||||
@@ -471,206 +191,5 @@
|
||||
"time": "HH:mm",
|
||||
"datetime": "DD.MM.YYYY HH:mm",
|
||||
"currency": "{amount} {symbol}"
|
||||
},
|
||||
"platform": {
|
||||
"nav": {
|
||||
"pricing": "Präisser",
|
||||
"find_shop": "Fannt Äre Buttek",
|
||||
"start_trial": "Gratis Testen",
|
||||
"admin_login": "Admin Login",
|
||||
"vendor_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_vendor": "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",
|
||||
"company_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."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user