{ "common": { "appName": "PieCed", "tagline": "KI-Plattform", "login": "Anmelden", "logout": "Abmelden", "dashboard": "Dashboard", "admin": "Admin", "loading": "Laden…", "language": "Sprache", "cancel": "Abbrechen", "save": "Speichern", "error": "Ein Fehler ist aufgetreten", "register": "Registrieren", "team": "Team", "settings": "Einstellungen", "optional": "optional", "support": "Support", "billing": "Abrechnung" }, "login": { "title": "PieCed Portal", "subtitle": "Melden Sie sich an, um Ihren KI-Assistenten zu verwalten", "button": "Weiter mit ZITADEL", "footer": "On-Premises gehostet in der Schweiz", "noAccount": "Noch kein Konto?", "register": "Konto erstellen" }, "register": { "title": "Konto erstellen", "subtitle": "Richten Sie Ihren Schweizer KI-Assistenten ein", "companyName": "Firmenname", "companyNamePlaceholder": "Muster GmbH", "givenName": "Vorname", "familyName": "Nachname", "email": "E-Mail-Adresse", "submit": "Registrieren", "hasAccount": "Bereits ein Konto?", "footer": "Ihre Daten werden ausschliesslich On-Premises in der Schweiz gehostet.", "successTitle": "Registrierung eingegangen", "successDescription": "Sie erhalten eine Einladungs-E-Mail mit einem Link, um Ihr Passwort festzulegen und Ihre E-Mail-Adresse zu bestätigen. Danach können Sie sich anmelden und Ihren KI-Assistenten einrichten.", "goToLogin": "Zur Anmeldung", "duplicateDomain": "Für die E-Mail-Domain {domain} ist bereits ein Konto registriert. Bitte wenden Sie sich an Ihren Firmenadministrator, um eingeladen zu werden, oder kontaktieren Sie den PieCed-IT-Support, falls dies ein Fehler ist.", "individualToggle": "Als Privatperson registrieren", "individualHint": "Aktivieren Sie diese Option, wenn Sie sich nicht im Namen eines Unternehmens registrieren. Ihr Konto wird als persönlicher Arbeitsbereich eingerichtet.", "accountTypeLabel": "Kontotyp", "personalCardTitle": "Privat", "personalCardDescription": "Für Sie persönlich.", "companyCardTitle": "Unternehmen", "companyCardDescription": "Für Ihr Unternehmen oder Team." }, "onboarding": { "loading": "Status wird geladen…", "welcomeTitle": "KI-Assistenten einrichten", "welcomeDescription": "In wenigen Schritten erhalten Sie Ihren eigenen KI-Assistenten — ausschliesslich in der Schweiz gehostet, vollständig unter Ihrer Kontrolle.", "welcomeFeature_swissHosted": "On-Premises in der Schweiz gehostet — Ihre Daten verlassen nie das Land", "welcomeFeature_privacy": "Keine Datenweitergabe an Dritte — vollständiger Datenschutz", "welcomeFeature_customizable": "Vollständig anpassbare Persönlichkeit, Pakete und Integrationen", "getStarted": "Loslegen", "configureTitle": "Assistenten konfigurieren", "configureDescription": "Geben Sie Ihrem Assistenten einen Namen und eine Persönlichkeit. Sie können dies jederzeit ändern.", "agentName": "Agent-Name", "soulMd": "Persönlichkeit (SOUL.md)", "soulMdHint": "Definiert das Verhalten Ihres Assistenten. Markdown-Format. Kann später bearbeitet werden.", "agentsMd": "Agent-Anweisungen (AGENTS.md)", "agentsMdHint": "Definiert, was Ihr Assistent beim Sitzungsstart tut. Optional — die Standardwerte funktionieren für die meisten Setups.", "toolsMd": "Verfügbare Werkzeuge (TOOLS.md)", "toolsMdHint": "Automatisch generiert basierend auf Ihren gewählten Paketen. Diese Datei wird automatisch verwaltet.", "advancedConfig": "Erweiterte Konfiguration", "packages": "Pakete", "packagesHint": "Optionale Integrationen. Pakete mit Zugangsdaten werden diese inline abfragen. Können auch später aktiviert werden.", "billingTitle": "Rechnungsinformationen", "billingDescription": "Wir benötigen Ihre Rechnungsadresse für die Fakturierung. Ein Zahlungsanbieter wird zukünftig integriert.", "billingCompany": "Firma", "billingStreet": "Strasse", "billingPostalCode": "PLZ", "billingCity": "Ort", "billingCountry": "Land", "billingNotes": "Bemerkungen", "billingNotesPlaceholder": "Bemerkungen zur Rechnung (Bestellnummer, MWST-Nr., bevorzugte Zahlungsart usw.)", "confirmTitle": "Überprüfen & absenden", "confirmDescription": "Bitte überprüfen Sie Ihre Einstellungen. Ihr Antrag wird von unserem Team geprüft, bevor die Bereitstellung beginnt.", "confirmNote": "Nach dem Absenden prüft unser Team Ihren Antrag und die Rechnungsangaben. Sie erhalten Zugang nach Genehmigung — normalerweise innerhalb eines Werktages.", "credentialsProvided": "Zugangsdaten hinterlegt", "submitRequest": "Antrag absenden", "back": "Zurück", "next": "Weiter", "pendingTitle": "Antrag eingereicht", "pendingDescription": "Ihr Antrag wurde eingereicht und wird von unserem Team geprüft. Sie erhalten Zugang nach Genehmigung — normalerweise innerhalb eines Werktages.", "rejectedTitle": "Antrag nicht genehmigt", "rejectedDescription": "Leider wurde Ihr Antrag nicht genehmigt. Bitte kontaktieren Sie uns für weitere Informationen.", "provisioningTitle": "Instanz wird eingerichtet", "provisioningDescription": "Ihr KI-Assistent wird bereitgestellt. Dies dauert in der Regel wenige Minuten.", "phase": "Phase", "readyTitle": "Ihr Assistent ist bereit!", "readyDescription": "Ihr KI-Assistent wurde bereitgestellt und ist aktiv. Sie können ihn nun über das Dashboard verwalten.", "goToDashboard": "Zum Dashboard", "submittedAt": "Eingereicht", "instanceName": "Instanzname", "instanceNamePlaceholder": "z.B. Produktion, Dev, Vertrieb", "instanceNameHint": "Optionaler lesbarer Name, um diese Instanz von anderen in Ihrem Dashboard zu unterscheiden. Leer lassen, um den Firmennamen zu verwenden.", "validationError": "Bitte korrigieren Sie die Fehler vor dem Absenden.", "validationErrorsTitle": "Einige Pflichtfelder fehlen oder sind ungültig:", "reviewInstanceDefault": "(Standard — verwendet Firmenname)", "reviewNoPackages": "Keine ausgewählt", "reviewBillingTo": "Rechnungsempfänger", "reviewContactEmail": "Kontakt-E-Mail", "editRequestTitle": "Anfrage bearbeiten", "editRequestDescription": "Passen Sie die Konfiguration an, bevor unser Team sie prüft.", "editRequest": "Bearbeiten", "cancelRequest": "Anfrage stornieren", "cancelRequestConfirm": "Ja, Anfrage stornieren", "cancelConfirmRequestTitle": "Diese Anfrage stornieren?", "cancelConfirmRequestDescription": "Ihre ausstehende Anfrage wird als storniert markiert und aus der Warteschlange entfernt. Sie können jederzeit eine neue Anfrage einreichen.", "cancelFailed": "Anfrage konnte nicht storniert werden.", "cancelledTitle": "Anfrage storniert", "cancelledDescription": "Sie haben diese Anfrage vor der Bearbeitung storniert. Es wurde keine Instanz erstellt.", "dismiss": "Ausblenden", "dismissFailed": "Konnte nicht ausgeblendet werden.", "rejectionReason": "Angegebener Grund", "saveChanges": "Änderungen speichern", "billingVatNumber": "MWST-Nummer", "billingVatHelp": "Ihre registrierte MWST-Nummer. Falls Ihre Firma von der MWST befreit ist, leer lassen und in den Notizen erläutern.", "billingNotesPlaceholderPersonal": "Was wir wissen sollten — bevorzugte Zahlungsart, Rechnungsreferenz, etc." }, "dashboard": { "title": "Dashboard", "welcome": "Willkommen zurück, {name}", "instanceStatus": "Instanz-Status", "usage": "Nutzung", "packages": "Pakete", "noInstance": "Noch keine Instanz bereitgestellt.", "comingSoon": "Detailansicht folgt in Session 6.2", "noInstanceDescription": "Richten Sie Ihre KI-Assistenten-Instanz ein, um mit PieCed IT zu starten.", "manage": "Instanz & Pakete verwalten", "instances": "Ihre Instanzen", "inflightRequests": "Laufende Anfragen", "createInstance": "Neue Instanz erstellen", "createInstanceDescription": "Eine weitere KI-Assistent-Instanz für Ihre Organisation bereitstellen. Die Anfrage wird von einem Administrator geprüft, bevor die Instanz erstellt wird.", "noAccessNoInstances": "Ihre Organisation hat noch keine Instanzen. Bitte bitten Sie den Eigentümer der Organisation, eine einzurichten.", "noAssignmentsTitle": "Keine Instanzen zugewiesen", "noAssignmentsDescription": "Ihre Organisation verfügt über Instanzen, aber Sie haben keinen Zugriff darauf erhalten. Bitten Sie den Eigentümer Ihrer Organisation, Sie einer Instanz zuzuweisen.", "noInstancesYetTitle": "Noch keine Instanzen", "noInstancesYetDescription": "Ihre Organisation verfügt noch über keine Instanzen. Bitten Sie den Eigentümer Ihrer Organisation, eine einzurichten." }, "tenantDetail": { "agent": "Agent", "packages": "Pakete", "workspaceFiles": "Workspace-Dateien", "notFound": "Tenant nicht gefunden.", "usage": "Nutzung & Kosten", "provisioned": "Bereitgestellt", "assignedUsers": "Zugewiesene Benutzer", "subscriptionTitle": "Abonnement", "subscriptionDescriptionActive": "Kündigen Sie Ihr Abonnement, wenn Sie diesen Assistenten nicht mehr benötigen. Ihre Daten bleiben erhalten und Sie können jederzeit wieder aktivieren.", "subscriptionDescriptionSuspended": "Ihr Abonnement ist gekündigt. Aktivieren Sie es wieder, um den Assistenten online zu bringen.", "cancelSubscription": "Abonnement kündigen", "cancelSubscriptionConfirm": "Ja, kündigen", "resumeSubscription": "Abonnement reaktivieren", "cancelConfirmTitle": "Dieses Abonnement kündigen?", "cancelConfirmDescription": "Ihr Assistent wird nicht mehr verfügbar sein. Sie können jederzeit reaktivieren — Ihre Daten bleiben erhalten.", "cancelConfirmBullet1": "Workspace-Dateien (SOUL.md, AGENTS.md) bleiben erhalten", "cancelConfirmBullet2": "Paket-Anmeldedaten bleiben gespeichert", "cancelConfirmBullet3": "Rechnungsdaten bleiben gespeichert", "subscriptionUpdateFailed": "Abonnement konnte nicht aktualisiert werden.", "suspendedTitle": "Abonnement gekündigt", "suspendedDescription": "Ihr Assistent ist pausiert. Konfiguration und Daten bleiben erhalten. Verwenden Sie die Reaktivierungs-Schaltfläche unten auf dieser Seite, um ihn wieder online zu bringen.", "requestReactivation": "Reaktivierung anfragen", "requestReactivationConfirmTitle": "Reaktivierung anfragen?", "requestReactivationConfirmDescription": "Ein Administrator prüft Ihre Anfrage und reaktiviert Ihren Tenant. Sie erhalten eine E-Mail, sobald die Anfrage genehmigt wurde.", "requestReactivationConfirm": "Anfrage senden", "cancelResumeRequest": "Anfrage stornieren", "resumeRequestPendingTitle": "Reaktivierungsanfrage ausstehend", "resumeRequestPendingDescription": "Eingereicht {when}. Ein Administrator wird die Anfrage in Kürze prüfen.", "resumeRequestPendingNoteAdmin": "Ein Inhaber hat eine Reaktivierung angefragt; Sie können direkt oben fortfahren oder die Anfrage in der Admin-Warteschlange bearbeiten.", "cancelConfirmRetentionWarning": "Ihre Daten bleiben nach der Kündigung 60 Tage lang erhalten. Danach werden alle Tenant-Daten – Konfiguration, Geheimnisse, Konversationen und Dateien – endgültig gelöscht.", "suspendedSince": "Gekündigt am {date}", "suspendedDeletionIn": "Datenlöschung in {days, plural, one {# Tag} other {# Tagen}} ({date})", "suspendedDeletionImminent": "Daten werden jetzt gelöscht", "requestReactivationNoteLabel": "Notiz an unser Team", "requestReactivationNotePlaceholder": "Alles, was unser Team wissen sollte – z. B. Grund der Reaktivierung, Dringlichkeit usw." }, "usage": { "inputTokens": "Input-Tokens", "outputTokens": "Output-Tokens", "totalSpend": "Gesamtausgaben", "totalCost": "Gesamtkosten", "budget": "Budget", "noLimit": "Kein Limit", "last30Days": "Letzte 30 Tage", "noData": "Keine Nutzungsdaten verfügbar.", "dailyBreakdown": "Tagesübersicht", "requests": "Anfragen", "budgetEdit": "Bearbeiten", "budgetEditTitle": "Budget festlegen", "budgetEditDescription": "Begrenzen Sie, wie viel die Assistenten dieses Tenants ausgeben können, bevor Anfragen abgelehnt werden.", "budgetModeUnlimited": "Kein Limit", "budgetModeUnlimitedDescription": "Beliebige Ausgaben, kein Limit.", "budgetModeCapped": "Limit festlegen", "budgetModeCappedDescription": "Anfragen ablehnen, sobald die Ausgaben diesen Betrag erreichen.", "budgetAmount": "Betrag", "budgetResetCadence": "Zurücksetzen", "budgetCadence_30d": "Alle 30 Tage", "budgetCadence_1mo": "Monatlich", "budgetCadence_1y": "Jährlich", "budgetInvalid": "Bitte einen positiven Betrag eingeben.", "budgetSaveFailed": "Budget konnte nicht gespeichert werden. Bitte erneut versuchen." }, "workspace": { "save": "Speichern", "placeholder": "Inhalt für {file} eingeben…", "readonlyNote": "Diese Datei wird automatisch generiert und kann nicht manuell bearbeitet werden.", "seedingNote": "Workspace-Dateien werden beim ersten Start geladen. Eine Aktualisierung auf einer bestehenden Instanz löst ein ConfigMap-Update und Pod-Neustart aus." }, "packages": { "categories": { "channels": "Kanäle", "skills": "Fähigkeiten", "core": "Kern" }, "enable": "Aktivieren", "disable": "Deaktivieren", "enableAndSave": "Aktivieren & Speichern", "configure": "Konfigurieren", "requiresApiKey": "Erfordert API-Schlüssel", "missingFields": "Bitte füllen Sie alle erforderlichen Felder aus.", "status": { "pending": "Ausstehend", "active": "Aktiv", "error": "Fehler" }, "telegram": { "description": "Verbinden Sie Ihren KI-Assistenten mit einem Telegram-Bot.", "botTokenLabel": "Telegram Bot Token", "botTokenPlaceholder": "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11", "instructions": "1. Öffnen Sie @BotFather auf Telegram\n2. Senden Sie /newbot und folgen Sie den Anweisungen\n3. Kopieren Sie den Bot-Token", "disclaimer": "Ich bestätige, dass ich diesen Telegram-Bot besitze und PieCed IT autorisiere, ihn mit meinem KI-Assistenten zu verbinden." }, "discord": { "description": "Verbinden Sie Ihren KI-Assistenten mit einem Discord-Server über einen Bot.", "botTokenLabel": "Discord Bot Token", "botTokenPlaceholder": "MTAxNjQ0OTk2NjAz...", "instructions": "1. Gehen Sie zu discord.com/developers/applications\n2. Erstellen Sie eine neue Anwendung und fügen Sie einen Bot hinzu\n3. Kopieren Sie den Bot-Token", "disclaimer": "Ich bestätige, dass ich diesen Discord-Bot besitze und PieCed IT autorisiere, ihn mit meinem KI-Assistenten zu verbinden.", "appIdLabel": "Discord-Anwendungs-ID", "appIdPlaceholder": "18–19-stellige numerische ID aus dem Developer Portal" }, "statusEnabled": "aktiviert", "statusDisabled": "deaktiviert", "coreHeartbeat": { "description": "Periodischer Agentenlauf alle 30 Minuten, der es dem Assistenten erlaubt, Posteingang, Kalender und andere konfigurierte Quellen zu prüfen und proaktiv Bescheid zu geben, wenn etwas Aufmerksamkeit braucht. Ohne diese Option reagiert der Assistent nur, wenn Sie ihn ansprechen." }, "coreCron": { "description": "Erlaubt dem Assistenten, geplante Aufgaben auszuführen (tägliche Briefings, wiederkehrende Erinnerungen, periodische Berichte). Standardmässig deaktiviert. Bei Deaktivierung bleibt das Cron-Werkzeug verfügbar, aber keine geplante Aufgabe wird ausgeführt." }, "coreActiveMemory": { "description": "Erlaubt dem Assistenten, stabile Präferenzen, wiederkehrende Gewohnheiten und langfristigen Kontext aus früheren Gesprächen abzurufen. Nutzt einen zusätzlichen Sub-Agent-Lauf pro eingehender Nachricht, um den Memory-Store abzufragen. Nur Direktnachrichten. Kleiner Mehraufwand an Tokens im Tausch gegen Kontinuität und Personalisierung." }, "coreVoice": { "description": "Spracherkennung für eingehende Sprachnachrichten und Sprachsynthese für Antworten, über das PieCed-LiteLLM-Gateway, damit Audiokosten pro Mandant erfasst werden. Die Laufzeit-Integration kommt im nächsten Plattform-Release; das Umschalten speichert die Auswahl für diese Auslieferung." }, "gitCli": { "description": "Eigenständige Git-Kommandozeilenoperationen (clone, commit, branch, diff, log, status). Für private Repositories konfigurieren Sie die Zugangsdaten in Ihrem Workspace." }, "github": { "description": "Interaktion mit GitHub-Repositories über die gh-CLI — Issues, Pull Requests, CI-Läufe, Releases, Gists. Erfordert ein persönliches Zugriffstoken.", "tokenLabel": "GitHub Persönliches Zugriffstoken", "tokenPlaceholder": "ghp_… oder github_pat_…", "instructions": "1. Öffnen Sie https://github.com/settings/tokens\n2. Erstellen Sie ein fein abgestimmtes persönliches Zugriffstoken mit den gewünschten Repo-Berechtigungen\n3. Kopieren Sie das Token (es wird nur einmal angezeigt)" }, "gitea": { "description": "Interaktion mit einer Gitea-Instanz — Repositories, Issues, Pull Requests, Releases. Standardmässig die PieCed-Plattform-Gitea unter git.c5ai.ch.", "tokenLabel": "Gitea-Zugriffstoken", "tokenPlaceholder": "Erstellt unter Einstellungen → Anwendungen", "instructions": "1. Melden Sie sich bei Ihrer Gitea-Instanz an (Standard https://git.c5ai.ch)\n2. Gehen Sie zu Einstellungen → Anwendungen → Neues Token erstellen\n3. Vergeben Sie die gewünschten Berechtigungen (repo, issue, user)\n4. Kopieren Sie das Token" }, "whisperSelfHosted": { "description": "Transkribieren Sie Audiodateien über die plattformeigene Whisper-Instanz. Nützlich für Ad-hoc-Transkriptionsaufgaben aus dem Chat heraus." }, "searxngLocalSearch": { "description": "Datenschutzfreundliche Web-Suche über die interne SearXNG-Instanz der Plattform. Durchsuchen Sie Web, Bilder und News ohne externe API-Aufrufe oder Tracker." }, "gog": { "description": "Gebündelter Zugriff auf Gmail, Kalender, Drive, Docs, Sheets und Kontakte via Google OAuth. Setup erfordert ein Google-Cloud-Projekt — wenden Sie sich an den PieCed-Support für die Einrichtung.", "clientIdLabel": "Google OAuth Client-ID", "clientIdPlaceholder": "xxxxxxxxxxx.apps.googleusercontent.com", "clientSecretLabel": "Google OAuth Client-Secret", "clientSecretPlaceholder": "GOCSPX-…", "refreshTokenLabel": "Google OAuth Refresh-Token", "refreshTokenPlaceholder": "1//0g…", "instructions": "Google Workspace nutzt OAuth. Erstellen Sie einen OAuth-Client in Ihrem Google-Cloud-Projekt, autorisieren Sie ihn mit den benötigten Scopes (Gmail, Kalender, Drive usw.) und fügen Sie die Zugangsdaten unten ein. Mit dem Absenden werden sie sicher gespeichert und Ihre Aktivierung zur Admin-Prüfung eingereiht — nach Genehmigung wird die Integration automatisch aktiviert.", "disclaimer": "Mit der Aktivierung der Google-Workspace-Integration autorisieren Sie PieCed, in Ihrem Namen auf Gmail, Kalender, Drive, Docs, Sheets und Kontakte zuzugreifen. Daten fliessen über die Google-APIs, vorbehaltlich der Google-Bedingungen." }, "mail": { "description": "E-Mails über IMAP lesen, suchen und verwalten; senden über SMTP. Funktioniert mit Gmail (mit App-Passwort), Outlook, Fastmail und jedem standardkonformen IMAP/SMTP-Host.", "imapHostLabel": "IMAP-Host", "imapHostPlaceholder": "imap.example.com", "imapUserLabel": "IMAP-Benutzername", "imapUserPlaceholder": "benutzer@example.com", "imapPassLabel": "IMAP-Passwort", "imapPassPlaceholder": "••••••••", "smtpHostLabel": "SMTP-Host", "smtpHostPlaceholder": "smtp.example.com", "smtpUserLabel": "SMTP-Benutzername", "smtpUserPlaceholder": "benutzer@example.com", "smtpPassLabel": "SMTP-Passwort", "smtpPassPlaceholder": "••••••••", "instructions": "1. Für Gmail: Aktivieren Sie die 2-Faktor-Authentifizierung, erstellen Sie dann unter https://myaccount.google.com/apppasswords ein App-Passwort und verwenden Sie es als IMAP- und SMTP-Passwort.\n2. Für Outlook / Microsoft 365 mit MFA: Generieren Sie ein App-Passwort in den Sicherheitseinstellungen Ihres Kontos.\n3. Für andere Anbieter: Konsultieren Sie deren IMAP/SMTP-Dokumentation für Hostnamen und Ports.\n4. Typische IMAP-Hosts: imap.gmail.com, outlook.office365.com.\n5. Typische SMTP-Hosts: smtp.gmail.com, smtp.office365.com.", "disclaimer": "Der Assistent erhält Lese- und Schreibzugriff auf das von Ihnen konfigurierte Postfach. Verwenden Sie eine dedizierte Adresse anstelle eines persönlichen Postfachs, wenn Sie den Umfang einschränken möchten." }, "threema": { "description": "Senden und empfangen Sie Nachrichten über Threema. Jede eingehende und ausgehende Nachricht läuft über den gemeinsamen PieCed-Messaging-Dienst und verursacht eine Gebühr pro Nachricht bei Threema — eine Drittanbieter-Kostenposition, unabhängig von Ihrem PieCed-Abonnement.", "instructions": "1. Aktivieren Sie dieses Paket.\n2. Öffnen Sie Threema auf Ihrem Telefon, scannen Sie den QR-Code unter Autorisierte Benutzer → threema und akzeptieren Sie den Kontakt.\n3. Tragen Sie Ihre eigene Threema-ID unter Autorisierte Benutzer → threema ein, damit der Assistent Ihre Nachrichten erkennt.\n4. Schreiben Sie eine Nachricht aus Threema, um das Gespräch zu beginnen.", "disclaimer": "Nachrichten zwischen Threema und PieCed werden Ende-zu-Ende verschlüsselt bis zum PieCed-Messaging-Dienst, wo sie entschlüsselt und an Ihren Assistenten weitergeleitet werden. Jede gesendete oder empfangene Nachricht wird gemäss Threema-Tarif pro Nachricht abgerechnet — die aktuellen Preise finden Sie in Ihrem Plan." }, "manualReviewPending": "Manuelle Prüfung ausstehend", "withdraw": "Zurückziehen", "activationRejected": "Abgelehnt", "tryAgain": "Erneut versuchen", "credentialsSaved": "Zugangsdaten gespeichert", "credentialsSavedTip": "Die eingegebenen Zugangsdaten sind sicher gespeichert und werden verwendet, sobald die Aktivierung vom Admin genehmigt wurde. Sie müssen sie nicht erneut eingeben." }, "admin": { "title": "Plattform-Admin", "subtitle": "Onboarding-Anfragen und Mandanten-Lebenszyklus verwalten", "allTenants": "Mandanten", "noTenants": "Noch keine Mandanten bereitgestellt.", "noAccess": "Unzureichende Berechtigungen für diese Ansicht.", "name": "Name", "displayName": "Anzeigename", "phase": "Phase", "packages": "Pakete", "created": "Erstellt", "manage": "Verwalten", "requests": "Anfragen", "pendingRequests": "Offene Anträge", "approve": "Genehmigen", "reject": "Ablehnen", "reApprove": "Erneut genehmigen", "company": "Firma", "contact": "Kontakt", "agentName": "Agent", "status": "Status", "submitted": "Eingereicht", "updated": "Aktualisiert", "actions": "Aktionen", "noRequests": "Keine Anfragen gefunden.", "loadingRequests": "Anfragen werden geladen…", "approveConfirm": "Diesen Antrag genehmigen und Bereitstellung starten?", "rejectConfirm": "Diesen Antrag ablehnen?", "rejectTitle": "Anfrage ablehnen", "adminNotesLabel": "Notizen (optional)", "adminNotesPlaceholder": "Grund der Ablehnung…", "cancelAction": "Abbrechen", "confirmReject": "Ablehnen", "viewTenant": "Anzeigen", "filter_all": "Alle", "filter_pending": "Ausstehend", "filter_provisioning": "Bereitstellung", "filter_approved": "Genehmigt", "filter_rejected": "Abgelehnt", "totalTenants": "Gesamt", "running": "Aktiv", "provisioning": "Bereitstellung", "errors": "Fehler", "suspend": "Suspendieren", "resume": "Fortsetzen", "suspended": "Suspendiert", "suspendedBadge": "SUSPENDIERT", "deleteTenant": "Löschen", "deleteTitle": "Mandant löschen", "deleteWarning": "Dies löscht den Mandanten, seinen Namespace, Secrets und alle zugehörigen Daten unwiderruflich.", "confirmDelete": "Endgültig löschen", "loadingTenants": "Mandanten werden geladen…", "filter_deleted": "Gelöscht", "filter_active": "Aktiv", "health": "Status", "serviceHealth": "Dienststatus", "vllmDescription": "GPU-Inferenz-Engine", "litellmDescription": "LLM-Proxy & Kostenerfassung", "tenantOverview": "Mandanten-Übersicht", "spendOverview": "Kostenübersicht", "globalSpend": "Gesamtkosten (CHF)", "activeTenants": "Aktive Mandanten", "tenantsWithSpend": "Mandanten mit erfassten Kosten", "refresh": "Aktualisieren", "healthUnavailable": "Statusdaten nicht verfügbar.", "loadingHealth": "Statusdaten werden geladen…", "statusHealthy": "OK", "statusDown": "Ausgefallen", "spendChf": "Kosten (CHF)", "resumeRequestBadge": "Wieder", "resumeRequestTooltip": "Reaktivierungsanfrage für einen bestehenden Tenant. Bei Genehmigung wird der Tenant wieder aktiviert; keine Provisionierung läuft.", "openclawTool": "OpenClaw-Versionen", "billingTool": "Abrechnung →", "skillsQueueTool": "Aktivierungs-Warteschlange", "cronTool": "Automatisierung" }, "channelUsers": { "title": "Autorisierte Benutzer", "description": "Verwalten Sie, welche Benutzer mit Ihrem Assistenten auf jedem Kanal interagieren können. Fügen Sie die numerische Benutzer-ID hinzu, um den Zugang zu autorisieren.", "users": "Benutzer", "placeholder": "Numerische Benutzer-ID eingeben…", "add": "Hinzufügen", "remove": "Entfernen", "alreadyAdded": "Diese Benutzer-ID ist bereits autorisiert.", "telegramIdHelp": "So finden Sie Ihre Telegram-Benutzer-ID:\n1. Öffnen Sie Telegram und schreiben Sie @userinfobot\n2. Der Bot antwortet sofort mit Ihrer numerischen ID\n3. Geben Sie diese Nummer hier ein", "discordIdHelp": "So finden Sie Ihre Discord-Benutzer-ID:\n1. Aktivieren Sie den Entwicklermodus in den Discord-Einstellungen (Erweitert)\n2. Rechtsklick auf Ihren Namen → Benutzer-ID kopieren\n3. Geben Sie diese Nummer hier ein", "threemaIdHelp": "Geben Sie Ihre eigene Threema-ID ein — die 8 Zeichen, die in Ihrer Threema-App unter Einstellungen → Meine Threema-ID angezeigt werden. Anschliessend können Sie direkt aus Threema mit dem Assistenten chatten.", "threemaSetup": { "title": "Assistenten zu Threema hinzufügen", "step1": "Öffnen Sie Threema auf Ihrem Telefon.", "step2": "Tippen Sie auf das Scan-Symbol und scannen Sie diesen QR-Code, um den Assistenten als Kontakt hinzuzufügen.", "step3": "Fügen Sie anschliessend unten Ihre eigene Threema-ID hinzu.", "qrAlt": "QR-Code, um {gateway} als Threema-Kontakt hinzuzufügen", "bannerTitle": "Threema einrichten", "bannerBody": "Öffnen Sie Threema auf Ihrem Telefon und scannen Sie unseren QR-Code, um den Assistenten als Kontakt hinzuzufügen. Geben Sie anschliessend unten Ihre eigene Threema-ID ein.", "bannerButton": "QR-Code anzeigen" } }, "team": { "title": "Team", "description": "Verwalten Sie die Mitglieder Ihrer Organisation. Laden Sie Kollegen ein und weisen Sie sie Instanzen zu.", "inviteSectionTitle": "Mitglied einladen", "membersSectionTitle": "Mitglieder", "noMembers": "Noch keine Mitglieder.", "you": "Sie", "noRole": "keine Rolle", "givenName": "Vorname", "familyName": "Nachname", "email": "E-Mail", "role": "Rolle", "roleUser": "Benutzer (nur Lesezugriff, muss Instanzen zugewiesen werden)", "roleOwner": "Eigentümer (Vollzugriff auf alle Instanzen)", "roleHint": "Eigentümer können Instanzen, Abrechnung und Teammitglieder verwalten. Benutzer können nur die ihnen zugewiesenen Instanzen anzeigen.", "inviteButton": "Einladung senden", "inviteSent": "Einladung gesendet. Der Benutzer erhält eine E-Mail mit einem Link zum Festlegen des Passworts.", "inviteUserExists": "Ein Benutzer mit dieser E-Mail-Adresse ist bereits registriert.", "changeRole": "Rolle ändern", "roleUpdated": "Rolle aktualisiert.", "roleUpdateFailed": "Rolle konnte nicht aktualisiert werden.", "cancel": "Abbrechen", "save": "Speichern", "selfChangeBlocked": "Sie können Ihre eigene Rolle nicht ändern." }, "assignments": { "loading": "Zuweisungen werden geladen…", "noneAssigned": "Dieser Instanz sind noch keine Benutzer zugewiesen.", "noCandidates": "Keine Teammitglieder verfügbar zum Zuweisen. Laden Sie zuerst Benutzer auf der Team-Seite ein.", "pickUser": "Benutzer auswählen…", "assign": "Zuweisen", "revoke": "Entfernen" }, "countries": { "CH": "Schweiz", "DE": "Deutschland", "AT": "Österreich", "FR": "Frankreich", "IT": "Italien", "LI": "Liechtenstein" }, "phase": { "Pending": "Ausstehend", "Provisioning": "Wird bereitgestellt", "Running": "Aktiv", "Ready": "Bereit", "Suspended": "Pausiert", "Error": "Fehler", "Deleting": "Wird gelöscht", "Reconfiguring": "Wird neu konfiguriert" }, "warnings": { "oneTooltip": "1 Warnung", "manyTooltip": "{count} Warnungen" }, "settings": { "title": "Einstellungen", "subtitle": "Organisationsweite Konfiguration, die für alle Ihre Tenants gilt.", "billingTitle": "Abrechnung", "billingDescription": "Adresse, MWST-Nummer und Rechnungs-E-Mail für alle Ihre Tenants.", "nothingForYou": "Für Ihre Rolle gibt es hier noch nichts. Inhaber können Organisationseinstellungen verwalten.", "billingDescriptionPersonal": "Adresse und Rechnungs-E-Mail für alle Ihre Tenants." }, "settingsBilling": { "title": "Rechnungsdaten", "subtitle": "Rechnungsadresse, MWST-Nummer und Rechnungskontakt Ihres Unternehmens. Erforderlich, bevor Rechnungen für Ihre Organisation ausgestellt werden können.", "companyNameLabel": "Firmenname", "streetAddressLabel": "Strasse und Hausnummer", "postalCodeLabel": "PLZ", "cityLabel": "Ort", "countryLabel": "Ländercode", "countryHint": "ISO 3166-1 alpha-2 — z.B. CH, DE, AT, FR, IT, GB, US", "vatNumberLabel": "MWST-Nummer (optional)", "vatNumberHint": "Für Schweizer Kunden: CHE-XXX.XXX.XXX MWST. EU-Kunden mit USt-IdNr. erhalten eine Reverse-Charge-Rechnung (0% MWST).", "billingEmailLabel": "Rechnungs-E-Mail", "billingEmailHint": "Rechnungen und Zahlungserinnerungen werden an diese Adresse gesendet. Kann von Ihrer Konto-E-Mail abweichen.", "notesLabel": "Bemerkungen (optional)", "notesHint": "Referenznummern, Bestellnummern oder andere Angaben, die auf der Rechnung erscheinen sollen.", "saveChanges": "Änderungen speichern", "createBilling": "Rechnungsdaten speichern", "saving": "Speichern…", "saved": "Gespeichert.", "missingRequired": "Bitte alle Pflichtfelder ausfüllen.", "invalidCountry": "Ländercode muss aus 2 Buchstaben bestehen (z.B. CH).", "invalidEmail": "Bitte eine gültige E-Mail-Adresse eingeben.", "fullNameLabel": "Vor- und Nachname", "subtitlePersonal": "Ihre Rechnungsadresse und Rechnungskontakt. Erforderlich, bevor Rechnungen ausgestellt werden können." }, "support": { "title": "Support", "subtitle": "Erstellen Sie ein Ticket, um eine Frage zu stellen, einen Fehler zu melden oder Feedback zu geben. Antworten gehen an Ihre registrierte E-Mail-Adresse.", "titleAdmin": "Support-Warteschlange", "subtitleAdmin": "Tickets aller Kunden, neueste Aktivität zuerst.", "newTicket": "Neues Ticket", "newTicketTitle": "Support-Ticket erstellen", "newTicketSubtitle": "Erzählen Sie uns, was los ist. Je mehr Details, desto schneller können wir helfen.", "empty": "Sie haben noch keine Tickets erstellt.", "emptyAdmin": "Keine Support-Tickets in der Warteschlange.", "fieldCategory": "Kategorie", "fieldTitle": "Titel", "fieldDescription": "Beschreibung", "fieldStatus": "Status", "titlePlaceholder": "Kurze Zusammenfassung Ihres Anliegens", "descriptionPlaceholder": "Beschreiben Sie, was passiert ist, was Sie erwartet haben, und alle Fehlermeldungen.", "descriptionHelp": "Sie können Fehlermeldungen und Logs einfügen. Bitte keine Passwörter oder andere Geheimnisse.", "submitTicket": "Ticket senden", "createFailed": "Ticket konnte nicht erstellt werden. Bitte erneut versuchen.", "category_bug": "Fehler", "category_feature_request": "Feature-Wunsch", "category_question": "Frage", "category_billing": "Abrechnung", "category_other": "Sonstiges", "status_open": "Offen", "status_in_progress": "In Bearbeitung", "status_waiting_for_customer": "Warten auf Ihre Antwort", "status_resolved": "Erledigt", "status_reopened": "Wieder geöffnet", "openedBy": "Eröffnet von {name} am {when}", "authorTagAdmin": "PieCed-Support", "replyLabel": "Antwort hinzufügen", "replyPlaceholder": "Ihre Nachricht…", "replyPlaceholderReopen": "Antwort (dies öffnet das Ticket erneut)…", "sendReply": "Antwort senden", "commentFailed": "Antwort konnte nicht gesendet werden. Bitte erneut versuchen.", "closeTicket": "Als erledigt markieren", "confirmClose": "Dieses Ticket als erledigt markieren? Sie können es später durch eine Antwort wieder öffnen.", "closeFailed": "Ticket konnte nicht geschlossen werden. Bitte erneut versuchen.", "resolvedBanner": "Dieses Ticket ist erledigt. Antworten Sie unten, falls Sie nachfragen möchten — das öffnet es erneut.", "adminControlsTitle": "Admin-Steuerung", "updateFailed": "Änderungen konnten nicht gespeichert werden. Bitte erneut versuchen." }, "openclawAdmin": { "title": "OpenClaw-Versionen", "subtitle": "Plattform-Standard-Tag und Tenant-spezifische Overrides für das Testen neuer Releases konfigurieren.", "defaultSection": "Plattform-Standard", "defaultDescription": "Wird von jedem Tenant ohne eigenen Override verwendet.", "fieldTag": "Tag", "emptyHint": "Leer lassen, um den eingebauten Operator-Standard zu verwenden.", "saveDefault": "Standard speichern", "defaultSaved": "Standard gespeichert. Tenants ohne Override übernehmen den Wert beim nächsten Reconcile.", "saveFailed": "Speichern fehlgeschlagen. Bitte erneut versuchen.", "overridesSection": "Tenant-Overrides", "noTenants": "Keine Tenants im Cluster.", "statusOverridden": "Override", "statusFollowsDefault": "Folgt Standard", "builtinFallback": "(eingebauter Fallback)", "defaultPrefix": "Standard:", "saveOverride": "Override speichern", "clearOverride": "Override entfernen" }, "adminBilling": { "title": "Abrechnungsverwaltung", "subtitle": "Plattform-Preise verwalten, Rechnungen generieren und den Rechnungsstatus aller Organisationen prüfen.", "backToAdmin": "Zurück zur Verwaltung", "backToBilling": "Zurück zur Abrechnung", "backToInvoices": "Zurück zu den Rechnungen", "totalOpenBalance": "Offener Saldo gesamt", "orgsWithBalance": "Organisationen mit Saldo", "overdueInvoices": "Überfällige Rechnungen", "pricingTitle": "Preise", "pricingDesc": "Plattform- & Skill-Preise, MWST-Satz.", "pricingPageDesc": "Plattformweite Preise und Skill-Tagespreise bearbeiten.", "generateTitle": "Rechnung erstellen", "generateDesc": "Rechnung für eine Organisation und einen Monat berechnen und ausstellen.", "generatePageDesc": "Organisation, Periode und Sprache wählen. Die Vorschau zeigt die berechneten Positionen; mit Bestätigen wird die Rechnung ausgestellt und das PDF erzeugt.", "invoicesTitle": "Rechnungen", "invoicesDesc": "Alle Rechnungen anzeigen, als bezahlt markieren, PDFs herunterladen.", "invoicesPageDesc": "Alle von der Plattform ausgestellten Rechnungen. Mit dem Statusfilter offene oder überfällige Positionen einsehen.", "balancesTitle": "Organisationen mit offenem Saldo", "orgIdCol": "Zitadel-Org-ID", "openCountCol": "Offen", "overdueCountCol": "Überfällig", "totalOpenCol": "Gesamt offen", "platformPricingTitle": "Plattform-Preise", "monthlyFeeLabel": "Monatliche Tenant-Gebühr", "setupFeeLabel": "Einrichtungsgebühr Tenant", "threemaMessageLabel": "Threema pro Nachricht", "vatRateLabel": "MWST-Satz (CH/LI)", "save": "Speichern", "saving": "Speichere…", "savedOk": "Gespeichert", "skillPricingTitle": "Paket-Preise", "skillPricingDesc": "Tagespreis und einmalige Einrichtungsgebühr für jedes Paket — Core, Kanal oder Skill. Die Preisgestaltung gilt für jeden Tenant, der das Paket aktiviert.", "skillCol": "Paket", "dailyPriceCol": "Tagespreis", "actionsCol": "", "remove": "Entfernen", "noSkillsPriced": "Noch keine Pakete bepreist.", "addSkillLabel": "Paket hinzufügen", "dailyPriceLabel": "Tagespreis", "add": "Hinzufügen", "confirmDeleteSkillPrice": "Preisgestaltung für {skill} entfernen? Bereits abgerechnete Zeiträume bleiben unberührt.", "clickToEdit": "Zum Bearbeiten klicken", "generateFormTitle": "Rechnung erstellen", "noOrgsToGenerate": "Keine Organisationen mit Tenants gefunden.", "orgLabel": "Organisation", "noBillingAddrTag": "keine Rechnungsadresse", "noBillingAddrWarning": "Diese Organisation hat keine Rechnungsadresse hinterlegt. Der Kunde muss /settings/billing ausfüllen, bevor eine Rechnung ausgestellt werden kann.", "tenantsLabel": "Tenants", "yearLabel": "Jahr", "monthLabel": "Monat", "localeLabel": "PDF-Sprache", "localeAuto": "Automatisch", "previewBtn": "Vorschau", "commitBtn": "Bestätigen & ausstellen", "computing": "Berechne…", "confirmGenerate": "Diese Rechnung ausstellen? Es wird eine Rechnungsnummer vergeben und das PDF erzeugt.", "previewTitle": "Entwurfsvorschau", "warningsTitle": "Hinweise", "noLinesGenerated": "Keine abrechenbaren Positionen für diese Periode.", "descCol": "Beschreibung", "qtyCol": "Menge", "unitPriceCol": "Einzelpreis", "amountCol": "Betrag (CHF)", "subtotal": "Zwischensumme", "vat": "MWST", "total": "Total", "statusFilterLabel": "Status", "allStatuses": "Alle", "monthFilterLabel": "Periode", "clearFilter": "Zurücksetzen", "loading": "Lade…", "noInvoicesFound": "Keine Rechnungen entsprechen den aktuellen Filtern.", "invoiceNumberCol": "Nummer", "orgCol": "Organisation", "periodCol": "Periode", "statusCol": "Status", "totalCol": "Total", "dueCol": "Fällig", "status_draft": "Entwurf", "status_open": "Offen", "status_paid": "Bezahlt", "status_overdue": "Überfällig", "status_void": "Storniert", "status_uncollectible": "Uneinbringlich", "dueOnLabel": "Fällig", "totalLabel": "Total", "downloadPdfBtn": "PDF herunterladen", "markPaidBtn": "Als bezahlt markieren", "paidNotePlaceholder": "Optionale Notiz (z. B. Bankreferenz, Eingangsdatum)", "confirm": "Bestätigen", "cancel": "Abbrechen", "deleteBtn": "Löschen", "deleting": "Lösche…", "deleteHint": "Rechnung hart löschen (Test-Tool). Die Nummer bleibt vergeben.", "confirmDeleteInvoice": "Rechnung {num} löschen? Dies ist eine harte Löschung — die Rechnungsnummer bleibt verbraucht.", "paidOnLabel": "Bezahlt am", "lineItemsTitle": "Positionen", "billToSnapshotTitle": "Rechnungsempfänger", "setupFeeCol": "Einrichtungsgebühr", "skillSetupFeeLabel": "Einrichtungsgebühr" }, "skillCostDialog": { "title": "Aktivierungskosten bestätigen", "intro": "Die Aktivierung von {skill} verursacht folgende Kosten:", "setupFeeLabel": "Einrichtungsgebühr", "setupFeeNote": "Einmalig, nur bei erster Aktivierung", "monthlyPriceLabel": "Monatspreis", "monthlyPriceNote": "CHF {daily}/Tag aktiv; Teilmonate werden taggenau berechnet", "monthUnit": "Monat", "disclaimer": "Diese Kosten erscheinen auf Ihrer nächsten Monatsrechnung. Mit der Bestätigung stimmen Sie ihnen zu.", "cancel": "Abbrechen", "confirm": "Bestätigen & aktivieren", "confirming": "Aktiviere…" }, "adminSkills": { "title": "Aktivierungs-Warteschlange", "subtitle": "Kundenanfragen für Pakete, die manuelle plattformseitige Einrichtung benötigen. Genehmigen, sobald die Konfiguration steht; ablehnen mit Grund, wenn die Aktivierung nicht möglich ist.", "backToAdmin": "Zurück zur Verwaltung", "emptyQueue": "Keine ausstehenden Skill-Aktivierungsanfragen.", "requestedAtCol": "Angefragt", "skillCol": "Skill", "tenantCol": "Tenant", "orgCol": "Organisation", "actionsCol": "", "approveBtn": "Genehmigen", "rejectBtn": "Ablehnen", "confirmRejectBtn": "Ablehnung bestätigen", "working": "Arbeite…", "cancel": "Abbrechen", "reasonLabel": "Grund (wird dem Kunden angezeigt)", "reasonPlaceholder": "Erklären Sie, warum die Aktivierung nicht erfolgen kann — z. B. fehlende Kundendaten, Hardware nicht verfügbar usw.", "reasonRequired": "Ein Grund ist für die Ablehnung erforderlich." }, "customerBilling": { "title": "Abrechnung", "subtitle": "Aktueller Zeitraum und Rechnungshistorie. Ausgestellte Rechnungen stehen als PDF-Download bereit.", "backToBilling": "Zurück zur Abrechnung", "currentPeriodHeading": "Aktueller Zeitraum", "historyHeading": "Rechnungshistorie", "computing": "Berechne aktuellen Periodenbetrag…", "currentPeriodError": "Aktueller Periodenbetrag konnte nicht geladen werden. Bitte später erneut versuchen.", "noBillingConfig": "Abrechnungsdaten sind noch nicht hinterlegt. Sobald die Rechnungsadresse Ihrer Organisation eingetragen ist, erscheint hier der laufende Betrag.", "accruedSoFar": "Bisher in diesem Monat", "estimatedTotal": "Geschätzter Gesamtbetrag", "currentInvoiceIssued": "Aktueller Monat bereits abgerechnet", "refresh": "aktualisieren", "breakdownToggle": "Aufschlüsselung anzeigen ({count} Positionen)", "draftNote": "Live-Schätzung. Die endgültige Rechnung kann durch Monatsendrundung, nachgemeldete Nutzungsdaten oder manuelle Anpassungen leicht abweichen.", "emptyHistory": "Noch keine Rechnungen ausgestellt. Nach Abschluss Ihres ersten Monats erscheinen sie hier.", "numberCol": "Nummer", "periodCol": "Zeitraum", "dueCol": "Fällig", "totalCol": "Gesamt", "statusCol": "Status", "descriptionCol": "Beschreibung", "qtyCol": "Menge", "unitCol": "Einzelpreis", "amountCol": "Betrag", "billedToLabel": "Rechnungsempfänger", "issuedAtLabel": "Ausgestellt", "dueAtLabel": "Zahlbar bis", "paidAtLabel": "Bezahlt am", "subtotalLabel": "Zwischensumme", "vatLabel": "MWST ({rate}%)", "totalLabel": "Gesamt", "downloadPdf": "PDF herunterladen", "status": { "draft": "Entwurf", "open": "Offen", "paid": "Bezahlt", "overdue": "Überfällig", "void": "Storniert", "uncollectible": "Uneinbringlich" }, "payWithCard": "Mit Karte bezahlen", "redirectingToStripe": "Weiterleitung…", "paymentReceived": "Zahlung erhalten — vielen Dank!", "paymentCancelled": "Zahlung abgebrochen.", "configureBillingCta": "Rechnungsdaten einrichten", "noBillingConfigNonOwner": "Nur der Organisations-Owner kann die Rechnungsdaten einrichten. Bitte wenden Sie sich an diese Person, um diesen Schritt abzuschliessen." }, "adminCron": { "title": "Abrechnungsautomatisierung", "subtitle": "Monatliche Rechnungsstellung und tägliche Mahnungsläufe. Beides läuft automatisch; mit den Schaltflächen unten können Sie einen Lauf manuell auslösen.", "monthlyIssue": "Monatliche Rechnungsstellung", "reminders": "Mahnungen", "scheduleIssueLabel": "Zeitplan", "scheduleIssueValue": "00:30 Europe/Zurich am 1.", "scheduleReminderLabel": "Zeitplan", "scheduleReminderValue": "09:00 Europe/Zurich täglich", "lastSuccess": "Letzter Erfolg", "never": "nie", "runIssueNow": "Letzten Monat jetzt abrechnen", "runRemindersNow": "Mahnungslauf jetzt starten", "running": "Läuft…", "flashIssueOk": "Rechnungsstellung abgeschlossen: {success} Rechnungen erstellt, {skipped} übersprungen, {failure} fehlgeschlagen.", "flashRemindersOk": "Mahnungen versendet: {success} erfolgreich, {skipped} übersprungen, {failure} fehlgeschlagen.", "recentRuns": "Letzte Läufe (max. 30)", "noRunsYet": "Noch keine Automatisierungsläufe erfasst.", "startedCol": "Gestartet", "kindCol": "Art", "triggeredByCol": "Ausgelöst von", "okCol": "OK", "skipCol": "Übersprungen", "failCol": "Fehler", "triggeredByCron": "Cron", "kind": { "monthly_issue": "Rechnungsstellung", "reminders": "Mahnungen" }, "failureBannerTitle": "Fehler in jüngsten Automatisierungsläufen", "failureBannerBody": "{count} Lauf/Läufe im aktuellen Fenster haben mindestens einen Fehler gemeldet. Bitte die Tabelle unten prüfen — betroffene Zeilen sind rot hervorgehoben." } }