The merchant team page was read-only. Now merchant owners can invite, edit roles, and remove team members across all their stores from a single hub view. Architecture: No new models — delegates to existing store_team_service. Members are deduplicated across stores with per-store role badges. New: - 5 API endpoints: GET team (member-centric), GET store roles, POST invite (multi-store), PUT update role, DELETE remove member - merchant-team.js Alpine component with invite/edit/remove modals - Full CRUD template with stats cards, store filter, member table - 7 Pydantic schemas for merchant team request/response - 2 service methods: validate_store_ownership, get_merchant_team_members - 25 new i18n keys across 4 tenancy locales + 1 core common key Tests: 434 tenancy tests passing, arch-check green. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
235 lines
7.7 KiB
JSON
235 lines
7.7 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...",
|
|
"sending": "Wird gesendet",
|
|
"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",
|
|
"signing_in": "Anmeldung läuft...",
|
|
"sending": "Wird gesendet...",
|
|
"send_reset_link": "Link zum Zurücksetzen senden",
|
|
"reset_password_desc": "Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen einen Link zum Zurücksetzen Ihres Passworts.",
|
|
"back_to_login": "Zurück zur Anmeldung",
|
|
"back_to_platform": "Zurück zur Plattform",
|
|
"no_account": "Noch kein Konto?",
|
|
"visit_platform": "Besuchen Sie unsere Plattform",
|
|
"already_have_account": "Haben Sie bereits ein Konto?",
|
|
"create_account": "Konto erstellen",
|
|
"continue_shopping": "Weiter einkaufen",
|
|
"admin_login": "Admin-Anmeldung",
|
|
"merchant_login": "Händler-Anmeldung",
|
|
"store_login": "Shop-Portal-Anmeldung",
|
|
"customer_login": "Kunden-Anmeldung",
|
|
"create_account_title": "Konto erstellen",
|
|
"creating_account": "Konto wird erstellt...",
|
|
"sign_in_instead": "Stattdessen anmelden",
|
|
"first_name": "Vorname",
|
|
"last_name": "Nachname",
|
|
"phone_number": "Telefonnummer",
|
|
"marketing_consent": "Ich möchte Neuigkeiten und Sonderangebote erhalten",
|
|
"password_requirements": "Muss mindestens 8 Zeichen, einen Buchstaben und eine Zahl enthalten",
|
|
"check_email": "Überprüfen Sie Ihre E-Mail",
|
|
"reset_link_sent": "Wir haben einen Link zum Zurücksetzen des Passworts an Ihre E-Mail-Adresse gesendet. Bitte überprüfen Sie Ihren Posteingang und klicken Sie auf den Link.",
|
|
"didnt_receive_email": "E-Mail nicht erhalten? Überprüfen Sie Ihren Spam-Ordner oder",
|
|
"try_again": "versuchen Sie es erneut",
|
|
"remember_password": "Passwort wieder eingefallen?"
|
|
},
|
|
"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"
|
|
},
|
|
"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?"
|
|
},
|
|
"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}"
|
|
},
|
|
"clipboard": {
|
|
"copied": "In die Zwischenablage kopiert",
|
|
"failed": "Kopieren fehlgeschlagen"
|
|
},
|
|
"onboarding": {
|
|
"banner": {
|
|
"title": "Erste Schritte",
|
|
"dismiss": "Ausblenden"
|
|
}
|
|
}
|
|
}
|