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": "Konto",
|
||||
"wishlist": "Wunschliste"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
"welcome": "Willkommen zurück",
|
||||
"overview": "Übersicht",
|
||||
"quick_stats": "Schnellstatistiken",
|
||||
"recent_activity": "Letzte Aktivitäten",
|
||||
"total_products": "Produkte gesamt",
|
||||
"total_orders": "Bestellungen gesamt",
|
||||
"total_customers": "Kunden gesamt",
|
||||
"total_revenue": "Gesamtumsatz",
|
||||
"active_products": "Aktive Produkte",
|
||||
"pending_orders": "Ausstehende Bestellungen",
|
||||
"new_customers": "Neue Kunden",
|
||||
"today": "Heute",
|
||||
"this_week": "Diese Woche",
|
||||
"this_month": "Dieser Monat",
|
||||
"this_year": "Dieses Jahr",
|
||||
"error_loading": "Fehler beim Laden des Dashboards",
|
||||
"no_data": "Keine Daten verfügbar"
|
||||
},
|
||||
"products": {
|
||||
"title": "Produkte",
|
||||
"product": "Produkt",
|
||||
"add_product": "Produkt hinzufügen",
|
||||
"edit_product": "Produkt bearbeiten",
|
||||
"delete_product": "Produkt löschen",
|
||||
"product_name": "Produktname",
|
||||
"product_code": "Produktcode",
|
||||
"sku": "SKU",
|
||||
"price": "Preis",
|
||||
"sale_price": "Verkaufspreis",
|
||||
"cost": "Kosten",
|
||||
"stock": "Lagerbestand",
|
||||
"in_stock": "Auf Lager",
|
||||
"out_of_stock": "Nicht auf Lager",
|
||||
"low_stock": "Geringer Bestand",
|
||||
"availability": "Verfügbarkeit",
|
||||
"available": "Verfügbar",
|
||||
"unavailable": "Nicht verfügbar",
|
||||
"brand": "Marke",
|
||||
"category": "Kategorie",
|
||||
"categories": "Kategorien",
|
||||
"image": "Bild",
|
||||
"images": "Bilder",
|
||||
"main_image": "Hauptbild",
|
||||
"gallery": "Galerie",
|
||||
"weight": "Gewicht",
|
||||
"dimensions": "Abmessungen",
|
||||
"color": "Farbe",
|
||||
"size": "Größe",
|
||||
"material": "Material",
|
||||
"condition": "Zustand",
|
||||
"new": "Neu",
|
||||
"used": "Gebraucht",
|
||||
"refurbished": "Generalüberholt",
|
||||
"no_products": "Keine Produkte gefunden",
|
||||
"search_products": "Produkte suchen...",
|
||||
"filter_by_category": "Nach Kategorie filtern",
|
||||
"filter_by_status": "Nach Status filtern",
|
||||
"sort_by": "Sortieren nach",
|
||||
"sort_newest": "Neueste",
|
||||
"sort_oldest": "Älteste",
|
||||
"sort_price_low": "Preis: Niedrig bis Hoch",
|
||||
"sort_price_high": "Preis: Hoch bis Niedrig",
|
||||
"sort_name_az": "Name: A-Z",
|
||||
"sort_name_za": "Name: Z-A"
|
||||
},
|
||||
"orders": {
|
||||
"title": "Bestellungen",
|
||||
"order": "Bestellung",
|
||||
"order_id": "Bestellnummer",
|
||||
"order_number": "Bestellnummer",
|
||||
"order_date": "Bestelldatum",
|
||||
"order_status": "Bestellstatus",
|
||||
"order_details": "Bestelldetails",
|
||||
"order_items": "Bestellartikel",
|
||||
"order_total": "Bestellsumme",
|
||||
"subtotal": "Zwischensumme",
|
||||
"shipping": "Versand",
|
||||
"tax": "Steuer",
|
||||
"discount": "Rabatt",
|
||||
"customer": "Kunde",
|
||||
"shipping_address": "Lieferadresse",
|
||||
"billing_address": "Rechnungsadresse",
|
||||
"payment_method": "Zahlungsmethode",
|
||||
"payment_status": "Zahlungsstatus",
|
||||
"tracking": "Sendungsverfolgung",
|
||||
"tracking_number": "Sendungsnummer",
|
||||
"carrier": "Versanddienstleister",
|
||||
"no_orders": "Keine Bestellungen gefunden",
|
||||
"search_orders": "Bestellungen suchen...",
|
||||
"filter_by_status": "Nach Status filtern",
|
||||
"status_pending": "Ausstehend",
|
||||
"status_processing": "In Bearbeitung",
|
||||
"status_shipped": "Versendet",
|
||||
"status_delivered": "Zugestellt",
|
||||
"status_cancelled": "Storniert",
|
||||
"status_refunded": "Erstattet",
|
||||
"status_confirmed": "Bestätigt",
|
||||
"status_rejected": "Abgelehnt",
|
||||
"confirm_order": "Bestellung bestätigen",
|
||||
"reject_order": "Bestellung ablehnen",
|
||||
"set_tracking": "Sendungsverfolgung setzen",
|
||||
"view_details": "Details ansehen"
|
||||
},
|
||||
"customers": {
|
||||
"title": "Kunden",
|
||||
"customer": "Kunde",
|
||||
"add_customer": "Kunde hinzufügen",
|
||||
"edit_customer": "Kunde bearbeiten",
|
||||
"customer_name": "Kundenname",
|
||||
"customer_email": "Kunden-E-Mail",
|
||||
"customer_phone": "Kundentelefon",
|
||||
"customer_number": "Kundennummer",
|
||||
"first_name": "Vorname",
|
||||
"last_name": "Nachname",
|
||||
"company": "Firma",
|
||||
"total_orders": "Bestellungen gesamt",
|
||||
"total_spent": "Gesamtausgaben",
|
||||
"last_order": "Letzte Bestellung",
|
||||
"registered": "Registriert",
|
||||
"no_customers": "Keine Kunden gefunden",
|
||||
"search_customers": "Kunden suchen..."
|
||||
},
|
||||
"inventory": {
|
||||
"title": "Inventar",
|
||||
"stock_level": "Lagerbestand",
|
||||
"quantity": "Menge",
|
||||
"reorder_point": "Nachbestellpunkt",
|
||||
"adjust_stock": "Bestand anpassen",
|
||||
"stock_in": "Wareneingang",
|
||||
"stock_out": "Warenausgang",
|
||||
"transfer": "Transfer",
|
||||
"history": "Verlauf",
|
||||
"low_stock_alert": "Warnung bei geringem Bestand",
|
||||
"out_of_stock_alert": "Warnung bei Ausverkauf"
|
||||
},
|
||||
"marketplace": {
|
||||
"title": "Marktplatz",
|
||||
"import": "Importieren",
|
||||
"export": "Exportieren",
|
||||
"sync": "Synchronisieren",
|
||||
"source": "Quelle",
|
||||
"source_url": "Quell-URL",
|
||||
"import_products": "Produkte importieren",
|
||||
"start_import": "Import starten",
|
||||
"importing": "Importiere...",
|
||||
"import_complete": "Import abgeschlossen",
|
||||
"import_failed": "Import fehlgeschlagen",
|
||||
"import_history": "Import-Verlauf",
|
||||
"job_id": "Auftrags-ID",
|
||||
"started_at": "Gestartet um",
|
||||
"completed_at": "Abgeschlossen um",
|
||||
"duration": "Dauer",
|
||||
"imported_count": "Importiert",
|
||||
"error_count": "Fehler",
|
||||
"total_processed": "Gesamt verarbeitet",
|
||||
"progress": "Fortschritt",
|
||||
"no_import_jobs": "Noch keine Imports",
|
||||
"start_first_import": "Starten Sie Ihren ersten Import mit dem Formular oben"
|
||||
},
|
||||
"letzshop": {
|
||||
"title": "Letzshop-Integration",
|
||||
"connection": "Verbindung",
|
||||
"credentials": "Zugangsdaten",
|
||||
"api_key": "API-Schlüssel",
|
||||
"api_endpoint": "API-Endpunkt",
|
||||
"auto_sync": "Auto-Sync",
|
||||
"sync_interval": "Sync-Intervall",
|
||||
"every_hour": "Jede Stunde",
|
||||
"every_day": "Jeden Tag",
|
||||
"test_connection": "Verbindung testen",
|
||||
"save_credentials": "Zugangsdaten speichern",
|
||||
"connection_success": "Verbindung erfolgreich",
|
||||
"connection_failed": "Verbindung fehlgeschlagen",
|
||||
"last_sync": "Letzte Synchronisation",
|
||||
"sync_status": "Sync-Status",
|
||||
"import_orders": "Bestellungen importieren",
|
||||
"export_products": "Produkte exportieren",
|
||||
"no_credentials": "Konfigurieren Sie Ihren API-Schlüssel in den Einstellungen",
|
||||
"carriers": {
|
||||
"dhl": "DHL",
|
||||
"ups": "UPS",
|
||||
"fedex": "FedEx",
|
||||
"dpd": "DPD",
|
||||
"gls": "GLS",
|
||||
"post_luxembourg": "Post Luxemburg",
|
||||
"other": "Andere"
|
||||
}
|
||||
},
|
||||
"team": {
|
||||
"title": "Team",
|
||||
"members": "Mitglieder",
|
||||
"add_member": "Mitglied hinzufügen",
|
||||
"invite_member": "Mitglied einladen",
|
||||
"remove_member": "Mitglied entfernen",
|
||||
"role": "Rolle",
|
||||
"owner": "Inhaber",
|
||||
"manager": "Manager",
|
||||
"editor": "Bearbeiter",
|
||||
"viewer": "Betrachter",
|
||||
"permissions": "Berechtigungen",
|
||||
"pending_invitations": "Ausstehende Einladungen",
|
||||
"invitation_sent": "Einladung gesendet",
|
||||
"invitation_accepted": "Einladung angenommen"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Einstellungen",
|
||||
"general": "Allgemein",
|
||||
"store": "Shop",
|
||||
"store_name": "Shop-Name",
|
||||
"store_description": "Shop-Beschreibung",
|
||||
"contact_email": "Kontakt-E-Mail",
|
||||
"contact_phone": "Kontakttelefon",
|
||||
"business_address": "Geschäftsadresse",
|
||||
"tax_number": "Steuernummer",
|
||||
"currency": "Währung",
|
||||
"timezone": "Zeitzone",
|
||||
"language": "Sprache",
|
||||
"language_settings": "Spracheinstellungen",
|
||||
"default_language": "Standardsprache",
|
||||
"dashboard_language": "Dashboard-Sprache",
|
||||
"storefront_language": "Shop-Sprache",
|
||||
"enabled_languages": "Aktivierte Sprachen",
|
||||
"notifications": "Benachrichtigungen",
|
||||
"email_notifications": "E-Mail-Benachrichtigungen",
|
||||
"integrations": "Integrationen",
|
||||
"api_keys": "API-Schlüssel",
|
||||
"webhooks": "Webhooks",
|
||||
"save_settings": "Einstellungen speichern",
|
||||
"settings_saved": "Einstellungen erfolgreich gespeichert"
|
||||
},
|
||||
"profile": {
|
||||
"title": "Profil",
|
||||
"my_profile": "Mein Profil",
|
||||
"edit_profile": "Profil bearbeiten",
|
||||
"personal_info": "Persönliche Informationen",
|
||||
"first_name": "Vorname",
|
||||
"last_name": "Nachname",
|
||||
"email": "E-Mail",
|
||||
"phone": "Telefon",
|
||||
"avatar": "Profilbild",
|
||||
"change_avatar": "Profilbild ändern",
|
||||
"security": "Sicherheit",
|
||||
"two_factor": "Zwei-Faktor-Authentifizierung",
|
||||
"sessions": "Aktive Sitzungen",
|
||||
"preferences": "Präferenzen",
|
||||
"language_preference": "Sprachpräferenz",
|
||||
"save_profile": "Profil speichern",
|
||||
"profile_updated": "Profil erfolgreich aktualisiert"
|
||||
},
|
||||
"errors": {
|
||||
"generic": "Ein Fehler ist aufgetreten",
|
||||
"not_found": "Nicht gefunden",
|
||||
@@ -414,35 +163,6 @@
|
||||
"logout_title": "Abmelden bestätigen",
|
||||
"logout_message": "Sind Sie sicher, dass Sie sich abmelden möchten?"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Benachrichtigungen",
|
||||
"mark_read": "Als gelesen markieren",
|
||||
"mark_all_read": "Alle als gelesen markieren",
|
||||
"no_notifications": "Keine Benachrichtigungen",
|
||||
"new_order": "Neue Bestellung",
|
||||
"order_updated": "Bestellung aktualisiert",
|
||||
"low_stock": "Warnung bei geringem Bestand",
|
||||
"import_complete": "Import abgeschlossen",
|
||||
"import_failed": "Import fehlgeschlagen"
|
||||
},
|
||||
"shop": {
|
||||
"welcome": "Willkommen in unserem Shop",
|
||||
"browse_products": "Produkte durchstöbern",
|
||||
"add_to_cart": "In den Warenkorb",
|
||||
"buy_now": "Jetzt kaufen",
|
||||
"view_cart": "Warenkorb ansehen",
|
||||
"checkout": "Zur Kasse",
|
||||
"continue_shopping": "Weiter einkaufen",
|
||||
"start_shopping": "Einkaufen starten",
|
||||
"empty_cart": "Ihr Warenkorb ist leer",
|
||||
"cart_total": "Warenkorbsumme",
|
||||
"proceed_checkout": "Zur Kasse gehen",
|
||||
"payment": "Zahlung",
|
||||
"place_order": "Bestellung aufgeben",
|
||||
"order_placed": "Bestellung erfolgreich aufgegeben",
|
||||
"thank_you": "Vielen Dank für Ihre Bestellung",
|
||||
"order_confirmation": "Bestellbestätigung"
|
||||
},
|
||||
"footer": {
|
||||
"all_rights_reserved": "Alle Rechte vorbehalten",
|
||||
"powered_by": "Unterstützt von"
|
||||
@@ -471,206 +191,5 @@
|
||||
"time": "HH:mm",
|
||||
"datetime": "DD.MM.YYYY HH:mm",
|
||||
"currency": "{amount} {symbol}"
|
||||
},
|
||||
"platform": {
|
||||
"nav": {
|
||||
"pricing": "Preise",
|
||||
"find_shop": "Finden Sie Ihren Shop",
|
||||
"start_trial": "Kostenlos testen",
|
||||
"admin_login": "Admin-Login",
|
||||
"vendor_login": "Händler-Login",
|
||||
"toggle_menu": "Menü umschalten",
|
||||
"toggle_dark_mode": "Dunkelmodus umschalten"
|
||||
},
|
||||
"hero": {
|
||||
"badge": "{trial_days}-Tage kostenlose Testversion - Keine Kreditkarte erforderlich",
|
||||
"title": "Leichtes OMS für Letzshop-Verkäufer",
|
||||
"subtitle": "Bestellverwaltung, Lager und Rechnungsstellung für den luxemburgischen E-Commerce. Schluss mit Tabellenkalkulationen. Führen Sie Ihr Geschäft.",
|
||||
"cta_trial": "Kostenlos testen",
|
||||
"cta_find_shop": "Finden Sie Ihren Letzshop"
|
||||
},
|
||||
"pricing": {
|
||||
"title": "Einfache, transparente Preise",
|
||||
"subtitle": "Wählen Sie den Plan, der zu Ihrem Unternehmen passt. Alle Pläne beinhalten eine {trial_days}-tägige kostenlose Testversion.",
|
||||
"monthly": "Monatlich",
|
||||
"annual": "Jährlich",
|
||||
"save_months": "Sparen Sie 2 Monate!",
|
||||
"most_popular": "AM BELIEBTESTEN",
|
||||
"recommended": "EMPFOHLEN",
|
||||
"contact_sales": "Kontaktieren Sie uns",
|
||||
"start_trial": "Kostenlos testen",
|
||||
"per_month": "/Monat",
|
||||
"per_year": "/Jahr",
|
||||
"custom": "Individuell",
|
||||
"orders_per_month": "{count} Bestellungen/Monat",
|
||||
"unlimited_orders": "Unbegrenzte Bestellungen",
|
||||
"products_limit": "{count} Produkte",
|
||||
"unlimited_products": "Unbegrenzte Produkte",
|
||||
"team_members": "{count} Teammitglieder",
|
||||
"unlimited_team": "Unbegrenztes Team",
|
||||
"letzshop_sync": "Letzshop-Synchronisierung",
|
||||
"eu_vat_invoicing": "EU-MwSt-Rechnungen",
|
||||
"analytics_dashboard": "Analyse-Dashboard",
|
||||
"api_access": "API-Zugang",
|
||||
"multi_channel": "Multi-Channel-Integration",
|
||||
"products": "Produkte",
|
||||
"team_member": "Teammitglied",
|
||||
"unlimited": "Unbegrenzt",
|
||||
"order_history": "Monate Bestellhistorie",
|
||||
"trial_note": "Alle Pläne beinhalten eine {trial_days}-tägige kostenlose Testversion. Keine Kreditkarte erforderlich.",
|
||||
"back_home": "Zurück zur Startseite"
|
||||
},
|
||||
"features": {
|
||||
"letzshop_sync": "Letzshop-Synchronisierung",
|
||||
"inventory_basic": "Grundlegende Lagerverwaltung",
|
||||
"inventory_locations": "Lagerstandorte",
|
||||
"inventory_purchase_orders": "Bestellungen",
|
||||
"invoice_lu": "Luxemburg-MwSt-Rechnungen",
|
||||
"invoice_eu_vat": "EU-MwSt-Rechnungen",
|
||||
"invoice_bulk": "Massenrechnungen",
|
||||
"customer_view": "Kundenliste",
|
||||
"customer_export": "Kundenexport",
|
||||
"analytics_dashboard": "Analyse-Dashboard",
|
||||
"accounting_export": "Buchhaltungsexport",
|
||||
"api_access": "API-Zugang",
|
||||
"automation_rules": "Automatisierungsregeln",
|
||||
"team_roles": "Teamrollen und Berechtigungen",
|
||||
"white_label": "White-Label-Option",
|
||||
"multi_vendor": "Multi-Händler-Unterstützung",
|
||||
"custom_integrations": "Individuelle Integrationen",
|
||||
"sla_guarantee": "SLA-Garantie",
|
||||
"dedicated_support": "Dedizierter Kundenbetreuer"
|
||||
},
|
||||
"addons": {
|
||||
"title": "Erweitern Sie Ihre Plattform",
|
||||
"subtitle": "Fügen Sie Ihre Marke, professionelle E-Mail und erweiterte Sicherheit hinzu.",
|
||||
"per_year": "/Jahr",
|
||||
"per_month": "/Monat",
|
||||
"custom_domain": "Eigene Domain",
|
||||
"custom_domain_desc": "Nutzen Sie Ihre eigene Domain (meinedomain.com)",
|
||||
"premium_ssl": "Premium SSL",
|
||||
"premium_ssl_desc": "EV-Zertifikat für Vertrauenssiegel",
|
||||
"email_package": "E-Mail-Paket",
|
||||
"email_package_desc": "Professionelle E-Mail-Adressen"
|
||||
},
|
||||
"find_shop": {
|
||||
"title": "Finden Sie Ihren Letzshop",
|
||||
"subtitle": "Verkaufen Sie bereits auf Letzshop? Geben Sie Ihre Shop-URL ein, um zu beginnen.",
|
||||
"placeholder": "Geben Sie Ihre Letzshop-URL ein (z.B. letzshop.lu/vendors/mein-shop)",
|
||||
"button": "Meinen Shop finden",
|
||||
"claim_shop": "Diesen Shop beanspruchen",
|
||||
"already_claimed": "Bereits beansprucht",
|
||||
"no_account": "Sie haben kein Letzshop-Konto?",
|
||||
"signup_letzshop": "Registrieren Sie sich zuerst bei Letzshop",
|
||||
"then_connect": ", dann kommen Sie zurück, um Ihren Shop zu verbinden.",
|
||||
"search_placeholder": "Letzshop-URL oder Shopname eingeben...",
|
||||
"search_button": "Suchen",
|
||||
"examples": "Beispiele:",
|
||||
"claim_button": "Diesen Shop beanspruchen und kostenlos testen",
|
||||
"not_found": "Wir konnten keinen Letzshop mit dieser URL finden. Bitte überprüfen Sie und versuchen Sie es erneut.",
|
||||
"or_signup": "Oder registrieren Sie sich ohne Letzshop-Verbindung",
|
||||
"need_help": "Brauchen Sie Hilfe?",
|
||||
"no_account_yet": "Sie haben noch kein Letzshop-Konto? Kein Problem!",
|
||||
"create_letzshop": "Letzshop-Konto erstellen",
|
||||
"signup_without": "Ohne Letzshop registrieren",
|
||||
"looking_up": "Suche Ihren Shop...",
|
||||
"found": "Gefunden:",
|
||||
"claimed_badge": "Bereits beansprucht"
|
||||
},
|
||||
"signup": {
|
||||
"step_plan": "Plan wählen",
|
||||
"step_shop": "Shop beanspruchen",
|
||||
"step_account": "Konto",
|
||||
"step_payment": "Zahlung",
|
||||
"choose_plan": "Wählen Sie Ihren Plan",
|
||||
"save_percent": "Sparen Sie {percent}%",
|
||||
"trial_info": "Wir erfassen Ihre Zahlungsdaten, aber Sie werden erst nach Ende der Testphase belastet.",
|
||||
"connect_shop": "Verbinden Sie Ihren Letzshop",
|
||||
"connect_optional": "Optional: Verknüpfen Sie Ihr Letzshop-Konto, um Bestellungen automatisch zu synchronisieren.",
|
||||
"connect_continue": "Verbinden und fortfahren",
|
||||
"skip_step": "Diesen Schritt überspringen",
|
||||
"create_account": "Erstellen Sie Ihr Konto",
|
||||
"first_name": "Vorname",
|
||||
"last_name": "Nachname",
|
||||
"company_name": "Firmenname",
|
||||
"email": "E-Mail",
|
||||
"password": "Passwort",
|
||||
"password_hint": "Mindestens 8 Zeichen",
|
||||
"continue": "Weiter",
|
||||
"continue_payment": "Weiter zur Zahlung",
|
||||
"back": "Zurück",
|
||||
"add_payment": "Zahlungsmethode hinzufügen",
|
||||
"no_charge_note": "Sie werden erst nach Ablauf Ihrer {trial_days}-tägigen Testphase belastet.",
|
||||
"processing": "Verarbeitung...",
|
||||
"start_trial": "Kostenlose Testversion starten",
|
||||
"creating_account": "Erstelle Ihr Konto..."
|
||||
},
|
||||
"success": {
|
||||
"title": "Willkommen bei Wizamart!",
|
||||
"subtitle": "Ihr Konto wurde erstellt und Ihre {trial_days}-tägige kostenlose Testphase hat begonnen.",
|
||||
"what_next": "Was kommt als Nächstes?",
|
||||
"step_connect": "Letzshop verbinden:",
|
||||
"step_connect_desc": "Fügen Sie Ihren API-Schlüssel hinzu, um Bestellungen automatisch zu synchronisieren.",
|
||||
"step_invoicing": "Rechnungsstellung einrichten:",
|
||||
"step_invoicing_desc": "Konfigurieren Sie Ihre Rechnungseinstellungen für die luxemburgische Compliance.",
|
||||
"step_products": "Produkte importieren:",
|
||||
"step_products_desc": "Synchronisieren Sie Ihren Produktkatalog von Letzshop.",
|
||||
"go_to_dashboard": "Zum Dashboard",
|
||||
"login_dashboard": "Zum Dashboard anmelden",
|
||||
"need_help": "Brauchen Sie Hilfe beim Einstieg?",
|
||||
"contact_support": "Kontaktieren Sie unser Support-Team"
|
||||
},
|
||||
"cta": {
|
||||
"title": "Bereit, Ihre Bestellungen zu optimieren?",
|
||||
"subtitle": "Schließen Sie sich Letzshop-Händlern an, die Wizamart für ihre Bestellverwaltung vertrauen. Starten Sie heute Ihre {trial_days}-tägige kostenlose Testversion.",
|
||||
"button": "Kostenlos testen"
|
||||
},
|
||||
"footer": {
|
||||
"tagline": "Leichtes OMS für Letzshop-Verkäufer. Verwalten Sie Bestellungen, Lager und Rechnungen.",
|
||||
"quick_links": "Schnelllinks",
|
||||
"platform": "Plattform",
|
||||
"contact": "Kontakt",
|
||||
"copyright": "© {year} Wizamart. Entwickelt für den luxemburgischen E-Commerce.",
|
||||
"privacy": "Datenschutzerklärung",
|
||||
"terms": "Nutzungsbedingungen",
|
||||
"about": "Über uns",
|
||||
"faq": "FAQ",
|
||||
"contact_us": "Kontaktieren Sie uns"
|
||||
},
|
||||
"modern": {
|
||||
"badge_integration": "Offizielle Integration",
|
||||
"badge_connect": "In 2 Minuten verbinden",
|
||||
"hero_title_1": "Für den luxemburgischen E-Commerce entwickelt",
|
||||
"hero_title_2": "Das Back-Office, das Letzshop Ihnen nicht gibt",
|
||||
"hero_subtitle": "Synchronisieren Sie Bestellungen, verwalten Sie Lager, erstellen Sie Rechnungen mit korrekter MwSt und besitzen Sie Ihre Kundendaten. Alles an einem Ort.",
|
||||
"cta_trial": "{trial_days}-Tage kostenlos testen",
|
||||
"cta_how": "Sehen Sie, wie es funktioniert",
|
||||
"hero_note": "Keine Kreditkarte erforderlich. Einrichtung in 5 Minuten. Jederzeit kündbar.",
|
||||
"pain_title": "Kommt Ihnen das bekannt vor?",
|
||||
"pain_subtitle": "Das sind die täglichen Frustrationen von Letzshop-Verkäufern",
|
||||
"pain_manual": "Manuelle Bestelleingabe",
|
||||
"pain_manual_desc": "Bestellungen von Letzshop in Tabellenkalkulationen kopieren. Jeden. Einzelnen. Tag.",
|
||||
"pain_inventory": "Lagerchaos",
|
||||
"pain_inventory_desc": "Der Bestand in Letzshop stimmt nicht mit der Realität überein. Überverkäufe passieren.",
|
||||
"pain_vat": "Falsche MwSt-Rechnungen",
|
||||
"pain_vat_desc": "EU-Kunden brauchen die korrekte MwSt. Ihr Buchhalter beschwert sich.",
|
||||
"pain_customers": "Verlorene Kunden",
|
||||
"pain_customers_desc": "Letzshop besitzt Ihre Kundendaten. Sie können nicht retargeten oder Loyalität aufbauen.",
|
||||
"how_title": "So funktioniert es",
|
||||
"how_subtitle": "Vom Chaos zur Kontrolle in 4 Schritten",
|
||||
"how_step1": "Letzshop verbinden",
|
||||
"how_step1_desc": "Geben Sie Ihre Letzshop-API-Zugangsdaten ein. In 2 Minuten erledigt, keine technischen Kenntnisse erforderlich.",
|
||||
"how_step2": "Bestellungen kommen rein",
|
||||
"how_step2_desc": "Bestellungen werden automatisch synchronisiert. Bestätigen und Tracking direkt von Wizamart hinzufügen.",
|
||||
"how_step3": "Rechnungen erstellen",
|
||||
"how_step3_desc": "Ein Klick, um konforme PDF-Rechnungen mit korrekter MwSt für jedes EU-Land zu erstellen.",
|
||||
"how_step4": "Ihr Geschäft ausbauen",
|
||||
"how_step4_desc": "Exportieren Sie Kunden für Marketing. Verfolgen Sie Lagerbestände. Konzentrieren Sie sich auf den Verkauf, nicht auf Tabellenkalkulationen.",
|
||||
"features_title": "Alles, was ein Letzshop-Verkäufer braucht",
|
||||
"features_subtitle": "Die operativen Tools, die Letzshop nicht bietet",
|
||||
"cta_final_title": "Bereit, die Kontrolle über Ihr Letzshop-Geschäft zu übernehmen?",
|
||||
"cta_final_subtitle": "Schließen Sie sich luxemburgischen Händlern an, die aufgehört haben, gegen Tabellenkalkulationen zu kämpfen, und begonnen haben, ihr Geschäft auszubauen.",
|
||||
"cta_final_note": "Keine Kreditkarte erforderlich. Einrichtung in 5 Minuten. Volle Professional-Funktionen während der Testphase."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user