- Add database fields for language preferences: - Vendor: dashboard_language, storefront_language, storefront_languages - User: preferred_language - Customer: preferred_language - Add language middleware for request-level language detection: - Cookie-based persistence - Browser Accept-Language fallback - Vendor storefront language constraints - Add language API endpoints (/api/v1/language/*): - POST /set - Set language preference - GET /current - Get current language info - GET /list - List available languages - DELETE /clear - Clear preference - Add i18n utilities (app/utils/i18n.py): - JSON-based translation loading - Jinja2 template integration - Language resolution helpers - Add reusable language selector macros for templates - Add languageSelector() Alpine.js component - Add translation files (en, fr, de, lb) in static/locales/ - Add architecture rules documentation for language implementation - Update marketplace-product-detail.js to use native language names 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
476 lines
15 KiB
JSON
476 lines
15 KiB
JSON
{
|
|
"common": {
|
|
"save": "Speichern",
|
|
"cancel": "Abbrechen",
|
|
"delete": "Löschen",
|
|
"edit": "Bearbeiten",
|
|
"create": "Erstellen",
|
|
"update": "Aktualisieren",
|
|
"add": "Hinzufügen",
|
|
"remove": "Entfernen",
|
|
"close": "Schließen",
|
|
"back": "Zurück",
|
|
"next": "Weiter",
|
|
"previous": "Zurück",
|
|
"submit": "Absenden",
|
|
"confirm": "Bestätigen",
|
|
"yes": "Ja",
|
|
"no": "Nein",
|
|
"ok": "OK",
|
|
"done": "Fertig",
|
|
"loading": "Laden...",
|
|
"saving": "Speichern...",
|
|
"processing": "Verarbeiten...",
|
|
"searching": "Suchen...",
|
|
"refresh": "Aktualisieren",
|
|
"retry": "Erneut versuchen",
|
|
"view": "Ansehen",
|
|
"view_details": "Details ansehen",
|
|
"view_all": "Alle anzeigen",
|
|
"show_more": "Mehr anzeigen",
|
|
"show_less": "Weniger anzeigen",
|
|
"search": "Suchen",
|
|
"filter": "Filtern",
|
|
"sort": "Sortieren",
|
|
"export": "Exportieren",
|
|
"import": "Importieren",
|
|
"download": "Herunterladen",
|
|
"upload": "Hochladen",
|
|
"select": "Auswählen",
|
|
"select_all": "Alle auswählen",
|
|
"deselect_all": "Auswahl aufheben",
|
|
"actions": "Aktionen",
|
|
"status": "Status",
|
|
"date": "Datum",
|
|
"time": "Zeit",
|
|
"name": "Name",
|
|
"email": "E-Mail",
|
|
"phone": "Telefon",
|
|
"address": "Adresse",
|
|
"description": "Beschreibung",
|
|
"notes": "Notizen",
|
|
"total": "Gesamt",
|
|
"amount": "Betrag",
|
|
"quantity": "Menge",
|
|
"price": "Preis",
|
|
"items": "Artikel",
|
|
"id": "ID",
|
|
"type": "Typ",
|
|
"category": "Kategorie",
|
|
"tags": "Tags",
|
|
"active": "Aktiv",
|
|
"inactive": "Inaktiv",
|
|
"enabled": "Aktiviert",
|
|
"disabled": "Deaktiviert",
|
|
"pending": "Ausstehend",
|
|
"completed": "Abgeschlossen",
|
|
"failed": "Fehlgeschlagen",
|
|
"success": "Erfolg",
|
|
"error": "Fehler",
|
|
"warning": "Warnung",
|
|
"info": "Info",
|
|
"all": "Alle",
|
|
"none": "Keine",
|
|
"other": "Andere",
|
|
"unknown": "Unbekannt",
|
|
"not_available": "N/V",
|
|
"required": "Erforderlich",
|
|
"optional": "Optional",
|
|
"language": "Sprache",
|
|
"settings": "Einstellungen",
|
|
"help": "Hilfe",
|
|
"support": "Support",
|
|
"contact": "Kontakt",
|
|
"about": "Über",
|
|
"privacy": "Datenschutz",
|
|
"terms": "AGB",
|
|
"copyright": "Urheberrecht"
|
|
},
|
|
"auth": {
|
|
"sign_in": "Anmelden",
|
|
"sign_out": "Abmelden",
|
|
"sign_up": "Registrieren",
|
|
"login": "Anmelden",
|
|
"logout": "Abmelden",
|
|
"register": "Registrieren",
|
|
"forgot_password": "Passwort vergessen?",
|
|
"reset_password": "Passwort zurücksetzen",
|
|
"change_password": "Passwort ändern",
|
|
"username": "Benutzername",
|
|
"password": "Passwort",
|
|
"confirm_password": "Passwort bestätigen",
|
|
"current_password": "Aktuelles Passwort",
|
|
"new_password": "Neues Passwort",
|
|
"remember_me": "Angemeldet bleiben",
|
|
"email_placeholder": "E-Mail eingeben",
|
|
"username_placeholder": "Benutzername eingeben",
|
|
"password_placeholder": "Passwort eingeben",
|
|
"login_success": "Anmeldung erfolgreich",
|
|
"login_failed": "Anmeldung fehlgeschlagen",
|
|
"logout_success": "Sie wurden abgemeldet",
|
|
"invalid_credentials": "Ungültiger Benutzername oder Passwort",
|
|
"session_expired": "Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.",
|
|
"account_locked": "Ihr Konto wurde gesperrt",
|
|
"account_inactive": "Ihr Konto ist inaktiv"
|
|
},
|
|
"nav": {
|
|
"dashboard": "Dashboard",
|
|
"products": "Produkte",
|
|
"orders": "Bestellungen",
|
|
"customers": "Kunden",
|
|
"inventory": "Inventar",
|
|
"analytics": "Analysen",
|
|
"reports": "Berichte",
|
|
"settings": "Einstellungen",
|
|
"profile": "Profil",
|
|
"team": "Team",
|
|
"marketplace": "Marktplatz",
|
|
"integrations": "Integrationen",
|
|
"notifications": "Benachrichtigungen",
|
|
"help": "Hilfe",
|
|
"home": "Startseite",
|
|
"shop": "Shop",
|
|
"cart": "Warenkorb",
|
|
"checkout": "Kasse",
|
|
"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",
|
|
"unauthorized": "Nicht autorisiert",
|
|
"forbidden": "Verboten",
|
|
"bad_request": "Ungültige Anfrage",
|
|
"server_error": "Serverfehler",
|
|
"network_error": "Netzwerkfehler",
|
|
"timeout": "Zeitüberschreitung",
|
|
"validation_error": "Validierungsfehler",
|
|
"field_required": "Dieses Feld ist erforderlich",
|
|
"invalid_email": "Ungültige E-Mail-Adresse",
|
|
"invalid_phone": "Ungültige Telefonnummer",
|
|
"password_mismatch": "Passwörter stimmen nicht überein",
|
|
"password_too_short": "Passwort ist zu kurz",
|
|
"try_again": "Bitte versuchen Sie es erneut",
|
|
"contact_support": "Bitte kontaktieren Sie den Support, wenn das Problem weiterhin besteht"
|
|
},
|
|
"confirmations": {
|
|
"delete_title": "Löschen bestätigen",
|
|
"delete_message": "Sind Sie sicher, dass Sie diesen Eintrag löschen möchten?",
|
|
"delete_warning": "Diese Aktion kann nicht rückgängig gemacht werden.",
|
|
"cancel_title": "Abbrechen bestätigen",
|
|
"cancel_message": "Sind Sie sicher, dass Sie abbrechen möchten?",
|
|
"unsaved_changes": "Sie haben ungespeicherte Änderungen. Sind Sie sicher, dass Sie die Seite verlassen möchten?",
|
|
"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"
|
|
},
|
|
"time": {
|
|
"now": "Jetzt",
|
|
"today": "Heute",
|
|
"yesterday": "Gestern",
|
|
"tomorrow": "Morgen",
|
|
"this_week": "Diese Woche",
|
|
"last_week": "Letzte Woche",
|
|
"this_month": "Dieser Monat",
|
|
"last_month": "Letzter Monat",
|
|
"this_year": "Dieses Jahr",
|
|
"ago": "vor",
|
|
"seconds": "Sekunden",
|
|
"minutes": "Minuten",
|
|
"hours": "Stunden",
|
|
"days": "Tagen",
|
|
"weeks": "Wochen",
|
|
"months": "Monaten",
|
|
"years": "Jahren"
|
|
},
|
|
"formats": {
|
|
"date": "DD.MM.YYYY",
|
|
"time": "HH:mm",
|
|
"datetime": "DD.MM.YYYY HH:mm",
|
|
"currency": "{amount} {symbol}"
|
|
}
|
|
}
|