{ "integrations": { "accounting": { "dialog": { "cancel": "Abbrechen", "enterPlaceholder": "{{field}} eingeben...", "errors": { "enterExternal": "Bitte geben Sie {{field}} ein.", "invalidJson": "Ungültiges JSON-Format für Metadaten.", "saveFailed": "Zuordnung konnte nicht gespeichert werden.", "selectAlga": "Bitte wählen Sie {{field}} aus.", "selectExternal": "Bitte wählen Sie {{field}} aus." }, "manualEntryHelp": "Geben Sie die Kennung genau so ein, wie sie in Ihrem Buchhaltungssystem erscheint.", "metadataLabel": "Metadaten (JSON)", "metadataPlaceholder": "Optionale Metadaten als JSON", "realmIdLabel": "Realm-ID", "saveMapping": "Zuordnung speichern", "saving": "Speichern…", "selectPlaceholder": "{{field}} auswählen..." }, "manager": { "noModules": "Keine Zuordnungsmodule konfiguriert." }, "moduleView": { "actionsColumn": "Aktionen", "delete": "Löschen", "edit": "Bearbeiten", "errors": { "deleteFailed": "Zuordnung konnte nicht gelöscht werden.", "loadFailed": "Zuordnungen konnten nicht geladen werden." }, "loading": "Zuordnungen werden geladen…", "noMappings": "Keine Zuordnungen gefunden.", "notAvailable": "n/v", "openMenu": "Menü öffnen" }, "setup": { "activeConfiguration": "Aktive Konfiguration", "badges": { "enterprise": "Enterprise" }, "comingSoon": "Demnächst verfügbar", "configure": "Integration konfigurieren", "highlightValues": { "csv": "CSV", "instant": "Sofort", "live": "Live", "manual": "Manuell", "twoWay": "Bidirektional" }, "highlights": { "delivery": "Übertragung", "export": "Export", "format": "Format", "sync": "Synchronisation" }, "options": { "qbo": { "description": "Verbinden Sie Ihr Realm, um Rechnungen zu synchronisieren und Zuordnungen zu verwalten." }, "qboCsv": { "description": "Exportieren Sie Rechnungen als CSV für den manuellen Import in QuickBooks und importieren Sie Steuerdaten aus Berichten." }, "xero": { "description": "Verbinden Sie Ihre Organisation mit tenant-eigenen OAuth-Anmeldedaten für Live-Buchhaltungsexporte und Zuordnungen." }, "xeroCsv": { "description": "Exportieren Sie Rechnungen als CSV für den manuellen Import in Xero und importieren Sie Steuerdaten aus Xero-Berichten." } }, "selected": "{{title}} ausgewählt", "unavailable": { "description": "Diese Integration ist noch nicht verfügbar. Wählen Sie QuickBooks CSV oder Xero CSV aus, um manuelle Exporte zu konfigurieren.", "title": "Konfiguration nicht verfügbar" } }, "modules": { "tabs": { "clients": "Kunden", "itemsServices": "Artikel / Dienstleistungen", "taxCodes": "Steuercodes", "paymentTerms": "Zahlungsbedingungen" } } }, "calendar": { "enterprise": { "loading": "Kalendereinstellungen werden geladen..." } }, "csv": { "export": { "actions": { "exportCsv": "CSV exportieren", "generating": "Wird generiert..." }, "description": "Rechnungen als CSV-Datei für den manuellen Import in QuickBooks exportieren.", "errors": { "configureMissingMappings": "Konfigurieren Sie die fehlenden Zuordnungen oben und wiederholen Sie den Export.", "failed": "Export fehlgeschlagen", "missingItemMapping": "Fehlende Artikelzuordnung", "missingItemMappingId": "Fehlende Artikelzuordnung ({{serviceId}})", "missingItemMappingNamed": "Fehlende Artikelzuordnung: {{serviceName}}" }, "fields": { "dateRange": "Datumsbereich (optional)", "invoiceStatuses": "Rechnungsstatus" }, "lockReset": { "actions": { "reset": "Export-Sperre zurücksetzen" }, "description": "Export-Sperren löschen, um Rechnungen erneut per CSV exportieren zu können.", "dialog": { "cancel": "Abbrechen", "confirm": "Sperre zurücksetzen", "confirmBatch": "Dadurch kann Alga PSA Rechnungen aus Batch {{batchId}} erneut exportieren. Wenn einige dieser Rechnungen noch in QuickBooks existieren, kann der Import der CSV-Datei Duplikate erzeugen.", "confirmInvoice": "Dadurch kann Alga PSA Rechnung {{invoiceNumber}} erneut exportieren. Wenn diese Rechnung noch in QuickBooks existiert, kann der Import der CSV-Datei Duplikate erzeugen.", "resetting": "Wird zurückgesetzt…", "title": "Export-Sperre zurücksetzen?", "warning": "Fahren Sie nur fort, wenn Sie sicher sind, dass die Rechnung nicht importiert wurde oder Sie sie in QuickBooks gelöscht/storniert haben." }, "errors": { "unable": "Export-Sperre konnte nicht zurückgesetzt werden" }, "fields": { "batchId": "Export-Batch-ID", "batchIdPlaceholder": "z. B. e793a514-34bd-4d7b-b266-9bb15f7087c4", "invoiceNumber": "Rechnungsnummer", "invoiceNumberPlaceholder": "z. B. INV-1001" }, "modes": { "ariaLabel": "Modus für Zurücksetzen der Export-Sperre", "batch": "Batch", "invoice": "Rechnung" }, "success": { "batchCleared": "Export-Sperren für diesen Batch wurden entfernt. Sie können diese Rechnungen erneut exportieren.", "invoiceCleared": "Export-Sperre entfernt. Sie können diese Rechnung erneut exportieren.", "noBatchLocks": "Für diesen Batch wurden keine Export-Sperren gefunden.", "noInvoiceLock": "Für diese Rechnung wurde keine Export-Sperre gefunden." }, "title": "Rechnung erneut exportieren", "warnings": { "duplicates": "Dies kann zu Duplikaten in QuickBooks führen, wenn die Rechnung dort noch existiert." } }, "success": { "one": "{{count}} Rechnung nach {{filename}} exportiert", "other": "{{count}} Rechnungen nach {{filename}} exportiert" }, "title": "CSV-Export für QuickBooks" }, "preview": { "duplicates": { "description": "Die folgenden Rechnungen erscheinen mehrfach. Ihre Steuerbeträge werden summiert:", "title": "Doppelte Rechnungen ({{count}})" }, "errors": { "more": "... und {{count}} weitere Fehler", "title": "Fehler ({{count}})" }, "importResults": "Import-Ergebnisse", "importSummary": { "difference": "Differenz:", "failedUpdates": "Fehlgeschlagene Aktualisierungen:", "importedTax": "Importierte Steuer:", "originalTax": "Ursprüngliche Steuer:", "successfulUpdates": "Erfolgreiche Aktualisierungen:", "title": "Import-Zusammenfassung" }, "rowLabel": "Zeile {{row}}:", "stats": { "matchedInvoices": "Zugeordnete Rechnungen", "totalRows": "Zeilen insgesamt", "uniqueInvoices": "Eindeutige Rechnungen", "validRows": "Gültige Zeilen" }, "status": { "databaseMatch": "Datenbanktreffer", "rowData": "Zeilendaten", "structure": "Struktur" }, "validationPassed": { "one": "Validierung erfolgreich. Bereit zum Importieren der Steuerdaten für {{count}} Rechnung.", "other": "Validierung erfolgreich. Bereit zum Importieren der Steuerdaten für {{count}} Rechnungen." }, "validationResults": "Validierungsergebnisse", "warnings": { "more": "... und {{count}} weitere Warnungen", "title": "Warnungen ({{count}})" } }, "settings": { "exports": { "description": "Export-Batches erstellen, CSV-Dateien herunterladen, Steuerberichte importieren und den Exportverlauf einsehen.", "managedTitle": "Verwaltet über Abrechnung", "openButton": "Buchhaltungsexporte öffnen", "path": "Abrechnung → Buchhaltungsexporte", "title": "Buchhaltungsexporte" }, "qbo": { "bullets": { "exportLabel": "Export", "exportText": "CSV-Dateien generieren, die mit der Rechnungsimport-Funktion von QuickBooks kompatibel sind", "taxImportLabel": "Steuerimport", "taxImportText": "Bei Verwendung einer externen Steuerberechnung Steuerbeträge aus QuickBooks-Steuerberichten importieren" }, "description": "Rechnungen als CSV für den manuellen Import in QuickBooks exportieren und Steuerdaten aus QuickBooks-Berichten importieren.", "exports": { "managedPrefix": "Gehen Sie zu", "managedSuffix": "um Rechnungen auszuwählen, QuickBooks-CSV-Exporte zu generieren, Steuerberichte zu importieren und Batches zu verwalten." }, "intro": "Diese Integration bietet eine Alternative zur OAuth-basierten QuickBooks-Anbindung:", "mappings": { "description": "Ordnen Sie Alga-Kunden, Dienstleistungen, Steuercodes und Zahlungsbedingungen den in Ihrer QuickBooks-Firma verwendeten Kennungen zu. Diese Werte werden beim Generieren des CSV-Exports verwendet.", "title": "QuickBooks-CSV-Zuordnungen" }, "note": "Hinweis: Konfigurieren Sie die Zuordnungen unten, bevor Sie exportieren. CSV-Exporte und Steuerimporte werden über Abrechnung → Buchhaltungsexporte verwaltet.", "title": "QuickBooks-CSV-Integration" } }, "taxImport": { "actions": { "importTaxData": "Steuerdaten importieren", "importing": "Wird importiert...", "validate": "Validieren", "validating": "Wird validiert..." }, "errors": { "importFailed": "Import fehlgeschlagen", "readFile": "Datei konnte nicht gelesen werden", "selectFile": "Bitte wählen Sie eine CSV-Datei aus", "selectFileAndRange": "Bitte wählen Sie eine Datei und einen Datumsbereich aus", "templateDownloadFailed": "Vorlage konnte nicht heruntergeladen werden", "validationFailed": "Validierung fehlgeschlagen" }, "fields": { "csvFile": "CSV-Datei", "dateRangeHelp": "Nur Rechnungen innerhalb dieses Datumsbereichs werden verarbeitet.", "dateRangeRequired": "Datumsbereich (erforderlich)", "dropZone": "CSV-Datei hierher ziehen oder klicken, um zu durchsuchen", "fileSize": "({{size}} KB)" }, "preview": { "alreadyImported": "Für {{count}} Rechnung(en) wurden bereits Steuerdaten importiert.", "alreadyImportedSkip": "Für {{count}} Rechnung(en) wurden bereits Steuerdaten importiert und werden übersprungen.", "badges": { "databaseMatch": "Datenbanktreffer", "rowData": "Zeilendaten", "structure": "Struktur" }, "columns": { "algaInvoice": "Alga-Rechnung", "contact": "Kontakt", "status": "Status", "taxAmount": "Steuerbetrag", "xeroInvoice": "Xero-Rechnung" }, "errorsTitle": "Fehler ({{count}})", "matched": "Zugeordnet", "matchedInvoices": "Zugeordnete Rechnungen", "notPendingDescription": "Diese Rechnungen wurden mit interner Steuerberechnung erstellt. Um Steuern aus Xero zu importieren, müssen Rechnungen beim Export mit der Steuerquelle „Ausstehend extern“ konfiguriert sein.", "notPendingSkip": "{{count}} Rechnung(en) haben keine ausstehende externe Steuer und werden übersprungen.", "notPendingTitle": "{{count}} Rechnung(en) verwenden keine externe Steuerberechnung.", "showingFirst20": "Zeige erste 20 von {{count}} Zeilen", "taxToImport": "Zu importierende Steuer", "title": "Validierungsergebnisse", "totalRows": "Zeilen insgesamt", "uniqueInvoices": "Eindeutige Rechnungen", "unmatched": "Nicht zugeordnet", "validRows": "Gültige Zeilen", "warningsTitle": "Warnungen ({{count}})" }, "qbo": { "description": "Steuerbeträge aus einer CSV-Datei eines QuickBooks-Steuerberichts importieren.", "help": { "csvRequirement": "Die CSV muss die Spalten Rechnungsnummer, Rechnungsdatum und Steuerbetrag enthalten.", "downloadTemplate": "CSV-Vorlage herunterladen", "steps": { "s1": "Gehen Sie in QuickBooks zu Berichte > Alle Berichte", "s2": "Wählen Sie Umsatzsteuer-Verpflichtung oder Transaktionsdetails nach Konto", "s3": "Legen Sie den Datumsbereich passend zu Ihren exportierten Rechnungen fest", "s4": "Klicken Sie auf Exportieren und wählen Sie Export nach Excel oder Export nach CSV", "s5": "Speichern Sie die Datei und laden Sie sie hier hoch" }, "title": "So exportieren Sie Steuerdaten aus QuickBooks" }, "success": { "one": "Steuerdaten für {{count}} Rechnung erfolgreich importiert. Importierte Gesamtsteuer: ${{amount}}", "other": "Steuerdaten für {{count}} Rechnungen erfolgreich importiert. Importierte Gesamtsteuer: ${{amount}}" }, "title": "Steuern aus QuickBooks-CSV importieren" }, "result": { "failed": "{{count}} fehlgeschlagen.", "one": "Steuern für {{count}} Rechnung importiert. Importierte Gesamtsteuer: {{amount}}.", "other": "Steuern für {{count}} Rechnungen importiert. Importierte Gesamtsteuer: {{amount}}.", "skipped": "{{count}} übersprungen." }, "unified": { "description": "Steuerbeträge aus dem CSV-Export Ihres Buchhaltungssystems importieren.", "qbResult": { "one": "Steuerdaten für {{count}} Rechnung erfolgreich importiert. Importierte Gesamtsteuer: {{amount}}", "other": "Steuerdaten für {{count}} Rechnungen erfolgreich importiert. Importierte Gesamtsteuer: {{amount}}" }, "source": { "ariaLabel": "CSV-Importquelle", "quickbooks": "QuickBooks", "xero": "Xero" }, "title": "Steuern aus CSV importieren", "xeroCsvDescription": "Der exportierte CSV enthält Rechnungsnummer, Kontaktname, Zeilenbetrag, Steuerbetrag und Tracking-Kategorien.", "xeroHelp": { "note": "Hinweis: Es werden nur Rechnungen zugeordnet, die ursprünglich aus Alga PSA exportiert wurden (mit Tracking „Source System = AlgaPSA“).", "s1": "Gehen Sie in Xero zu Sales > Invoices", "s2": "Wählen Sie den Rechnungs-Tab, aus dem Sie exportieren möchten (z. B. Bezahlt, Offene Zahlung)", "s3": "(Optional) Klicken Sie auf „Search“, um nach Startdatum, Enddatum oder Datumstyp zu filtern", "s4": "Klicken Sie auf Export", "s5": "Xero lädt eine CSV-Datei auf Ihren Computer herunter", "s6": "Laden Sie diese CSV-Datei hier hoch" }, "xeroResult": { "one": "Steuern für {{count}} Rechnung importiert. Gesamt: {{amount}}.", "other": "Steuern für {{count}} Rechnungen importiert. Gesamt: {{amount}}." } }, "xero": { "description": "Steuerbeträge aus einer CSV-Datei des Xero Invoice Details Report importieren.", "dropZone": "Xero Invoice Details Report CSV hierher ziehen oder klicken, um zu durchsuchen", "help": { "csvRequirement": "Der Bericht sollte Spalten für Rechnungsnummer, Kontaktname, Zeilenbetrag und Steuerbetrag enthalten. Rechnungen werden über das Reference-Feld oder die beim Export gesetzten Tracking-Kategorien zugeordnet.", "steps": { "s1": "Gehen Sie in Xero zu Reports > All Reports", "s2": "Wählen Sie Sales (Invoices and Revenue)", "s3": "Führen Sie den Invoice-Details-Bericht aus", "s4": "Legen Sie den Datumsbereich passend zu Ihren exportierten Rechnungen fest", "s5": "Klicken Sie auf Export und wählen Sie CSV", "s6": "Laden Sie die exportierte Datei hier hoch" }, "title": "So exportieren Sie Steuerdaten aus Xero" }, "title": "Steuern aus Xero-CSV importieren" } } }, "entra": { "settings": { "actions": { "disconnect": "Trennen", "reconnect": "Erneut verbinden", "reconnecting": "Wird erneut verbunden…", "refresh": "Aktualisieren", "resetFieldSync": "Zurücksetzen", "reviewMappings": "Zuordnungen prüfen", "reviewRemap": "Prüfen / Neu zuordnen", "hideReviewRemap": "Prüfen / Neu zuordnen ausblenden", "runDiscovery": "Discovery ausführen", "runDiscoveryAgain": "Discovery erneut ausführen", "runDiscoveryRunning": "Discovery wird ausgeführt…", "runInitialSync": "Initiale Synchronisation ausführen", "runInitialSyncRunning": "Initiale Synchronisation wird gestartet…", "saveFieldSync": "Feldsynchronisationssteuerung speichern", "savingFieldSync": "Wird gespeichert…", "syncAll": "Alle Tenants jetzt synchronisieren", "syncAllStarting": "Wird gestartet…" }, "badges": { "enterprise": "Enterprise", "reviewBeforeInitialSync": "Vor initialer Synchronisation prüfen" }, "connection": { "connectingSuffix": " (Verbindung wird hergestellt...)", "details": "Verbindungsdetails", "directCredentialSourceLabel": "Anmeldedatenquelle:", "directTenantDefault": "common (multi-tenant)", "directTenantLabel": "Microsoft Tenant:", "cippServerLabel": "CIPP-Server:", "notAvailable": "Nicht verfügbar", "notConfigured": "Nicht konfiguriert", "notConnectedStatus": "not_connected", "optionsTitle": "Verbindungsoptionen", "promptDetails": "Verbinden Sie Entra, um Anbieterdetails zu füllen." }, "currentStep": { "connect": { "guidance": "Wählen Sie eine Verbindungsoption, um das Onboarding fortzusetzen.", "title": "Schritt 1: Verbinden" }, "connectionsBelow": "Verbindungsoptionen werden unten angezeigt.", "discover": { "guidance": "Führen Sie Discovery aus, um verwaltete Entra-Tenants vor der Zuordnung zu laden.", "title": "Schritt 2: Erkennen" }, "label": "Aktueller Schritt", "map": { "guidance": "Bestätigen oder passen Sie Tenant-Zuordnungen an, um die initiale Synchronisation freizuschalten.", "title": "Schritt 3: Zuordnen" }, "sync": { "guidance": "Starten Sie den ersten Synchronisationslauf für bestätigte Zuordnungen.", "title": "Schritt 4: Initiale Synchronisation" } }, "description": "Konfigurieren Sie partnerseitigen Entra-Zugriff, erkennen Sie verwaltete Tenants, ordnen Sie sie Kunden zu und führen Sie Sync-Workflows aus.", "disabled": { "description": "Die Entra-Integrations-UI ist für diesen Tenant derzeit deaktiviert.", "title": "Microsoft Entra Integration" }, "discovery": { "completed": "Discovery abgeschlossen. {{count}} Tenants erkannt.", "completedOne": "Discovery abgeschlossen. {{count}} Tenant erkannt.", "failed": "Tenant-Discovery konnte nicht ausgeführt werden." }, "errors": { "loadStatus": "Entra-Verbindungsstatus konnte nicht geladen werden.", "unknown": "Unbekannter Fehler" }, "fieldSync": { "description": "Wählen Sie, welche Entra-Profilfelder lokale Kontaktfelder während der Synchronisation überschreiben dürfen.", "feedback": { "saveFailed": "Feldsynchronisationssteuerung konnte nicht gespeichert werden.", "saved": "Feldsynchronisationssteuerung gespeichert." }, "options": { "displayName": { "description": "Erlauben Sie dem Entra-Anzeigenamen, den vollständigen Namen verbundener Kontakte zu überschreiben.", "label": "Anzeigename" }, "email": { "description": "Erlauben Sie der Entra-E-Mail/UPN, die E-Mail-Adresse verbundener Kontakte zu überschreiben.", "label": "E-Mail" }, "phone": { "description": "Erlauben Sie Entra-Telefonwerten, die Telefonnummer verbundener Kontakte zu überschreiben.", "label": "Telefon" }, "role": { "description": "Erlauben Sie der Entra-Berufsbezeichnung, die Rolle verbundener Kontakte zu überschreiben.", "label": "Rolle" }, "upn": { "description": "Erlauben Sie der Entra-UPN, den gespeicherten Entra-Principal-Namen verbundener Kontakte zu überschreiben.", "label": "UPN" } }, "title": "Feldsynchronisationssteuerung" }, "guidedStep": { "current": "aktuell", "complete": "abgeschlossen", "locked": "gesperrt", "stepLabel": "Schritt {{number}}", "thisIsCurrent": "Dies ist Ihr aktueller Onboarding-Schritt." }, "initialSync": { "failed": "Initiale Entra-Synchronisation konnte nicht gestartet werden.", "started": "Initiale Synchronisation gestartet. Run-ID: {{runId}}", "startedNoId": "Anfrage zum Start der initialen Synchronisation akzeptiert." }, "maintenance": { "description": "Die initiale Einrichtung ist abgeschlossen. Konzentrieren Sie sich hier auf Sync-Operationen, Health-Checks und Wartungsprüfungen.", "healthDescription": "Überprüfen Sie die Verbindungsgesundheit, führen Sie Wartungsoperationen aus und überwachen Sie die Sync-Aktivität.", "healthTitle": "Health-Zusammenfassung", "title": "Modus für laufende Operationen" }, "mapping": { "description": "Überprüfen Sie vorgeschlagene Übereinstimmungen, wählen Sie für jeden Tenant den richtigen Kunden aus und bestätigen Sie die Zuordnungen vor der initialen Synchronisation.", "needsReviewLabel": "Benötigt Prüfung:", "savedLabel": "Gespeichert:", "selectedLabel": "Ausgewählt:", "skippedLabel": "Übersprungen:", "stepLabel": "Schritt 3", "title": "Tenants Kunden zuordnen" }, "onboarding": { "description": "Schließen Sie jeden Onboarding-Schritt der Reihe nach ab: verbinden, erkennen, zuordnen und dann die erste Synchronisation ausführen.", "title": "Einrichtungsmodus" }, "ongoing": { "description": "Verwenden Sie diese Steuerelemente für manuelle Sync-Operationen, nachdem die Onboarding-Schritte abgeschlossen sind.", "title": "Laufende Operationen" }, "overview": { "connectionLabel": "Verbindung:", "connectionTypeLabel": "Verbindungstyp:", "label": "Übersicht", "mappedTenantsLabel": "Zugeordnete Tenants:", "nextSyncIntervalEvery": "Alle {{minutes}} Minuten", "nextSyncIntervalLabel": "Nächstes Sync-Intervall:" }, "skipped": { "empty": "Derzeit sind keine Tenants als übersprungen markiert.", "noPrimaryDomain": "Keine primäre Domain", "remap": "Neu zuordnen", "title": "Übersprungene Tenants" }, "status": { "connectionHealth": "Verbindungsgesundheit", "label": "Status" }, "syncAll": { "failed": "Vollständige Entra-Synchronisation konnte nicht gestartet werden.", "started": "Synchronisation gestartet. Run-ID: {{runId}}", "startedNoId": "Anfrage zum Synchronisationsstart akzeptiert." }, "title": "Microsoft Entra Integration", "validation": { "label": "Validierung & Discovery", "lastDiscoveryLabel": "Letzte Discovery:", "lastValidatedLabel": "Zuletzt validiert:", "neverFormatted": "Nie", "noneValidationError": "Keiner", "validationErrorLabel": "Validierungsfehler:" }, "wizard": { "connect": { "description": "Autorisieren Sie die Direct Microsoft Partner Auth, um diesen Entra-Tenant zu verknüpfen.", "title": "Verbinden" }, "discover": { "description": "Verwaltete Entra-Tenants für diesen MSP-Tenant laden und persistieren.", "title": "Tenants erkennen" }, "map": { "description": "Auto-Match-Vorschläge prüfen und Zuordnungen bestätigen.", "title": "Tenants Kunden zuordnen" }, "sync": { "description": "Starten Sie den ersten Synchronisationslauf für bestätigte Zuordnungen.", "title": "Initiale Synchronisation" } } }, "tenantMapping": { "actions": { "confirmSelected": "Ausgewählte Zuordnungen bestätigen", "confirming": "Wird bestätigt…", "import": "Als neuen Kunden importieren", "importing": "Wird importiert…", "preselectExact": "Exakte Übereinstimmungen vorauswählen", "refresh": "Vorschau aktualisieren", "skip": "Überspringen", "skipped": "Übersprungen" }, "columns": { "actions": "Aktionen", "confidence": "Konfidenz", "entraTenant": "Entra-Tenant", "primaryDomain": "Primäre Domain", "selectClient": "Kunden auswählen", "status": "Status", "suggestedClient": "Vorgeschlagener Kunde" }, "empty": "Keine erkannten Tenants für die Zuordnungsvorschau verfügbar.", "errors": { "confirmFailed": "Ausgewählte Zuordnungen konnten nicht bestätigt werden.", "importFailed": "Tenant konnte nicht als Kunde importiert werden.", "loadFailed": "Tenant-Zuordnungsvorschau konnte nicht geladen werden.", "selectAtLeastOne": "Wählen Sie mindestens einen Kunden aus, um eine Zuordnung zu bestätigen.", "skipFailed": "Diese Tenant-Zuordnung konnte nicht übersprungen werden." }, "feedback": { "confirmed": "{{count}} Zuordnungen bestätigt.", "confirmedOne": "{{count}} Zuordnung bestätigt." }, "noSuggestion": "Kein Vorschlag", "picker": { "placeholder": "Kunden auswählen...", "unknownClient": "Unbekannter Kunde" }, "reasons": { "exactDomain": "Exakte Domain", "fuzzyName": "Unscharfer Name", "secondaryDomain": "Sekundäre Domain" }, "states": { "autoMatched": "Automatisch zugeordnet", "imported": "Importiert", "needsReview": "Benötigt Prüfung", "skipped": "Übersprungen", "unmatched": "Nicht zugeordnet" }, "title": "Tenant-Zuordnungsvorschau" }, "cippDialog": { "actions": { "cancel": "Abbrechen", "connect": "Verbinden", "connecting": "Verbindung wird hergestellt..." }, "description": "Geben Sie Ihre CIPP-Instanz-URL und ein API-Token ein, damit Alga Entra-Daten erkennen und synchronisieren kann.", "errors": { "missingFields": "Sowohl Basis-URL als auch API-Token sind erforderlich.", "unknown": "Ein unbekannter Fehler ist aufgetreten." }, "fields": { "apiToken": "API-Token", "apiTokenPlaceholder": "Token eingeben...", "baseUrl": "CIPP-Basis-URL", "baseUrlPlaceholder": "https://cipp.yourdomain.com" }, "title": "CIPP verbinden" }, "reconciliation": { "actions": { "refresh": "Aktualisieren", "resolveExisting": "Auf bestehenden Kontakt auflösen", "resolveNew": "Auf neuen Kontakt auflösen" }, "candidate": { "fallback": "Kandidat", "label": "Kandidaten-Kontakte: {{count}}" }, "contactPicker": { "label": "Bestehender Kontakt", "placeholder": "Bestehenden Kontakt auswählen..." }, "errors": { "enterContactId": "Geben Sie eine Kontakt-ID ein, um auf einen bestehenden Kontakt aufzulösen.", "loadQueue": "Abgleichswarteschlange konnte nicht geladen werden.", "resolveFailed": "Warteschlangenelement konnte nicht aufgelöst werden." }, "empty": "Keine mehrdeutigen Übereinstimmungen warten auf Prüfung.", "loading": "Warteschlange wird geladen…", "noEmailIdentity": "Keine E-Mail-Identität", "queuedAt": "{{identity}} · eingereiht {{time}}", "scopedToMappedClient": "Bestehende Kontaktoptionen sind auf diesen zugeordneten Kunden beschränkt.", "success": { "resolvedExisting": "Warteschlangenelement {{queueItemId}} auf bestehenden Kontakt {{contactNameId}} aufgelöst.", "resolvedNew": "Warteschlangenelement {{queueItemId}} durch Erstellen des Kontakts {{contactNameId}} aufgelöst." }, "title": "Warteschlange für mehrdeutige Übereinstimmungen" }, "syncHistory": { "actions": { "hideDetails": "Details ausblenden", "refresh": "Aktualisieren", "viewDetails": "Details anzeigen" }, "details": { "noResults": "Keine Tenant-Ergebnisse aufgezeichnet.", "stats": "erstellt {{created}}, verknüpft {{linked}}, aktualisiert {{updated}}, mehrdeutig {{ambiguous}}, deaktiviert {{inactivated}}", "tenantHeader": "Tenant {{tenant}} · {{status}}", "unknownTenant": "unbekannt" }, "empty": "Noch keine Sync-Läufe gefunden.", "errors": { "loadDetailFailed": "Lauf-Detail konnte nicht geladen werden.", "loadFailed": "Sync-Verlauf konnte nicht geladen werden.", "loadRunFailed": "Lauf {{runId}} konnte nicht geladen werden." }, "loading": "Sync-Verlauf wird geladen…", "run": { "header": "{{runType}} · {{status}}", "inProgress": "In Bearbeitung", "tenants": "Tenants: {{processed}}/{{total}} · Erfolgreich: {{success}} · Fehlgeschlagen: {{failed}}", "timing": "Gestartet {{started}} · Abgeschlossen {{completed}}" }, "title": "Letzte Sync-Läufe" } }, "google": { "settings": { "actions": { "refresh": "Aktualisieren", "resetProviders": "Google-Provider zurücksetzen", "resetting": "Wird zurückgesetzt…", "save": "Speichern", "saving": "Speichern…" }, "afterSaveNotice": "Gehen Sie nach dem Speichern zu den Integrationen für eingehende E-Mails und Kalender und autorisieren Sie die Provider erneut. Bestehende Google-Provider werden nicht migriert.", "consoleLink": "Google Cloud Console", "description": "Konfigurieren Sie tenant-eigene Google-Cloud-Anmeldedaten für eingehende Gmail-E-Mails und Google Calendar.", "errors": { "loadFailed": "Google-Einstellungen konnten nicht geladen werden", "resetFailed": "Google-Provider konnten nicht zurückgesetzt werden", "saveFailed": "Google-Einstellungen konnten nicht gespeichert werden" }, "fields": { "projectIdHelp": "Wird für die Gmail-Pub/Sub-Bereitstellung verwendet (tenant-eigenes Dienstkonto).", "projectIdLabel": "Google-Cloud-Projekt-ID", "projectIdPlaceholder": "my-project-id" }, "loading": "Wird geladen…", "oauth": { "calendarClientId": "Calendar OAuth Client ID", "calendarClientSecret": "Calendar OAuth Client Secret", "enterSecret": "Client Secret eingeben", "gmailClientId": "Gmail OAuth Client ID", "gmailClientSecret": "Gmail OAuth Client Secret", "sectionTitle": "OAuth-App", "shareApp": "Dieselbe OAuth-App für Gmail und Calendar verwenden", "shareAppHelp": "Empfohlen. Sie können pro Integration weiterhin separate Google-Konten autorisieren.", "storedSecret": "Gespeichertes Secret: {{secret}}" }, "redirectUrisLabel": "Redirect-URIs (in den Google-OAuth-Client kopieren)", "scopes": "Scopes", "scopesCalendar": "Calendar: {{scopes}}", "scopesGmail": "Gmail: {{scopes}}", "serviceAccount": { "alreadyStored": "Ein Service-Account-Schlüssel ist bereits gespeichert (nicht angezeigt).", "description": "Fügen Sie das JSON des Service-Account-Schlüssels für das tenant-eigene Dienstkonto ein, das zur Bereitstellung von Pub/Sub verwendet wird.", "title": "Pub/Sub-Dienstkonto (erforderlich für Gmail)" }, "setupGuide": "Einrichtungsanleitung", "title": "Google", "toasts": { "resetDescription": "Alle Google-Provider sind jetzt getrennt und erfordern eine erneute Autorisierung.", "resetFailedTitle": "Zurücksetzen fehlgeschlagen", "resetTitle": "Google-Provider zurückgesetzt", "saveFailedTitle": "Google-Einstellungen konnten nicht gespeichert werden", "savedDescription": "Die tenant-Google-Konfiguration wurde erfolgreich aktualisiert.", "savedTitle": "Google-Einstellungen gespeichert", "unknownError": "Unbekannter Fehler" } } }, "hudu": { "clientTab": { "source": "Quelle: Hudu", "openInHudu": "In Hudu öffnen", "refresh": "Aktualisieren", "loading": "Hudu-Daten werden geladen...", "notConnected": "Hudu ist nicht verbunden. Ein Administrator kann die Verbindung unter Einstellungen → Integrationen herstellen.", "unmapped": "Dieser Kunde ist noch keinem Hudu-Unternehmen zugeordnet. Ordnen Sie ihn unter Einstellungen → Integrationen → Hudu zu.", "unreachable": "Hudu konnte nicht erreicht werden. Versuchen Sie es später erneut.", "assetsTitle": "Assets", "assetsEmpty": "Keine Hudu-Assets für dieses Unternehmen.", "articlesTitle": "Artikel", "articlesEmpty": "Keine Hudu-Artikel für dieses Unternehmen.", "serial": "Seriennummer", "folder": "Ordner" }, "passwordsTab": { "source": "Quelle: Hudu", "openInHudu": "In Hudu öffnen", "refresh": "Aktualisieren", "loading": "Hudu-Passwörter werden geladen...", "notConnected": "Hudu ist nicht verbunden. Ein Administrator kann die Verbindung unter Einstellungen → Integrationen herstellen.", "unmapped": "Dieser Kunde ist noch keinem Hudu-Unternehmen zugeordnet. Ordnen Sie ihn unter Einstellungen → Integrationen → Hudu zu.", "unreachable": "Hudu konnte nicht erreicht werden. Versuchen Sie es später erneut.", "noPasswordAccess": "Für den Hudu-API-Schlüssel ist kein Passwortzugriff aktiviert, daher können Passwörter nicht aufgelistet werden. Erstellen Sie in der Hudu-Administration einen Schlüssel mit Passwortzugriff.", "title": "Passwörter", "empty": "Keine Hudu-Passwörter für dieses Unternehmen.", "reveal": "Anzeigen", "hide": "Ausblenden", "copy": "Kopieren", "revealNoAccess": "Für den Hudu-API-Schlüssel ist kein Passwortzugriff aktiviert.", "revealNotFound": "Dieses Passwort wurde in Hudu nicht gefunden.", "revealFailed": "Das Passwort konnte nicht angezeigt werden. Versuchen Sie es später erneut." }, "assets": { "title": "Assets", "description": "Ordnen Sie Hudu-Assets AlgaPSA-Assets zu, importieren Sie nicht zugeordnete Assets und rufen Sie Aktualisierungen aus Hudu ab.", "loading": "Asset-Zuordnungen werden geladen...", "empty": "Keine Hudu-Assets für dieses Unternehmen.", "selectAsset": "Asset auswählen", "serial": "Seriennummer", "archivedLabel": "Archiviert", "excludedHint": "Nicht importiert (Layout ausgeschlossen)", "buttons": { "importAll": "Alle nicht zugeordneten importieren", "importingAll": "Wird importiert...", "sync": "Aus Hudu synchronisieren", "syncing": "Wird synchronisiert...", "import": "Importieren", "importing": "Wird importiert...", "save": "Zuordnungen speichern", "saving": "Wird gespeichert...", "discard": "Verwerfen" }, "counters": { "mapped": "zugeordnet", "suggested": "vorgeschlagen", "unmapped": "nicht zugeordnet", "total": "gesamt" }, "table": { "huduAsset": "Hudu-Asset", "algaAsset": "AlgaPSA-Asset", "status": "Status", "actions": "Aktionen" }, "status": { "mapped": "Zugeordnet", "suggested": "Vorgeschlagen", "unmapped": "Nicht zugeordnet", "pending": "Ausstehend", "stale": "Veraltet" }, "suggestion": { "label": "Vorgeschlagen", "source": { "serial": "Seriennummern-Übereinstimmung", "exactName": "Exakter Name", "fuzzyName": "Ähnlicher Name" } }, "rowActions": { "unmap": "Zuordnung aufheben", "revert": "Änderung rückgängig machen", "dismiss": "Vorschlag verwerfen" }, "pendingSummary": "Nicht gespeicherte Änderungen: {{total}}", "sync": { "summary": "Synchronisierung abgeschlossen: {{updated}} aktualisiert · {{unchanged}} unverändert · {{stale}} veraltet.", "rmmSkipped": "{{rmmSkipped}} vom RMM verwaltet übersprungen.", "lastSynced": "Zuletzt synchronisiert: {{timestamp}}" }, "import": { "summary": "Import abgeschlossen: {{created}} erstellt · {{skipped}} übersprungen · {{failed}} fehlgeschlagen." }, "success": { "saved": "Asset-Zuordnungen gespeichert: {{total}}", "imported": "„{{name}}“ aus Hudu importiert." }, "errors": { "load": "Hudu-Asset-Zuordnungen konnten nicht geladen werden.", "save": "Asset-Zuordnung konnte nicht aktualisiert werden.", "import": "Hudu-Asset konnte nicht importiert werden.", "importAll": "Massenimport fehlgeschlagen.", "serialConflict": "Die Seriennummer wird bereits von „{{name}}“ verwendet.", "sync": "Synchronisierung aus Hudu fehlgeschlagen.", "rateLimited": "Hudu-Ratenlimit erreicht. Versuchen Sie es später erneut.", "unmapped": "Dieser Kunde ist keinem Hudu-Unternehmen zugeordnet.", "assetAlreadyMapped": "Dieses Asset ist bereits einem anderen Hudu-Asset zugeordnet. Entfernen Sie zuerst die bestehende Zuordnung.", "huduAssetAlreadyMapped": "Dieses Hudu-Asset ist bereits einem Asset zugeordnet. Entfernen Sie zuerst die bestehende Zuordnung.", "mappingConflict": "Diese Zuordnung steht im Konflikt mit einer bestehenden Zuordnung. Aktualisieren Sie und versuchen Sie es erneut.", "notFound": "Zuordnung nicht gefunden. Aktualisieren Sie und versuchen Sie es erneut." }, "toasts": { "errorTitle": "Hudu-Asset-Zuordnungsfehler" } }, "documents": { "sectionTitle": "Hudu-Dokumentation", "loading": "Hudu-Artikel werden geladen...", "empty": "Keine Hudu-Artikel", "unreachable": "Hudu konnte nicht erreicht werden. Versuchen Sie es später erneut." }, "documentsTab": { "title": "Hudu-Artikel", "source": "Quelle: Hudu", "searchPlaceholder": "Hudu-Artikel durchsuchen...", "loading": "Hudu-Artikel werden geladen...", "empty": "Keine Hudu-Artikel gefunden.", "notConnected": "Hudu ist nicht verbunden. Ein Administrator kann die Verbindung unter Einstellungen → Integrationen herstellen.", "unreachable": "Hudu konnte nicht erreicht werden. Versuchen Sie es später erneut.", "articleColumn": "Artikel", "clientColumn": "Kunde", "companyColumn": "Hudu-Unternehmen", "updatedColumn": "Aktualisiert", "unmapped": "Nicht zugeordnet", "previous": "Zurück", "next": "Weiter", "pageLabel": "Seite" }, "mapping": { "title": "Unternehmenszuordnungen", "description": "Ordnen Sie Hudu-Unternehmen AlgaPSA-Kunden zu, um deren Dokumentation anzuzeigen.", "loading": "Unternehmenszuordnungen werden geladen...", "companyId": "ID", "idInIntegration": "PSA-ID", "selectClient": "Kunde auswählen", "buttons": { "refresh": "Unternehmen aktualisieren", "refreshing": "Wird aktualisiert...", "save": "Zuordnungen speichern", "saving": "Wird gespeichert...", "discard": "Verwerfen" }, "counters": { "mapped": "zugeordnet", "suggested": "vorgeschlagen", "unmapped": "nicht zugeordnet", "total": "gesamt" }, "table": { "huduCompany": "Hudu-Unternehmen", "algaClient": "AlgaPSA-Kunde", "status": "Status" }, "status": { "mapped": "Zugeordnet", "suggested": "Vorgeschlagen", "unmapped": "Nicht zugeordnet", "pending": "Ausstehend" }, "suggestion": { "label": "Vorgeschlagen", "source": { "integrationId": "PSA-Integrations-ID", "exactName": "Exakter Name", "fuzzyName": "Ähnlicher Name" } }, "empty": { "title": "Noch keine Hudu-Unternehmen geladen.", "hint": "Klicken Sie auf „Unternehmen aktualisieren“, um Unternehmen aus Hudu abzurufen." }, "unmappedHint": "Dokumentation wird nur für zugeordnete Kunden angezeigt. Ordnen Sie jedes Hudu-Unternehmen einem AlgaPSA-Kunden zu, um sie zu aktivieren.", "success": { "refreshed": "Hudu-Unternehmen aktualisiert.", "saved": "Zuordnungen gespeichert: {{total}}" }, "errors": { "load": "Hudu-Unternehmenszuordnungen konnten nicht geladen werden.", "refresh": "Hudu-Unternehmen konnten nicht aktualisiert werden.", "save": "Zuordnung konnte nicht aktualisiert werden.", "clientAlreadyMapped": "Dieser Kunde ist bereits einem anderen Hudu-Unternehmen zugeordnet. Entfernen Sie zuerst die bestehende Zuordnung.", "companyAlreadyMapped": "Dieses Hudu-Unternehmen ist bereits einem anderen Kunden zugeordnet. Entfernen Sie zuerst die bestehende Zuordnung.", "mappingConflict": "Diese Zuordnung steht im Konflikt mit einer bestehenden Zuordnung. Aktualisieren Sie und versuchen Sie es erneut.", "notFound": "Zuordnung nicht gefunden. Aktualisieren Sie und versuchen Sie es erneut." }, "toasts": { "errorTitle": "Hudu-Zuordnungsfehler" }, "pendingSummary": "Nicht gespeicherte Änderungen: {{total}}", "rowActions": { "unmap": "Zuordnung aufheben", "revert": "Änderung rückgängig machen", "dismiss": "Vorschlag verwerfen" } }, "layoutMap": { "title": "Asset-Layouts", "description": "Wählen Sie, als welcher AlgaPSA-Asset-Typ jedes Hudu-Asset-Layout importiert wird. Nicht konfigurierte Layouts werden als Unbekannt importiert.", "loading": "Asset-Layouts werden geladen...", "empty": "Keine Asset-Layouts in Hudu gefunden.", "suggested": "Vorgeschlagen", "table": { "huduLayout": "Hudu-Layout", "algaAssetType": "AlgaPSA-Asset-Typ" }, "types": { "workstation": "Arbeitsplatz", "networkDevice": "Netzwerkgerät", "server": "Server", "mobileDevice": "Mobilgerät", "printer": "Drucker", "unknown": "Unbekannt" }, "excludeOption": "Nicht importieren", "buttons": { "save": "Layout-Zuordnung speichern", "saving": "Wird gespeichert..." }, "success": { "saved": "Asset-Layout-Zuordnung gespeichert." }, "errors": { "load": "Hudu-Asset-Layouts konnten nicht geladen werden.", "save": "Asset-Layout-Zuordnung konnte nicht gespeichert werden." }, "createType": { "button": "Typ aus Layout erstellen", "creating": "Wird erstellt...", "success": "Asset-Typ erstellt und diesem Layout zugewiesen.", "errors": { "create": "Aus diesem Layout konnte kein Asset-Typ erstellt werden.", "slugConflict": "Ein Asset-Typ mit diesem Namen existiert bereits. Wählen Sie ihn stattdessen aus der Liste aus." } } }, "settings": { "title": "Hudu", "description": "Verbinden Sie Ihre Hudu-Instanz, um Kundendokumentation und Zugangsdaten in AlgaPSA anzuzeigen.", "loading": "Hudu-Verbindungsstatus wird geladen...", "detectedInstance": "Hudu-Instanz", "status": { "connected": "Verbunden", "notConnected": "Nicht verbunden", "error": "Fehler" }, "passwordAccess": { "enabled": "Passwortzugriff aktiviert", "disabled": "Passwortzugriff für diesen Schlüssel nicht aktiviert" }, "fields": { "baseUrl": { "label": "Basis-URL", "placeholder": "https://your-instance.huducloud.com" }, "apiKey": { "label": "API-Schlüssel", "placeholder": "Geben Sie Ihren Hudu-API-Schlüssel ein", "keepExisting": "Leer lassen, um den aktuellen API-Schlüssel beizubehalten", "writeOnlyHint": "Der gespeicherte API-Schlüssel wird niemals angezeigt. Lassen Sie dieses Feld leer, um ihn weiterhin zu verwenden." } }, "buttons": { "test": "Verbindung testen", "testing": "Wird getestet...", "connect": "Verbinden", "connecting": "Verbindung wird hergestellt...", "disconnect": "Trennen", "disconnecting": "Wird getrennt..." }, "success": { "connected": "Mit Hudu verbunden.", "testPassedWithPasswords": "Hudu-Verbindungstest erfolgreich. Passwortzugriff ist für diesen Schlüssel aktiviert.", "testPassedNoPasswords": "Hudu-Verbindungstest erfolgreich. Passwortzugriff ist für diesen Schlüssel nicht aktiviert.", "disconnected": "Hudu-Verbindung getrennt." }, "errors": { "loadStatus": "Hudu-Verbindungsstatus konnte nicht geladen werden.", "baseUrlRequired": "Basis-URL ist erforderlich.", "baseUrlFormat": "Geben Sie eine gültige URL ein, z. B. https://your-instance.huducloud.com", "invalidBaseUrl": "Unter dieser Basis-URL wurde keine Hudu-API gefunden (404). Überprüfen Sie die Basis-URL.", "unreachable": "Hudu konnte unter dieser Basis-URL nicht erreicht werden. Überprüfen Sie die URL und Ihr Netzwerk.", "invalidKey": "Hudu hat den API-Schlüssel abgelehnt (401). Geben Sie einen gültigen API-Schlüssel ein.", "testFailed": "Hudu-Verbindungstest fehlgeschlagen.", "connectFailed": "Verbindung mit Hudu fehlgeschlagen.", "disconnectFailed": "Hudu konnte nicht getrennt werden." }, "toasts": { "errorTitle": "Hudu-Verbindungsfehler" } } }, "microsoft": { "settings": { "actions": { "entraLink": "Microsoft Entra", "newProfile": "Neues Profil", "openTeamsSetup": "Teams-Einrichtung öffnen", "refresh": "Aktualisieren", "resetProviders": "Microsoft-Provider zurücksetzen", "resetting": "Wird zurückgesetzt…" }, "archiveDialog": { "archiving": "Wird archiviert…", "cancel": "Profil behalten", "confirm": "Profil archivieren", "message": "{{name}} archivieren? Bestehende historische Verweise bleiben erhalten, aber das Profil steht für neue Bindungen nicht mehr zur Verfügung.", "title": "Microsoft-Profil archivieren?" }, "binding": { "bound": "Gebunden", "boundProfileLabel": "Gebundenes Profil", "createFirst": "Erstellen Sie zuerst ein Profil", "needsAttention": "Erfordert Aufmerksamkeit", "saving": "Speichern…", "selectProfile": "Profil auswählen", "unbound": "Nicht gebunden" }, "bindings": { "summaryBound": "{{consumer}} ist an {{profile}} gebunden.", "summaryNone": "Derzeit ist kein Microsoft-Profil an {{consumer}} gebunden.", "summaryUnavailable": "{{consumer}} ist an ein nicht verfügbares Profil gebunden.", "warningArchived": "{{consumer}} ist weiterhin an ein archiviertes Profil gebunden. Binden Sie es an ein aktives Profil neu.", "warningNoBinding": "Für {{consumer}} ist noch keine Bindung konfiguriert.", "warningNotReady": "{{consumer}} ist an {{profile}} gebunden, aber dieses Profil benötigt noch eine Konfiguration.", "warningProfileMissing": "{{consumer}} ist an ein Profil gebunden, das nicht mehr verfügbar ist. Binden Sie es an ein aktives Profil neu." }, "bindingsAlertCe": "Explizite Bindungen sind die Referenz für die Auswahl des MSP-SSO-Profils. Konfigurieren Sie die Anmeldedomänen separat, nachdem Sie das gebundene Profil ausgewählt haben.", "bindingsAlertEe": "Explizite Bindungen sind die Referenz für die Auswahl des MSP-SSO-, E-Mail-, Kalender- und Teams-Profils.", "consumerBindings": { "descriptionCe": "Binden Sie ein Microsoft-Profil an MSP-SSO für die Anmeldung und die Nutzung der Anmeldedomäne.", "descriptionEe": "Binden Sie ein Microsoft-Profil pro unterstütztem Consumer. Das Neuzuweisen eines Consumers ändert die anderen nicht.", "title": "Explizite Consumer-Bindungen" }, "consumers": { "calendar": { "description": "Wählen Sie aus, welches Microsoft-Profil für die Outlook-Kalendersynchronisation verwendet werden soll.", "label": "Kalender", "reconnect": "Bestehende Microsoft-Kalenderverbindungen benötigen nach dem Wechsel des gebundenen Profils möglicherweise eine erneute Autorisierung." }, "email": { "description": "Wählen Sie aus, welches Microsoft-Profil für eingehende Outlook-E-Mails verwendet werden soll.", "label": "E-Mail", "reconnect": "Bestehende Outlook-E-Mail-Verbindungen benötigen nach dem Wechsel des gebundenen Profils möglicherweise eine erneute Autorisierung." }, "mspSso": { "description": "Wählen Sie aus, welches Microsoft-Profil die MSP-SSO-Anmeldedomänen, die Microsoft-Anmeldung und die Tenant-Erkennung unterstützt.", "label": "MSP SSO" }, "teams": { "description": "Wählen Sie aus, welches Microsoft-Profil für die Microsoft-Teams-Installation und die Authentifizierungsflüsse verwendet werden soll.", "label": "Teams" } }, "descriptionCe": "Verwalten Sie tenant-eigene Microsoft-Profile für MSP SSO, Microsoft-Anmeldung und die Erkennung von Anmeldedomänen.", "descriptionEe": "Verwalten Sie tenant-eigene Microsoft-Profile für MSP SSO, Outlook-E-Mail, Kalendersynchronisation und Microsoft Teams.", "dialog": { "cancel": "Abbrechen", "clientId": "Client ID", "clientSecret": "Client Secret", "clientSecretPlaceholder": "Client Secret eingeben", "clientSecretPlaceholderEdit": "Leer lassen, um das aktuelle Secret beizubehalten", "createProfile": "Profil erstellen", "createTitle": "Microsoft-Profil erstellen", "descriptionCreate": "Erstellen Sie ein tenant-eigenes Microsoft-Profil und binden Sie es anschließend explizit an die Microsoft-Consumer, die Sie nutzen möchten.", "descriptionEdit": "Aktualisieren Sie das ausgewählte Microsoft-Profil. Lassen Sie das Secret leer, um den bestehenden Wert beizubehalten.", "displayName": "Anzeigename", "displayNamePlaceholder": "Acme Produktionsmandant", "editTitle": "Microsoft-Profil bearbeiten", "saveChanges": "Änderungen speichern", "saving": "Speichern…", "setDefault": "Dieses Profil als Standard-Microsoft-Profil festlegen", "setDefaultHelp": "Standardprofile stehen für Profilverwaltungs-Workflows und migrations­sichere Metadaten zur Verfügung, jedoch nicht für das Consumer-Routing.", "storedSecretHint": "Gespeichertes Secret: {{secret}}. Lassen Sie dieses Feld leer, um es unverändert zu lassen.", "tenantId": "Tenant ID" }, "empty": { "createButton": "Microsoft-Profil erstellen", "descriptionCe": "Erstellen Sie zunächst ein benanntes Profil und binden Sie es anschließend explizit an MSP-SSO und Anmeldungsflüsse mit Anmeldedomänen.", "descriptionEe": "Erstellen Sie zunächst ein benanntes Profil und binden Sie es anschließend explizit an MSP SSO, Outlook-E-Mail, Kalendersynchronisation und Teams.", "title": "Noch keine Microsoft-Profile" }, "errors": { "archive": "Microsoft-Profil konnte nicht archiviert werden", "loadBindings": "Microsoft-Bindungen konnten nicht geladen werden", "loadStatus": "Microsoft-Einstellungen konnten nicht geladen werden", "resetProviders": "Microsoft-Provider konnten nicht zurückgesetzt werden", "saveProfile": "Microsoft-Profil konnte nicht gespeichert werden", "setDefault": "Standard-Microsoft-Profil konnte nicht festgelegt werden", "updateBinding": "Microsoft-Bindung konnte nicht aktualisiert werden" }, "guidance": { "applicationIdUri": "Application ID URI", "calendarRedirect": "Redirect-URI für Kalendersynchronisation", "calendarTitle": "Kalender-Anleitung", "clientId": "Client ID", "currentProfileTitle": "Aktuelle Profilwerte", "emailRedirect": "Redirect-URI für eingehende E-Mails", "emailTitle": "E-Mail-Anleitung", "mspSsoTitle": "MSP-SSO-Anleitung", "notConfigured": "Nicht konfiguriert", "redirectUri": "Redirect URI", "requiresBaseUrl": "Basis-URL und Client ID erforderlich", "scopes": "Scopes", "teamsBotRedirect": "Redirect-URI für persönlichen Bot", "teamsMessageRedirect": "Redirect-URI für Message Extension", "teamsScopes": "Teams-Scopes", "teamsTabRedirect": "Redirect-URI für persönlichen Tab", "teamsTitle": "Teams-Anleitung", "tenantId": "Tenant ID", "unavailable": "Nicht verfügbar" }, "profileCard": { "activeBindings": "Aktive Bindungen", "archive": "Archivieren", "clientId": "Client ID", "defaultBadge": "Standard", "edit": "Bearbeiten", "guidanceSummary": "Anleitung zur Microsoft-App-Registrierung", "noVisibleBindings": "Keine sichtbaren Consumer-Bindungen", "readinessTitle": "Profilbereitschaft", "readyCe": "Dieses Profil ist bereit für die MSP-SSO-Bindung und Anmeldungsflüsse mit Anmeldedomänen.", "readyEe": "Dieses Profil ist bereit für MSP SSO, Outlook-E-Mail und Kalenderbindungen.", "readyEeTeams": "Dieses Profil ist bereit für MSP SSO, Outlook-E-Mail, Kalendersynchronisation und Teams-Bindungen.", "setDefault": "Als Standard festlegen", "storedSecret": "Gespeichertes Secret", "teamsAppIdUri": "Teams Application ID URI", "tenantIdLabel": "Tenant ID:", "updating": "Wird aktualisiert…" }, "providerReconnect": { "description": "Verwenden Sie dies, wenn Sie Anmeldedaten rotieren oder Outlook-E-Mail bzw. den Kalender absichtlich an ein anderes Microsoft-Profil binden.", "title": "Provider-Neuverbindung" }, "readiness": { "archived": "Archivierte Profile können nicht für neue Microsoft-Bindungen verwendet werden.", "clientIdMissing": "Client ID fehlt.", "clientSecretMissing": "Client Secret wurde nicht konfiguriert.", "tenantIdMissing": "Tenant ID fehlt." }, "statusBadges": { "archived": "Archiviert", "needsAttention": "Erfordert Aufmerksamkeit", "ready": "Bereit" }, "title": "Microsoft", "toasts": { "archiveFailedTitle": "Microsoft-Profil konnte nicht archiviert werden", "archivedDescription": "{{name}} wurde erfolgreich archiviert.", "archivedTitle": "Microsoft-Profil archiviert", "bindingFailedTitle": "Bindung für {{consumer}} konnte nicht aktualisiert werden", "bindingUpdatedDescription": "{{consumer}} verwendet jetzt {{profile}}.", "bindingUpdatedTitle": "Bindung für {{consumer}} aktualisiert", "defaultUpdatedDescription": "{{name}} ist jetzt das Standard-Microsoft-Profil.", "defaultUpdatedTitle": "Standard-Microsoft-Profil aktualisiert", "profileCreated": "Microsoft-Profil erstellt", "profileCreatedDescription": "Das Microsoft-Profil kann an sichtbare Microsoft-Consumer gebunden werden.", "profileUpdated": "Microsoft-Profil aktualisiert", "profileUpdatedDescription": "Die Änderungen am Microsoft-Profil wurden erfolgreich gespeichert.", "resetDescription": "Bestehende Outlook-E-Mail- und Kalenderverbindungen erfordern jetzt eine erneute Autorisierung.", "resetFailedTitle": "Zurücksetzen fehlgeschlagen", "resetTitle": "Microsoft-Provider zurückgesetzt", "saveFailedTitle": "Microsoft-Profil konnte nicht gespeichert werden", "selectedProfile": "das ausgewählte Profil", "setDefaultFailedTitle": "Standardprofil konnte nicht festgelegt werden" }, "validation": { "clientIdRequired": "Microsoft OAuth Client ID ist erforderlich", "clientSecretRequired": "Microsoft OAuth Client Secret ist erforderlich", "displayNameRequired": "Anzeigename des Microsoft-Profils ist erforderlich", "tenantIdRequired": "Microsoft Tenant ID ist erforderlich" } } }, "qbo": { "live": { "defaultCompany": "Verbundenes QuickBooks-Unternehmen" }, "settings": { "actions": { "connect": "QuickBooks verbinden", "disconnect": "QuickBooks trennen", "disconnecting": "Wird getrennt…", "reconnect": "QuickBooks erneut verbinden", "refresh": "Aktualisieren", "saveCredentials": "QuickBooks-Anmeldedaten speichern", "saving": "Speichern…" }, "badges": { "connectionExpired": "Verbindung benötigt Aufmerksamkeit", "credentialsReady": "Anmeldedaten bereit", "credentialsRequired": "Anmeldedaten erforderlich", "defaultConnected": "Unternehmen verbunden", "noCompany": "Kein Unternehmen verbunden" }, "callback": { "accessDenied": "Der QuickBooks-Zugriff wurde abgelehnt, bevor die Verbindung abgeschlossen werden konnte.", "configMissing": "QuickBooks OAuth konnte nicht gestartet werden, da die Client-ID und das Client Secret nicht vollständig konfiguriert waren.", "generic": "QuickBooks hat einen OAuth-Fehler zurückgegeben: {{code}}", "invalidState": "Der QuickBooks-OAuth-Status war ungültig oder abgelaufen. Starten Sie den Verbindungs-Flow erneut.", "missingParams": "Dem QuickBooks-Callback fehlten erforderliche Parameter. Starten Sie den Verbindungs-Flow erneut.", "oauthFailed": "Der QuickBooks-OAuth-Callback ist fehlgeschlagen. Versuchen Sie, die Verbindung erneut herzustellen. Bei weiterhin bestehendem Problem überprüfen Sie Ihre Redirect-URI und Scopes.", "tokenExchangeFailed": "Intuit hat die erwarteten Token nicht zurückgegeben. Versuchen Sie, die Verbindung erneut herzustellen." }, "clientIdLabel": "QuickBooks Client ID", "clientIdPlaceholder": "Fügen Sie Ihre Intuit-App-Client-ID ein", "clientSecretLabel": "QuickBooks Client Secret", "clientSecretPlaceholder": "Fügen Sie Ihr Intuit-App-Client-Secret ein", "connectSuccess": "QuickBooks erfolgreich verbunden. Das verbundene Unternehmen ist nun der Standard-Live-QuickBooks-Kontext.", "connection": { "defaultCompany": "Verbundenes Unternehmen", "description": "Starten Sie OAuth erst, nachdem die QuickBooks-App-Anmeldedaten konfiguriert sind. Beim Trennen werden gespeicherte QuickBooks-Zugriffstoken entfernt, die tenant-eigenen App-Anmeldedaten bleiben jedoch erhalten.", "notConnected": "Es ist noch kein QuickBooks-Unternehmen verbunden. Speichern Sie die Anmeldedaten und klicken Sie anschließend auf „QuickBooks verbinden“.", "realmId": "Realm ID: {{id}}", "title": "Live-QuickBooks-Verbindung", "unknown": "unbekannt" }, "credentialsSaved": "QuickBooks-Anmeldedaten gespeichert. Sie können jetzt den QuickBooks-OAuth-Flow starten.", "csvAvailableMiddle": "in diesem Buchhaltungsbereich und verwalten Sie Exporte über", "csvAvailablePrefix": "Wenn Sie einen manuellen Workflow bevorzugen, verwenden Sie weiterhin", "csvAvailableTitle": "QuickBooks CSV bleibt verfügbar", "description": "Konfigurieren Sie QuickBooks-OAuth-Anmeldedaten, verbinden Sie Ihr QuickBooks-Unternehmen und halten Sie Live-QuickBooks parallel zum manuellen QuickBooks-CSV-Workflow verfügbar.", "disconnectSuccess": "Die gespeicherte QuickBooks-Verbindung wurde entfernt. Tenant-eigene QuickBooks-App-Anmeldedaten wurden beibehalten.", "environment": "Intuit-Umgebung", "environmentProduction": "Produktion", "environmentSandbox": "Sandbox", "errors": { "disconnect": "QuickBooks konnte nicht getrennt werden.", "load": "QuickBooks-Einstellungen konnten nicht geladen werden.", "saveCredentials": "QuickBooks-Anmeldedaten konnten nicht gespeichert werden." }, "howItWorksDescription": "Speichern Sie hier QuickBooks-App-Anmeldedaten, schließen Sie den Intuit-OAuth-Flow ab, und Alga PSA verwendet das verbundene QuickBooks-Unternehmen als Standard-Live-Kontext für Exporte und Zuordnungen.", "howItWorksTitle": "So funktioniert Live-QuickBooks in dieser Version", "loading": "QuickBooks-Einstellungen werden geladen…", "mapping": { "alert": "QuickBooks-Artikel, Steuercodes und Konditionen werden aus dem verbundenen Unternehmen geladen, damit Live-Exporte in v1 weiterhin die erste gespeicherte QuickBooks-Verbindung nutzen können.", "descriptionPrefix": "Konfigurieren Sie Live-QuickBooks-Zuordnungen für das verbundene Unternehmen. Diese Zuordnungen sind begrenzt auf", "placeholderAlert": "Der Zuordnungsmanager wird verfügbar, nachdem das erste QuickBooks-Unternehmen verbunden und als Standard-Live-QuickBooks-Kontext festgelegt wurde.", "placeholderDescription": "Verbinden Sie ein QuickBooks-Unternehmen, bevor Sie Live-QuickBooks-Artikel- und Steuer-Zuordnungen konfigurieren.", "title": "Live-QuickBooks-Zuordnung & -Konfiguration" }, "noClientId": "Für diesen Tenant ist noch keine Client ID gespeichert.", "noClientSecret": "Für diesen Tenant ist noch kein Client Secret gespeichert.", "quickbooksCsv": "QuickBooks CSV", "redirectUri": "Redirect URI", "requiredScopes": "Erforderliche Scopes", "storedClientId": "Gespeicherte Client ID: {{value}}", "storedClientSecret": "Gespeichertes Client Secret: {{value}}", "tenantOauthDescription": "Fügen Sie die für diesen Tenant registrierten Intuit-App-Anmeldedaten ein, oder lassen Sie das Feld leer, um die QuickBooks-App auf Anwendungsebene zu verwenden, sofern eine konfiguriert ist. Secret-Werte werden nach dem Speichern nicht mehr an den Browser zurückgegeben.", "tenantOauthTitle": "Tenant-eigene OAuth-App", "title": "QuickBooks Online" }, "sync": { "healthCardTitle": "Synchronisierungsstatus", "healthCardDescription": "Status und Steuerung der QuickBooks-Buchhaltungssynchronisierung. Läuft alle 15 Minuten.", "lastCycleTitle": "Letzter Synchronisierungslauf", "lastCycleStatus": "Status", "lastCycleFinishedAt": "Abgeschlossen", "lastCycleStats": "Ergebnisse", "statOpsProcessed": "{{count}} Vorgänge verarbeitet", "statDriftFound": "{{count}} Abweichungen", "statPaymentsApplied": "{{count}} Zahlungen verbucht", "noLastCycle": "Es wurde noch kein Synchronisierungslauf ausgeführt.", "nextRunHint": "Läuft automatisch alle 15 Minuten, wenn die automatische Synchronisierung aktiviert ist.", "pendingOps": "Ausstehende Vorgänge", "erroredOps": "Fehlgeschlagene Vorgänge", "driftCount": "Abweichungen", "openExceptions": "Offene Ausnahmen", "refreshTokenExpiry": "QuickBooks-Token läuft am {{date}} ab", "refreshTokenExpired": "QuickBooks-Token abgelaufen — erneut verbinden, um die Synchronisierung fortzusetzen.", "autoSyncLabel": "Automatische Synchronisierung aktiviert", "syncNowButton": "Jetzt synchronisieren", "syncNowRunning": "Synchronisierung läuft…", "syncNowSuccess": "Synchronisierung erfolgreich abgeschlossen.", "syncNowSkipped": "Synchronisierung übersprungen: {{reason}}", "syncNowError": "Synchronisierung fehlgeschlagen: {{error}}", "viewExceptionsLink": "Ausnahmen anzeigen", "autoApplyCreditsWarning": "QuickBooks ist so eingestellt, dass Guthaben automatisch angewendet werden. Das steht im Konflikt mit den von Alga gesteuerten Guthabenanwendungen: QuickBooks kann exportierte Gutschriften vor der Synchronisierung auf eine andere Rechnung anwenden. Öffnen Sie in QuickBooks „Account and Settings → Advanced → Automation“ und deaktivieren Sie „Automatically apply credits“.", "configTitle": "Synchronisierungskonfiguration", "connectedCompanies": "Verbundene Unternehmen", "defaultClass": "Standardklasse", "defaultDepartment": "Standardabteilung", "defaultRealm": "Standard", "depositAccount": "Einzahlungskonto", "makeDefault": "Als Standard festlegen", "noDefault": "Kein Standard", "saving": "Speichern…", "undepositedFunds": "Nicht eingezahlte Mittel (Standard)" } }, "rmm": { "ninjaOne": { "loading": "NinjaOne-Integrationseinstellungen werden geladen...", "card": { "title": "NinjaOne RMM-Integration", "description": "Verbinden Sie Ihr NinjaOne-Konto, um Geräte zu synchronisieren, Warnungen zu erhalten und Fernzugriff zu aktivieren.", "skeletonDescription": "NinjaOne-Integration wird geladen..." }, "status": { "checking": "NinjaOne-Verbindung wird geprüft...", "notConnected": { "title": "Nicht mit NinjaOne verbunden", "description": "Verbinden Sie Ihr NinjaOne-Konto, um Geräte zu synchronisieren, Warnungen zu erhalten und Fernzugriff zu aktivieren." }, "connected": "Mit NinjaOne verbunden", "connectedWithErrors": "NinjaOne verbunden mit Synchronisierungsfehlern", "instanceLabel": "Instanz:", "organizations": "{{count}} Organisationen", "devices": "{{count}} Geräte", "activeAlerts": "{{count}} aktive Warnungen", "lastSynced": "Zuletzt synchronisiert: {{time}}" }, "setup": { "title": "Einrichtungsanweisungen", "steps": { "login": "Melden Sie sich in Ihrem NinjaOne-Dashboard an", "navigate": "Navigieren Sie zu Administration → Apps → API", "addClient": "Klicken Sie auf „+ Add client app“, um eine neue API-Anwendung zu erstellen", "platform": "Stellen Sie die Application Platform auf „Web (PHP, Java, .Net Core, etc.)“", "name": "Geben Sie einen Namen ein (z. B. „Alga PSA“)", "redirectUri": "Fügen Sie die Redirect-URI hinzu:", "scopes": "Aktivieren Sie unter „Scopes“ „Monitoring“ und „Management“", "grantTypes": "Aktivieren Sie unter „Allowed grant types“ „Authorization code“, „Client credentials“ und „Refresh token“", "addAndCopy": "Klicken Sie auf „Add“ und kopieren Sie Client ID und Client Secret unten" }, "docsPrefix": "Detaillierte Einrichtungsanweisungen finden Sie in", "docsSection": "Abschnitt 10.15", "docsSuffix": "der Dokumentation.", "openApiSettings": "NinjaOne-API-Einstellungen öffnen" }, "credentials": { "title": "API-Anmeldedaten", "saved": "Anmeldedaten gespeichert", "clientIdLabel": "Client ID", "clientIdPlaceholder": "Geben Sie Ihre NinjaOne Client ID ein", "clientSecretLabel": "Client Secret", "clientSecretPlaceholder": "Geben Sie Ihr NinjaOne Client Secret ein", "clientSecretUpdatePlaceholder": "Neues Secret eingeben, um zu aktualisieren", "secretMaskedLabel": "Secret", "saving": "Wird gespeichert...", "save": "Anmeldedaten speichern" }, "region": { "hint": "Wählen Sie Ihre NinjaOne-Region und klicken Sie dann auf „Mit NinjaOne verbinden“, um den Zugriff zu autorisieren.", "label": "Region:" }, "actions": { "refreshing": "Wird aktualisiert...", "refreshStatus": "Status aktualisieren", "syncing": "Wird synchronisiert...", "syncOrganizations": "Organisationen synchronisieren", "syncingDevices": "Geräte werden synchronisiert...", "syncDevices": "Geräte synchronisieren", "disconnecting": "Wird getrennt...", "disconnect": "Trennen", "connect": "Mit NinjaOne verbinden" }, "disconnectModal": { "title": "NinjaOne trennen", "description": "Sind Sie sicher, dass Sie NinjaOne trennen möchten? Dadurch werden die Gerätesynchronisation und Warnungsbenachrichtigungen gestoppt und Ihre gespeicherten API-Anmeldedaten entfernt. Organisationszuordnungen bleiben erhalten.", "cancel": "Abbrechen", "confirm": "Trennen" }, "toasts": { "connectSuccess": "Erfolgreich mit NinjaOne verbunden.", "connectFailed": "NinjaOne-Verbindung fehlgeschlagen.", "connectFailedWithDetail": "NinjaOne-Verbindung fehlgeschlagen: {{detail}}", "disconnectSuccess": "NinjaOne-Verbindung erfolgreich getrennt.", "credentialsSaved": "NinjaOne-API-Anmeldedaten erfolgreich gespeichert.", "orgSyncSuccess": "Organisationssynchronisation abgeschlossen. Verarbeitet: {{processed}}, Erstellt: {{created}}, Aktualisiert: {{updated}}", "deviceSyncSuccess": "Gerätesynchronisation abgeschlossen. Verarbeitet: {{processed}}, Erstellt: {{created}}, Aktualisiert: {{updated}}" }, "errors": { "loadStatus": "NinjaOne-Verbindungsstatus konnte nicht geladen werden.", "saveCredentials": "Anmeldedaten konnten nicht gespeichert werden.", "connect": "NinjaOne-Verbindung konnte nicht initiiert werden.", "disconnect": "NinjaOne konnte nicht getrennt werden.", "disconnectUnexpected": "Beim Trennen ist ein unerwarteter Fehler aufgetreten.", "orgSyncFailed": "Organisationssynchronisation fehlgeschlagen.", "deviceSyncFailed": "Gerätesynchronisation fehlgeschlagen." }, "compliance": { "actions": { "retry": "Erneut versuchen", "syncing": "Wird synchronisiert...", "syncPatches": "Patches synchronisieren", "syncSoftware": "Software synchronisieren" }, "description": "Übersicht über den Gerätezustand von RMM-verwalteten Geräten", "loading": "Compliance-Daten werden geladen...", "metrics": { "devicesOffline": "Offline-Geräte", "devicesOnline": "Online-Geräte", "devicesWithAlerts": "Geräte mit Warnungen", "patchesFailed": "Fehlgeschlagene Patches", "patchesPending": "Ausstehende Patches" }, "noData": "Keine Compliance-Daten verfügbar", "summaryError": "Compliance-Zusammenfassung konnte nicht geladen werden", "title": "Flotten-Compliance" } }, "setup": { "activeConfiguration": "Aktive Konfiguration", "comingSoon": "RMM-Integration demnächst verfügbar", "configure": "Integration konfigurieren", "selected": "{{title}} ausgewählt", "title": "RMM-Integrationen", "backToList": "Alle RMM-Integrationen", "loadingProvider": "{{title}}-Integrationseinstellungen werden geladen...", "status": { "connected": "Verbunden", "connectedOneDevice": "Verbunden · 1 Gerät", "connectedWithDevices": "Verbunden · {{count}} Geräte", "notConnected": "Nicht verbunden", "syncError": "Synchronisierungsfehler" } }, "tactical": { "actions": { "disconnect": "Trennen", "disconnecting": "Wird getrennt...", "ingestSoftware": "Software erfassen", "ingesting": "Wird erfasst...", "refresh": "Aktualisieren", "save": "Speichern", "saving": "Speichern...", "syncAlerts": "Alarme synchronisieren", "syncClients": "Kunden synchronisieren", "syncDevices": "Geräte synchronisieren", "syncing": "Wird synchronisiert...", "testConnection": "Verbindung testen", "testing": "Wird getestet..." }, "auth": { "apiKey": "API-Schlüssel", "enterApiKey": "API-Schlüssel eingeben", "enterPassword": "Passwort eingeben", "enterUsername": "Benutzername eingeben", "knox": "Knox", "knoxOption": "Benutzername/Passwort (Knox-Token)", "knoxTokenSaved": "Knox-Token gespeichert: {{value}}", "mode": "Authentifizierung", "password": "Passwort", "saved": "Gespeichert: {{value}}", "savedEnterToUpdate": "Gespeichert (zum Aktualisieren eingeben)", "totp": "TOTP-Code", "username": "Benutzername" }, "autoSync": "Automatische Synchronisation", "client": { "loading": "Kunden werden geladen…", "select": "Kunde auswählen" }, "counts": { "activeAlerts": "Aktive Alarme", "lastSync": "Letzte Synchronisation", "mappedOrgs": "Zugeordnete Organisationen", "never": "Nie", "syncedDevices": "Synchronisierte Geräte" }, "description": "Verbinden Sie Tactical RMM, um Assets zu synchronisieren und Alarme zu erfassen.", "errors": { "backfillAlerts": "Alarm-Backfill fehlgeschlagen", "connectionTest": "Verbindungstest fehlgeschlagen", "disconnect": "Trennen fehlgeschlagen", "ingestSoftware": "Software-Erfassung fehlgeschlagen", "loadOrgMappings": "Organisationszuordnungen konnten nicht geladen werden", "loadSettings": "Tactical-RMM-Einstellungen konnten nicht geladen werden", "saveConfig": "Tactical-RMM-Konfiguration konnte nicht gespeichert werden", "someAlertsFailed": "Einige Alarme konnten nicht aktualisiert werden: {{errors}}", "someDevicesFailed": "Einige Geräte konnten nicht synchronisiert werden: {{errors}}", "someOrgsFailed": "Einige Organisationen konnten nicht synchronisiert werden: {{errors}}", "someSoftwareFailed": "Einige Software-Einträge konnten nicht erfasst werden: {{errors}}", "syncDevices": "Gerätesynchronisation fehlgeschlagen", "syncOrgs": "Organisationssynchronisation fehlgeschlagen", "totpRequired": "TOTP ist erforderlich. Geben Sie Ihren aktuellen Code ein und testen Sie erneut.", "updateMapping": "Zuordnung konnte nicht aktualisiert werden" }, "fields": { "instanceUrl": "Instanz-URL", "instanceUrlHelp": "Verwenden Sie den Tactical-API-Host — die Subdomain api., z. B. https://api.example.com. Nicht die Dashboard-URL (rmm.) und kein abschließendes /api.", "betaApiNote": "Erfordert, dass die Beta-API von Tactical auf dem Server aktiviert ist: Setzen Sie BETA_API_ENABLED = True in Tactical und starten Sie es neu. Ohne die Beta-API schlagen Verbindungstest und Synchronisierung fehl." }, "lastError": "Letzter Fehler: {{error}}", "loadingSettings": "Tactical-RMM-Einstellungen werden geladen...", "sections": { "alerts": "Alarme", "alertsDescription": "Optional: historische oder aktive Alarme aus Tactical in Alga nachladen.", "devices": "Geräte", "devicesDescription": "Tactical-Agenten in Alga-Assets für zugeordnete Organisationen synchronisieren.", "orgMapping": "Organisationszuordnung", "orgMappingDescription": "Weisen Sie jedem Tactical-Kunden einen Alga-Kunden zu und steuern Sie die automatische Synchronisation pro Organisation.", "orgMappingEmpty": "Keine Organisationen gefunden. Führen Sie zunächst „Kunden synchronisieren“ aus.", "organizations": "Organisationen", "organizationsDescription": "Tactical-Kunden in Alga-Organisationszuordnungen synchronisieren und anschließend Alga-Kunden zuordnen.", "softwareInventory": "Software-Inventar", "softwareInventoryDescription": "Optional: zwischengespeichertes Software-Inventar über Tactical /api/software/ erfassen (keine Aktualisierungsaufrufe pro Agent).", "webhooks": "Webhooks (Alarme)", "webhooksDescription": "Konfigurieren Sie einen Webhook für Tactical-Alarmaktionen mit dem gemeinsamen Secret-Header unten." }, "status": { "authPrefix": "Authentifizierung:", "connected": "Verbunden", "disconnected": "Getrennt", "instanceUrlNotSet": "Instanz-URL nicht festgelegt" }, "statusLine": { "configured": "Status: Konfiguriert", "notConfigured": "Status: Nicht konfiguriert" }, "success": { "alertBackfillCompleted": "Alarm-Backfill abgeschlossen. Verarbeitet: {{processed}}, Erstellt: {{created}}, Aktualisiert: {{updated}}, Fehlgeschlagen: {{failed}}", "connection": "Verbindung erfolgreich.", "deviceSyncCompleted": "Gerätesynchronisation abgeschlossen. Verarbeitet: {{processed}}, Erstellt: {{created}}, Aktualisiert: {{updated}}, Gelöscht: {{deleted}}, Fehlgeschlagen: {{failed}}", "disconnected": "Getrennt.", "orgSyncCompleted": "Organisationssynchronisation abgeschlossen. Verarbeitet: {{processed}}, Erstellt: {{created}}, Aktualisiert: {{updated}}, Fehlgeschlagen: {{failed}}", "saved": "Tactical-RMM-Konfiguration gespeichert.", "softwareIngestionCompleted": "Software-Erfassung abgeschlossen. Verarbeitet: {{processed}}, Installiert/Aktualisiert: {{created}}, Assets aktualisiert: {{updated}}, Fehlgeschlagen: {{failed}}" }, "tacticalIdLabel": "Tactical-ID: {{id}}", "title": "Tactical RMM", "toasts": { "alertsSyncedDescription": "Tactical-Alarme wurden nachgeladen.", "alertsSyncedTitle": "Alarme synchronisiert", "backfillFailedTitle": "Backfill fehlgeschlagen", "connectedDescription": "Tactical-RMM-Verbindung verifiziert.", "connectedTitle": "Verbunden", "connectionFailedTitle": "Verbindung fehlgeschlagen", "devicesSyncedDescription": "Tactical-Agenten wurden in Assets synchronisiert.", "devicesSyncedTitle": "Geräte synchronisiert", "disconnectFailedTitle": "Trennen fehlgeschlagen", "disconnectedDescription": "Tactical-RMM-Anmeldedaten wurden gelöscht.", "disconnectedTitle": "Getrennt", "ingestionFailedTitle": "Erfassung fehlgeschlagen", "orgsSyncedDescription": "Tactical-Kunden wurden in Organisationszuordnungen synchronisiert.", "orgsSyncedTitle": "Organisationen synchronisiert", "saveFailedTitle": "Speichern fehlgeschlagen", "savedDescription": "Tactical-RMM-Konfiguration aktualisiert.", "savedTitle": "Gespeichert", "softwareIngestedDescription": "Zwischengespeichertes Tactical-Software-Inventar wurde erfasst.", "softwareIngestedTitle": "Software erfasst", "syncFailedTitle": "Synchronisation fehlgeschlagen", "unknownError": "Unbekannter Fehler", "updateFailedTitle": "Aktualisierung fehlgeschlagen" }, "webhook": { "copiedTitle": "Kopiert", "copy": "Kopieren", "headerName": "Header-Name", "payloadTemplate": "Payload-Vorlage", "secret": "Header-Secret", "secretCopied": "Webhook-Secret in die Zwischenablage kopiert.", "unavailable": "Webhook-Informationen nicht verfügbar. (Benötigt Leseberechtigung für Einstellungen.)", "url": "Webhook-URL", "urlCopied": "Webhook-URL in die Zwischenablage kopiert." } }, "tanium": { "loading": "Tanium-Integrationseinstellungen werden geladen...", "actions": { "discoverScopes": "Scopes erkennen", "disconnect": "Trennen", "runInventorySync": "Inventarsynchronisation ausführen", "saveConfiguration": "Konfiguration speichern", "testConnection": "Verbindung testen" }, "connection": { "connectedAt": "Verbunden am: {{time}}", "description": "Konfigurieren Sie Tanium-Gateway-Anmeldedaten und verifizieren Sie tenant-bezogenen Zugriff.", "never": "Nie", "syncLabel": "Sync: {{status}}", "syncLabelWithError": "Sync: {{status}} ({{error}})", "title": "Tanium-Verbindung" }, "errors": { "loadMappings": "Tanium-Zuordnungen konnten nicht geladen werden.", "loadSettings": "Tanium-Einstellungen konnten nicht geladen werden.", "loadState": "Tanium-Integrationsstatus konnte nicht geladen werden.", "saveConfiguration": "Tanium-Konfiguration konnte nicht gespeichert werden.", "testConnectionFailed": "Tanium-Verbindungstest fehlgeschlagen.", "disconnectFailed": "Tanium-Integration konnte nicht getrennt werden.", "scopeDiscoveryFailed": "Scope-Discovery fehlgeschlagen.", "inventorySyncFailed": "Inventarsynchronisation fehlgeschlagen.", "updateMappingFailed": "Zuordnung konnte nicht aktualisiert werden." }, "fields": { "apiToken": "API-Token {{state}}", "apiTokenPlaceholderExisting": "Leer lassen, um das bestehende Token beizubehalten", "apiTokenPlaceholderNew": "Tanium-API-Token einfügen", "apiTokenStateRequired": "(erforderlich)", "apiTokenStateSaved": "(gespeichert)", "assetApiUrl": "Asset-API-URL (optional)", "assetApiUrlPlaceholder": "https://example.cloud.tanium.com/plugin/products/asset", "assetFallbackLabel": "Asset-API-Fallback für abgelaufene Endpunkt-Abdeckung aktivieren", "gatewayUrl": "Gateway-URL", "gatewayUrlPlaceholder": "https://example.cloud.tanium.com" }, "mappings": { "autoSync": "Automatische Synchronisation", "autoSyncDisabled": "Deaktiviert", "autoSyncEnabled": "Aktiviert", "externalScope": "Externer Scope", "loading": "Zuordnungen werden geladen...", "mappedClient": "Zugeordneter Kunde", "noScopes": "Noch keine Tanium-Scopes erkannt.", "scopeIdLabel": "ID: {{id}}", "unmapped": "Nicht zugeordnet" }, "status": { "connected": "Verbunden", "disconnected": "Getrennt", "label": "Status: " }, "success": { "configurationSaved": "Tanium-Konfiguration gespeichert.", "connectionTestSucceeded": "Tanium-Verbindungstest erfolgreich.", "disconnected": "Tanium-Integration getrennt.", "inventorySyncCompleted": "Inventarsynchronisation abgeschlossen. Verarbeitet: {{processed}}, Erstellt: {{created}}, Aktualisiert: {{updated}}", "scopeDiscoveryCompleted": "Scope-Discovery abgeschlossen. Verarbeitet: {{processed}}, Erstellt: {{created}}, Aktualisiert: {{updated}}" }, "sync": { "description": "Erkennen Sie Scopes aus Tanium-Computergruppen, ordnen Sie sie Kunden zu und führen Sie dann die Inventarsynchronisation aus.", "title": "Tanium-Synchronisation" } }, "levelio": { "actions": { "backfillAlerts": "Warnungen nacherfassen", "disconnect": "Trennen", "discoverGroups": "Gruppen ermitteln", "runDeviceSync": "Gerätesynchronisierung ausführen", "saveConfiguration": "Konfiguration speichern", "testConnection": "Verbindung testen" }, "connection": { "connectedAt": "Verbunden: {{time}}", "description": "Stellen Sie mit einem API-Schlüssel eine Verbindung zu Level (level.io) her. Schlüssel werden in Level unter Settings > API erstellt.", "never": "nie", "syncLabel": "Synchronisierung: {{status}}", "syncLabelWithError": "Synchronisierung: {{status}} ({{error}})", "title": "Level-Verbindung" }, "errors": { "alertBackfillFailed": "Nacherfassung der Warnungen fehlgeschlagen", "deviceSyncFailed": "Gerätesynchronisierung fehlgeschlagen", "disconnectFailed": "Level-Integration konnte nicht getrennt werden", "groupSyncFailed": "Gruppenermittlung fehlgeschlagen", "loadMappings": "Level-Gruppenzuordnungen konnten nicht geladen werden", "loadSettings": "Level-Einstellungen konnten nicht geladen werden", "loadState": "Status der Level-Integration konnte nicht geladen werden", "loadSummary": "Level-Verbindungsübersicht konnte nicht geladen werden", "loadWebhook": "Level-Webhook-Details konnten nicht geladen werden", "saveConfiguration": "Level-Konfiguration konnte nicht gespeichert werden", "testConnectionFailed": "Verbindungstest fehlgeschlagen", "updateMappingFailed": "Zuordnung konnte nicht aktualisiert werden" }, "fields": { "apiKey": "API-Schlüssel ({{state}})", "apiKeyPlaceholderExisting": "Geben Sie einen neuen Schlüssel ein, um den gespeicherten zu ersetzen", "apiKeyPlaceholderNew": "Fügen Sie Ihren Level-API-Schlüssel ein", "apiKeyStateRequired": "erforderlich", "apiKeyStateSaved": "gespeichert" }, "mappings": { "autoSync": "Automatische Synchronisierung", "autoSyncDisabled": "Deaktiviert", "autoSyncEnabled": "Aktiviert", "group": "Level-Gruppe", "groupIdLabel": "ID: {{id}}", "loading": "Wird geladen…", "mappedClient": "Zugeordneter Kunde", "noGroups": "Noch keine Gruppen ermittelt. Führen Sie zuerst \"Gruppen ermitteln\" aus.", "unmapped": "Nicht zugeordnet" }, "status": { "connected": "Verbunden", "disconnected": "Nicht verbunden", "label": "Status: " }, "success": { "alertBackfillCompleted": "Nacherfassung der Warnungen abgeschlossen: {{processed}} Warnungen verarbeitet", "configurationSaved": "Level-Konfiguration gespeichert", "connectionTestSucceeded": "Verbindung zu Level erfolgreich", "deviceSyncCompleted": "Gerätesynchronisierung abgeschlossen: {{processed}} verarbeitet, {{created}} erstellt, {{updated}} aktualisiert", "disconnected": "Level-Integration getrennt", "groupSyncCompleted": "Gruppenermittlung abgeschlossen: {{processed}} verarbeitet, {{created}} erstellt, {{updated}} aktualisiert" }, "sync": { "description": "Ermitteln Sie Level-Gruppen, ordnen Sie sie Kunden zu und synchronisieren Sie Geräte. Geräte in nicht zugeordneten Gruppen werden übersprungen; Untergruppen erben die nächstgelegene zugeordnete übergeordnete Gruppe.", "summary": "{{mappedGroups}} zugeordnete Gruppen · {{devices}} Geräte · {{activeAlerts}} aktive Warnungen", "title": "Synchronisierung & Gruppenzuordnungen" }, "webhook": { "copied": "Kopiert", "copy": "Kopieren", "description": "Level kann Webhooks nicht über seine API registrieren. Erstellen Sie in Level eine Automatisierung mit einer HTTP-POST-Aktion und verwenden Sie die folgende URL, den Header und die Payload, um Warnungen in Echtzeit an Alga zu senden.", "header": "Header: {{name}}", "hideSecret": "Secret ausblenden", "loading": "Webhook-Details werden geladen, nachdem die Integration konfiguriert wurde.", "payload": "Payload-Vorlage", "showSecret": "Secret anzeigen", "title": "Warnungs-Webhook", "url": "Webhook-URL" } } }, "sso": { "msp": { "actions": { "add": "Hinzufügen", "refresh": "Aktualisieren", "request": "Anfordern", "resetChallenge": "Challenge zurücksetzen", "revoke": "Widerrufen", "saveDomains": "Domänen speichern", "saving": "Speichern…", "verify": "Verifizieren" }, "addDomainLabel": "Anmeldedomäne hinzufügen", "advisoryNotice": "Hinweismodus: Die Domänenregistrierung unterstützt die MSP-SSO-Erkennung, erfordert in der Community Edition jedoch keine Besitznachweise.", "claimStatus": { "advisory": "Hinweis", "pending": "Ausstehend", "rejected": "Abgelehnt", "revoked": "Widerrufen", "verified": "Verifiziert", "verifiedLegacy": "Verifiziert (Legacy)" }, "descriptionCe": "Registrieren Sie Hinweisdomänen für die MSP-Login-SSO-Erkennung. Besitznachweise werden in der Community Edition nicht erzwungen, und nicht verwaltete Domänen greifen auf Nine-Minds-App-Provider zurück.", "descriptionEe": "Verwalten Sie den Lebenszyklus von Domänenansprüchen für die Provider-Erkennung beim MSP-Login-SSO. Nicht beanspruchte oder nicht zulässige Domänen greifen auf Nine-Minds-App-Provider zurück.", "dnsHost": "Host:", "dnsInstructions": "DNS-TXT-Eintrag hinzufügen und anschließend auf „Verifizieren“ klicken:", "dnsValue": "Wert:", "emptyClaims": "Es sind noch keine Domänenansprüche konfiguriert.", "emptyDomains": "Keine Domänen konfiguriert. Unbekannte Domänen verwenden den App-Provider-Fallback.", "errors": { "conflicts": "Konflikte: {{conflicts}}.", "loadClaims": "MSP-SSO-Domänenansprüche konnten nicht geladen werden.", "loadDomains": "MSP-SSO-Anmeldedomänen konnten nicht geladen werden.", "refreshChallenge": "Challenge konnte nicht aktualisiert werden.", "requestClaim": "Domänenanspruch konnte nicht angefordert werden.", "revokeClaim": "Domänenanspruch konnte nicht widerrufen werden.", "saveDomains": "MSP-SSO-Anmeldedomänen konnten nicht gespeichert werden.", "verifyClaim": "Domänenanspruch konnte nicht verifiziert werden." }, "fallbackInfo": "Domänen ohne zulässigen Tenant-Anspruch nutzen die Nine-Minds-SSO-Provider-Konfiguration auf App-Ebene.", "loading": "Wird geladen…", "removeDomainAria": "Domäne {{number}} entfernen", "requestClaim": "Anspruch anfordern", "requestClaimLabel": "Domänenanspruch anfordern", "title": "MSP-SSO-Anmeldedomänen", "toasts": { "claimRequestedDescription": "Ausstehender Domänenanspruch erstellt und Verifizierungs-Challenge generiert.", "claimRequestedTitle": "Domänenanspruch angefordert", "claimUnchangedDescription": "Bestehender ausstehender Anspruch und Challenge sind bereits aktiv.", "claimUnchangedTitle": "Domänenanspruch unverändert", "refreshFailedTitle": "Challenge konnte nicht aktualisiert werden", "refreshedDescription": "Für diesen Anspruch ist eine neue Verifizierungs-Challenge aktiv.", "refreshedTitle": "Challenge aktualisiert", "requestClaimFailedTitle": "Domänenanspruch konnte nicht angefordert werden", "revokeFailedTitle": "Anspruch konnte nicht widerrufen werden", "revokedDescription": "Die Tenant-Übernahme für diese Domäne ist deaktiviert.", "revokedTitle": "Domänenanspruch widerrufen", "saveDomainsFailedTitle": "MSP-SSO-Anmeldedomänen konnten nicht gespeichert werden", "savedDescription": "Die Einstellungen für die domänenbasierte SSO-Erkennung wurden aktualisiert.", "savedTitle": "MSP-SSO-Anmeldedomänen gespeichert", "verifiedDescription": "Die Domänenübernahme ist jetzt für tenant-bezogenes Provider-Routing zulässig.", "verifiedTitle": "Domänenanspruch verifiziert", "verifyFailedTitle": "Domänenverifizierung fehlgeschlagen" } } }, "teams": { "settings": { "actions": { "activate": "Teams aktivieren", "addNote": { "description": "Schnellaktionen für interne Notizen zulassen.", "label": "Notiz hinzufügen" }, "approvalResponse": { "description": "Schnellaktionen zum Genehmigen und Ablehnen zulassen.", "label": "Genehmigungsantwort" }, "assignTicket": { "description": "Schnellaktionen zur Ticketzuweisung zulassen.", "label": "Ticket zuweisen" }, "deactivate": "Deaktivieren", "logTime": { "description": "Schnellaktionen für Zeiterfassung zulassen.", "label": "Zeit erfassen" }, "reload": "Neu laden", "replyToContact": { "description": "Für Kunden sichtbare Antwort-Schnellaktionen zulassen.", "label": "Auf Kontakt antworten" }, "saveChanges": "Änderungen speichern", "saveDraft": "Entwurf speichern", "saving": "Speichern...", "teamsActive": "Teams aktiv" }, "capabilities": { "activityNotifications": { "description": "Persönliche Teams-Aktivitäts-Benachrichtigungen zustellen.", "label": "Aktivitätsbenachrichtigungen" }, "groupChatBot": { "description": "Dem Bot erlauben, in Teams-Gruppenchats zu antworten. Bot-Antworten (einschließlich Ticketdetails) sind für alle Mitglieder des Chats sichtbar.", "label": "Gruppenchat-Bot" }, "messageExtension": { "description": "Nachschlagefunktionen und nachrichtengesteuerte PSA-Aktionen aktivieren.", "label": "Message Extension" }, "personalBot": { "description": "Bot-Befehle im persönlichen Bereich für Techniker aktivieren.", "label": "Persönlicher Bot" }, "personalTab": { "description": "Den PSA-Einstiegspunkt als persönlichen Tab starten.", "label": "Persönlicher Tab" } }, "checklist": { "installState": { "active": "Teams ist für diesen Tenant aktiv.", "error": "Die Teams-Einrichtung weist einen Fehler auf, der behoben werden muss.", "label": "Teams-Installationsstatus", "notConfigured": "Speichern Sie einen Entwurf oder aktivieren Sie Teams, sobald die Einrichtung bereit ist.", "pending": "Entwurf der Einrichtung ist gespeichert und bereit für Installation oder Einwilligung." }, "needsAction": "Aktion erforderlich", "profileReady": { "completed": "Das ausgewählte Profil verfügt über Client ID, Tenant ID und gespeichertes Secret-Material.", "label": "Profil bereit für Teams-Installation", "pending": "Es ist noch kein ausgewähltes Teams-Profil bereit." }, "profileSelected": { "completed": "{{name}} ist für Teams gebunden.", "label": "Microsoft-Profil ausgewählt", "pending": "Wählen Sie ein zulässiges Microsoft-Profil aus, bevor Sie Teams speichern oder aktivieren." }, "ready": "Bereit" }, "description": "Binden Sie Teams an ein Microsoft-Profil, aktivieren Sie Funktionen und generieren Sie das Tenant-Paket.", "errors": { "downloadPackage": "Teams-App-Paket konnte nicht heruntergeladen werden", "generatePackage": "Teams-App-Paket konnte nicht generiert werden", "loadGuidance": "Anleitung zur Teams-Einrichtung konnte nicht geladen werden", "saveSettings": "Teams-Einstellungen konnten nicht gespeichert werden" }, "guidance": { "applicationIdUri": "Application ID URI", "messageExtension": "Message Extension", "personalBot": "Persönlicher Bot", "personalTab": "Persönlicher Tab", "redirectUris": "Redirect URIs", "requiredScopes": "Erforderliche Scopes", "teamsAppIdUri": "Teams App ID URI", "unavailable": "Nicht verfügbar" }, "installStatus": { "active": "Aktiv", "error": "Fehler", "installPending": "Installation ausstehend", "notConfigured": "Nicht konfiguriert" }, "noEligibleProfiles": "Es sind keine Microsoft-Profile für Teams bereit. Schließen Sie zunächst die Microsoft-Einrichtung ab.", "notifications": { "approvalRequest": { "description": "Genehmigungsverantwortliche über ausstehende Entscheidungen benachrichtigen.", "label": "Genehmigungsanfragen" }, "assignment": { "description": "Techniker benachrichtigen, wenn ihnen Arbeit zugewiesen wird.", "label": "Zuweisungsereignisse" }, "customerReply": { "description": "Techniker benachrichtigen, wenn Kunden antworten.", "label": "Kundenantworten" }, "escalation": { "description": "Verantwortliche benachrichtigen, wenn Arbeit eskaliert wird.", "label": "Eskalationen" }, "slaRisk": { "description": "Techniker benachrichtigen, wenn SLA-Risikoschwellen erreicht werden.", "label": "SLA-Risiko" } }, "package": { "appId": "App ID", "appIds": "App IDs", "botId": "Bot ID", "deepLinks": "Deep Links", "description": "Generieren Sie das App-Manifest und die Installationslinks für das ausgewählte Microsoft-Profil.", "downloadManifest": "Manifest-JSON herunterladen", "downloadZip": "App-Paket herunterladen (.zip)", "downloading": "Wird heruntergeladen...", "fileName": "Dateiname", "generate": "Paket generieren", "generating": "Wird generiert...", "manifestVersion": "Manifest-Version", "myWork": "Meine Arbeit", "openBaseUrl": "PSA-Basis-URL öffnen", "openDeeplink": "Teams Deep Link öffnen", "packageVersion": "Paketversion", "projectTaskTemplate": "Projektaufgaben-Vorlage", "section": "Paket", "ticketTemplate": "Ticket-Vorlage", "title": "Teams-Paket", "validDomains": "Gültige Domains", "webResource": "Web-Anwendungsressource" }, "profileLabel": "Microsoft-Profil", "profileSummary": { "needsRepair": "Ausgewähltes Profil muss repariert werden", "none": "Kein Profil ausgewählt" }, "section": { "allowedActions": "Erlaubte Aktionen", "capabilities": "Funktionen", "notifications": "Benachrichtigungen" }, "selectProfile": "Profil auswählen", "statusMessage": { "activated": "Teams-Einrichtung aktiviert.", "deactivated": "Teams-Einrichtung deaktiviert.", "packageDownloaded": "Teams-App-Paket heruntergeladen.", "packageGenerated": "Teams-App-Paket generiert.", "saved": "Teams-Einrichtung gespeichert." }, "title": "Microsoft Teams", "diagnostics": { "title": "Diagnose und Testnachricht", "description": "Überprüfen Sie die Teams-Einrichtung und senden Sie eine proaktive Testnachricht an Ihre Teams-Bot-Unterhaltung.", "run": "Diagnose ausführen", "running": "Wird ausgeführt...", "sendTest": "Testnachricht senden", "sending": "Wird gesendet...", "disabled": "Diagnose und Testnachrichten sind verfügbar, sobald die Teams-Integration aktiv ist.", "completedAt": "Abgeschlossen {{time}}", "lastSuccess": "Letzter Erfolg", "lastFailure": "Letzter Fehler", "noneRecorded": "Nichts aufgezeichnet", "recommendations": "Empfehlungen", "status": { "pass": "Bestanden", "warn": "Warnung", "fail": "Fehler", "skip": "Übersprungen" }, "errors": { "run": "Teams-Diagnose konnte nicht ausgeführt werden", "testMessage": "Teams-Testnachricht konnte nicht gesendet werden" }, "test": { "sent": "Teams-Testnachricht gesendet.", "failed": "Teams-Testnachricht fehlgeschlagen.", "addonInactive": "Das Teams-Add-on ist für diesen Mandanten nicht aktiv.", "integrationInactive": "Aktivieren Sie die Teams-Integration, bevor Sie eine Testnachricht senden.", "capabilityDisabled": "Aktivieren Sie die Funktion für den persönlichen Bot, bevor Sie eine Testnachricht senden.", "botNotConfigured": "Konfigurieren Sie die Teams-Bot-Anmeldedaten, bevor Sie eine Testnachricht senden.", "missingUserLinkage": "Verknüpfen Sie Ihr Microsoft-Konto, bevor Sie eine Teams-Testnachricht senden.", "missingConversationReference": "Öffnen Sie den Alga PSA-Bot in Teams und senden Sie ihm zuerst eine beliebige Nachricht, und versuchen Sie es dann erneut.", "skipped": "Die Teams-Testnachricht wurde übersprungen." }, "steps": { "addonEntitlement": "Teams-Add-on-Berechtigung", "integrationStatus": "Status der Teams-Integration", "capabilities": "Teams-Funktionen", "microsoftProfile": "Bereitschaft des Microsoft-Profils", "recordingPermissions": "Teams-Berechtigungen für Aufzeichnung und Transkript", "packageMetadata": "Teams-Paketmetadaten", "botConnector": "Bot-Connector-Anmeldedaten", "userLinkage": "Microsoft-Kontoverknüpfung des Administrators", "conversationReference": "Teams-Unterhaltungsreferenz des Administrators", "recentDeliveryHealth": "Aktueller Zustand der Teams-Zustellung" }, "recommendation": { "addon": "Aktivieren Sie das Microsoft Teams-Add-on für diesen Mandanten.", "activate": "Aktivieren Sie die Teams-Integration in den Einstellungen.", "capabilities": "Aktivieren Sie den persönlichen Bot und Aktivitätsbenachrichtigungen für Teams.", "profile": "Wählen Sie ein bereites Microsoft-Profil für Teams aus.", "activeProfile": "Wählen Sie ein aktives Microsoft-Profil für Teams aus.", "profileCredentials": "Vervollständigen Sie die Microsoft-Profil-Anmeldedaten, bevor Sie Teams aktivieren.", "meetingOrganizer": "Konfigurieren Sie den Standard-Organisator für Teams-Besprechungen in den Teams-Einstellungen.", "meetingOrganizerObjectId": "Speichern Sie den Standard-Organisator für Teams-Besprechungen erneut, damit Alga PSA seine Microsoft Entra-Objekt-ID auflösen kann.", "package": "Generieren Sie das Teams-App-Paket, bevor Sie die End-to-End-Validierung ausführen.", "baseUrl": "Generieren Sie das Teams-Paket mit einer erreichbaren Basis-URL neu.", "botEnv": "Konfigurieren Sie TEAMS_BOT_APP_ID, TEAMS_BOT_APP_TENANT_ID und TEAMS_BOT_APP_PASSWORD.", "userLinkage": "Verknüpfen Sie Ihr Microsoft-Konto in Ihren Profileinstellungen.", "conversationReference": "Öffnen Sie den Alga PSA-Bot in Teams und senden Sie ihm zuerst eine beliebige Nachricht, und versuchen Sie es dann erneut.", "deliveryFailure": "Überprüfen Sie den letzten Fehler bei der Teams-Zustellung und versuchen Sie es nach Behebung der Ursache erneut." } }, "meetings": { "title": "Onlinebesprechungen und Aufzeichnungen", "description": "Verwenden Sie ein einziges Microsoft-Dienstkonto, um Teams-Besprechungen zu organisieren und die Aufbewahrung von Aufzeichnungen zu steuern.", "organizer": { "label": "Standard-UPN des Besprechungsorganisators", "placeholder": "scheduler@acme.com", "help": "Beim Speichern wird die für Graph-Besprechungsaufrufe verwendete Microsoft Entra-Objekt-ID aufgelöst und gespeichert.", "resolved": "Aufgelöste Objekt-ID: {{objectId}}" }, "downloadRecordings": { "label": "Aufzeichnungen in den internen Speicher herunterladen", "description": "Wenn aktiviert, werden Aufzeichnungs-Blobs zusätzlich zum authentifizierten Graph-Proxy in den Mandantenspeicher kopiert." }, "exposeRecordingsInPortal": { "label": "Aufzeichnungen und Transkripte im Kundenportal anzeigen", "description": "Standardmäßig deaktiviert; MSP-Benutzer können Artefakte weiterhin über die Interaktions- und Termindetails anzeigen." } } } }, "xero": { "csv": { "clientSync": { "cancel": "Abbrechen", "createNew": "Neue Kunden erstellen", "description": "Kunden als Xero-Contacts-CSV exportieren oder Kontakte aus Xero importieren.", "errorRow": "Zeile {{row}}: {{name}} - {{error}}", "errors": { "export": "Kunden konnten nicht exportiert werden", "import": "Kunden konnten nicht importiert werden", "processCsv": "CSV-Datei konnte nicht verarbeitet werden" }, "errorsTitle": "Fehler ({{count}})", "exportButton": "Kunden als CSV exportieren", "exportClients": "Kunden exportieren", "exportDescription": "Exportieren Sie Ihre Alga-Kunden in eine CSV-Datei, die in Xero als Contacts importiert werden kann.", "exportSuccess": "{{count}} Kunden nach {{filename}} exportiert", "importCompleteDescription": "{{count}} Kontakte erfolgreich verarbeitet.", "importCompleteTitle": "Import abgeschlossen", "importContacts": "Kontakte importieren", "importContactsButton": "{{count}} Kontakte importieren", "importDescription": "Kontakte aus einem Xero-Contacts-CSV-Export importieren. Bestehende Kunden können zugeordnet und aktualisiert werden.", "importing": "Kontakte werden importiert...", "matchBy": { "algaClientId": "Alga-Kunden-ID (aus Tracking-Kategorie)", "contactName": "Kontaktname", "emailAddress": "E-Mail-Adresse" }, "matchByLabel": "Kontakte zuordnen nach:", "moreErrors": "...und {{count}} weitere Fehler", "preview": { "columns": { "action": "Aktion", "contactName": "Kontaktname", "email": "E-Mail", "matchedClient": "Zugeordneter Kunde" }, "moreWarnings": "...und {{count}} weitere", "showing20of": "Zeige 20 von {{count}} Zeilen", "toCreate": "Zu erstellen", "toSkip": "Zu überspringen", "toUpdate": "Zu aktualisieren", "warnings": "Warnungen" }, "processing": "{{filename}} wird verarbeitet...", "result": { "created": "Erstellt", "mappings": "Zuordnungen", "skipped": "Übersprungen", "updated": "Aktualisiert" }, "selectCsvFile": "CSV-Datei auswählen", "startNewImport": "Neuen Import starten", "title": "Kundensynchronisation", "updateExisting": "Bestehende Kunden aktualisieren", "workflow": { "s1": "Kunden aus Alga als Xero-Contacts-CSV exportieren", "s2": "CSV in Xero importieren (Contacts → Import)", "s3": "Nach Änderungen in Xero Kontakte aus Xero exportieren", "s4": "Die Xero-Kontakte-CSV zurück in Alga importieren, um Aktualisierungen zu synchronisieren" }, "workflowTitle": "Workflow zur Kundensynchronisation" }, "settings": { "dateFormat": "Datumsformat", "dateFormatHelp": "Stimmen Sie dies auf Ihre Xero-Regioneinstellungen ab.", "dateFormatOptions": { "dmy": "TT/MM/JJJJ (Tag/Monat/Jahr)", "mdy": "MM/TT/JJJJ (Monat/Tag/Jahr)" }, "defaultCurrency": "Standardwährung", "defaultCurrencyHelp": "Leer lassen, um die Rechnungswährung zu verwenden.", "errors": { "load": "Einstellungen konnten nicht geladen werden", "save": "Einstellungen konnten nicht gespeichert werden" }, "exportSettings": { "description": "Konfigurieren Sie, wie Rechnungen als CSV-Format für Xero exportiert werden.", "title": "CSV-Export-Einstellungen" }, "loading": "Xero-CSV-Einstellungen werden geladen...", "managedPrefix": "Gehen Sie zu", "managedSuffix": "um Rechnungen auszuwählen, Xero-CSV-Exporte zu generieren, Steuerberichte zu importieren und Batches zu verwalten.", "mappings": { "description": "Ordnen Sie Alga-Kunden, Dienstleistungen und Steuercodes den in Ihrer Xero-Organisation verwendeten Kennungen zu. Diese Werte werden beim Generieren des CSV-Exports verwendet.", "title": "Xero-CSV-Zuordnungen" }, "overview": { "description": "Rechnungen als CSV für den manuellen Import in Xero exportieren und Steuerdaten aus Xero-Berichten importieren.", "exportLabel": "Export", "exportText": "CSV-Dateien generieren, die mit der Rechnungsimport-Funktion von Xero kompatibel sind", "intro": "Diese Integration bietet eine Alternative zur OAuth-basierten Xero-Anbindung:", "note": "Hinweis: Konfigurieren Sie die Zuordnungen unten, bevor Sie exportieren. CSV-Exporte und Steuerimporte werden über Abrechnung → Buchhaltungsexporte verwaltet.", "taxImportLabel": "Steuerimport", "taxImportText": "Bei Verwendung einer externen Steuerberechnung Steuerbeträge aus dem Xero Invoice Details Report importieren", "title": "Xero-CSV-Integration" }, "savedMessage": "Einstellungen erfolgreich gespeichert", "selectCurrency": "Währung auswählen", "setup": { "acknowledge": "Ich habe die Einrichtung abgeschlossen", "description": "Führen Sie diese Schritte in Xero aus, bevor Sie CSV-Import/Export verwenden.", "externalInvoiceId": "Externe Rechnungs-ID", "externalInvoiceIdHelp": "Optionen werden beim Import automatisch erstellt", "sourceSystem": "Quellsystem", "sourceSystemHelp": "Fügen Sie eine Option mit dem Namen hinzu", "step1Description": "Gehen Sie in Xero zu Settings → Tracking Categories und erstellen Sie diese beiden Kategorien:", "step1Title": "Schritt 1: Tracking-Kategorien erstellen", "step2Description": "Stellen Sie sicher, dass Ihre Xero-Organisation die benötigten Steuersätze unter Settings → Tax Rates konfiguriert hat.", "step2Title": "Schritt 2: Steuersätze konfigurieren", "step3Description": "Verwenden Sie den Zuordnungsabschnitt unten, um Ihre Alga-Dienstleistungen mit Xero-Artikelcodes und Ihre Steuerregionen mit Xero-Steuersätzen zu verknüpfen.", "step3Title": "Schritt 3: Dienstleistungen und Steuerregionen zuordnen", "title": "Xero-Einrichtung erforderlich" }, "useInvoiceCurrency": "Rechnungswährung verwenden", "workflow": { "description": "So exportieren Sie Rechnungen und importieren Steuerberechnungen.", "export": { "s1": "Gehen Sie zu Abrechnung → Buchhaltungsexporte", "s2": "Wählen Sie Rechnungen aus und wählen Sie „Xero CSV“ als Adapter", "s3": "Laden Sie die generierte CSV-Datei herunter", "s4": "In Xero: Business → Invoices → Import", "s5": "Laden Sie die CSV hoch und importieren Sie als Entwurfsrechnungen", "s6": "Xero berechnet die Steuer basierend auf Ihren Steuereinstellungen" }, "exportInvoices": "Rechnungen exportieren", "import": { "s1": "In Xero: Reports → All Reports → Invoice Details", "s2": "Datumsbereich festlegen und als CSV exportieren", "s3": "In Alga: Abrechnung → Buchhaltungsexporte → Steuer importieren", "s4": "Die Xero-Bericht-CSV hochladen", "s5": "Zugeordnete Rechnungen prüfen und Import bestätigen" }, "importTax": "Steuerberechnungen importieren", "title": "CSV-Workflow", "trackingDescription": "Der CSV-Export enthält Tracking-Kategorie-Spalten, die jede Xero-Rechnung mit ihrer Alga-Quelle verknüpfen. Beim Import von Steuern aus Xero werden diese Tracking-Kategorien verwendet, um Rechnungen automatisch zuzuordnen – ohne manuelle Abgleichung.", "trackingTitle": "Tracking-Kategorien zur Abgleichung" } } }, "live": { "defaultOrganisation": "Standard-Xero-Organisation" }, "settings": { "actions": { "connect": "Xero verbinden", "disconnect": "Xero trennen", "disconnecting": "Wird getrennt…", "reconnect": "Xero erneut verbinden", "refresh": "Aktualisieren", "saveCredentials": "Xero-Anmeldedaten speichern", "saving": "Speichern…" }, "badges": { "connectionExpired": "Verbindung abgelaufen", "credentialsReady": "Anmeldedaten bereit", "credentialsRequired": "Anmeldedaten erforderlich", "defaultConnected": "Standardorganisation verbunden", "noOrganisation": "Keine Organisation verbunden" }, "callback": { "accessDenied": "Der Xero-Zugriff wurde abgelehnt, bevor die Verbindung abgeschlossen werden konnte.", "configMissing": "Xero OAuth konnte nicht gestartet werden, da die Tenant-Client-ID und das Client Secret nicht vollständig konfiguriert waren.", "connectionsUnmapped": "Xero hat Organisationen zurückgegeben, aber keine enthielt die zum Speichern einer Verbindung erforderlichen Kennungen.", "generic": "Xero hat einen OAuth-Fehler zurückgegeben: {{code}}", "invalidState": "Der Xero-OAuth-Status war ungültig oder abgelaufen. Starten Sie den Verbindungs-Flow erneut.", "missingParams": "Dem Xero-Callback fehlten erforderliche Parameter. Starten Sie den Verbindungs-Flow erneut.", "noConnections": "Xero hat für dieses Login keine Organisationen zurückgegeben. Überprüfen Sie Ihre Xero-App und den Organisationszugriff und versuchen Sie es erneut.", "oauthFailed": "Der Xero-OAuth-Callback ist fehlgeschlagen. Versuchen Sie, die Verbindung erneut herzustellen. Bei weiterhin bestehendem Problem überprüfen Sie Ihre Redirect-URI und Scopes." }, "clientIdLabel": "Xero Client ID", "clientIdPlaceholder": "Fügen Sie Ihre tenant-eigene Xero Client ID ein", "clientSecretLabel": "Xero Client Secret", "clientSecretPlaceholder": "Fügen Sie Ihr tenant-eigenes Xero Client Secret ein", "connectSuccess": "Xero erfolgreich verbunden. Die erste verbundene Organisation ist nun der Standard-Live-Xero-Kontext.", "connection": { "connectionId": "Verbindungs-ID: {{id}}", "defaultOrganisation": "Standardorganisation", "description": "Starten Sie OAuth erst, nachdem die tenant-eigene Xero-App konfiguriert ist. Beim Trennen werden gespeicherte Xero-Zugriffstoken entfernt, die tenant-eigenen App-Anmeldedaten bleiben jedoch erhalten.", "notConnected": "Es ist noch keine Live-Xero-Organisation verbunden. Speichern Sie die Anmeldedaten und klicken Sie anschließend auf „Xero verbinden“.", "title": "Live-Xero-Verbindung", "unknown": "unbekannt" }, "credentialsSaved": "Xero-Anmeldedaten gespeichert. Sie können jetzt den Live-Xero-OAuth-Flow starten.", "csvAvailableMiddle": "in diesem Buchhaltungsbereich und verwalten Sie Exporte über", "csvAvailablePrefix": "Wenn Sie einen manuellen Workflow bevorzugen, verwenden Sie weiterhin", "csvAvailableTitle": "Xero CSV bleibt verfügbar", "description": "Konfigurieren Sie tenant-eigene Xero-OAuth-Anmeldedaten, verbinden Sie Ihre Standardorganisation und halten Sie Live-Xero parallel zum manuellen Xero-CSV-Workflow verfügbar.", "disconnectSuccess": "Die gespeicherte Xero-Verbindung wurde entfernt. Tenant-eigene Xero-App-Anmeldedaten wurden beibehalten.", "errors": { "disconnect": "Xero konnte nicht getrennt werden.", "load": "Xero-Einstellungen konnten nicht geladen werden.", "saveCredentials": "Xero-Anmeldedaten konnten nicht gespeichert werden." }, "howItWorksDescription": "Speichern Sie hier eine tenant-eigene Xero Client ID und ein Client Secret, schließen Sie den Xero-OAuth-Flow ab, und Alga PSA verwendet die erste verbundene Xero-Organisation als Standard-Live-Kontext.", "howItWorksTitle": "So funktioniert Live-Xero in dieser Version", "loading": "Xero-Einstellungen werden geladen…", "mapping": { "alert": "Xero-Artikel, Umsatzkonten, Steuersätze und Tracking-Kategorien werden aus der verbundenen Standardorganisation geladen, damit Live-Exporte in v1 weiterhin die erste gespeicherte Xero-Verbindung nutzen können.", "descriptionPrefix": "Konfigurieren Sie Live-Xero-Zuordnungen für die verbundene Standardorganisation. Diese Zuordnungen sind begrenzt auf", "placeholderAlert": "Der Zuordnungsmanager wird verfügbar, nachdem die erste Xero-Organisation verbunden und als Standard-Live-Xero-Kontext festgelegt wurde.", "placeholderDescription": "Verbinden Sie eine Live-Xero-Organisation, bevor Sie Live-Xero-Artikel- und Steuer-Zuordnungen konfigurieren.", "title": "Live-Xero-Zuordnung & -Konfiguration" }, "noClientId": "Für diesen Tenant ist noch keine Client ID gespeichert.", "noClientSecret": "Für diesen Tenant ist noch kein Client Secret gespeichert.", "redirectUri": "Redirect URI", "requiredScopes": "Erforderliche Scopes", "storedClientId": "Gespeicherte Client ID: {{value}}", "storedClientSecret": "Gespeichertes Client Secret: {{value}}", "tenantOauthDescription": "Fügen Sie die für diesen Tenant registrierten Xero-App-Anmeldedaten ein. Secret-Werte werden nach dem Speichern nicht mehr an den Browser zurückgegeben.", "tenantOauthTitle": "Tenant-eigene OAuth-App", "title": "Xero", "xeroCsv": "Xero CSV" } }, "stripe": { "title": "Stripe Payments", "description": "Akzeptieren Sie Kreditkartenzahlungen für Ihre Rechnungen", "connected": { "title": "Stripe verbunden", "publishableKey": "Publishable Key: {{key}}..." }, "empty": { "description": "Verbinden Sie Ihr Stripe-Konto, um Online-Zahlungen für Rechnungen zu akzeptieren" }, "actions": { "testConnection": "Verbindung testen", "disconnect": "Trennen", "connect": "Stripe verbinden", "connecting": "Verbindung wird hergestellt...", "cancel": "Abbrechen" }, "form": { "secretKeyLabel": "Secret Key", "secretKeyPlaceholder": "sk_live_... oder sk_test_...", "publishableKeyLabel": "Publishable Key", "publishableKeyPlaceholder": "pk_live_... oder pk_test_...", "findKeyPrefix": "Finden Sie dies in Ihrem", "dashboardLink": "Stripe Dashboard → API Keys" }, "webhook": { "heading": "Webhook-Konfiguration", "configuredAutomatically": "Webhooks automatisch konfiguriert", "receiveNotifications": "Alga PSA erhält Zahlungsbenachrichtigungen für:", "failedTitle": "Webhook-Konfiguration fehlgeschlagen", "failedBody": "Die automatische Webhook-Konfiguration ist fehlgeschlagen. Klicken Sie auf Erneut versuchen, um die Konfiguration erneut zu versuchen.", "configuring": "Wird konfiguriert...", "retry": "Konfiguration erneut versuchen" }, "disconnectDialog": { "title": "Stripe trennen", "message": "Sind Sie sicher, dass Sie Stripe trennen möchten? Zahlungslinks funktionieren dann nicht mehr.", "confirm": "Trennen", "cancel": "Abbrechen" }, "toasts": { "connectedWithWebhook": "Stripe verbunden und Webhooks automatisch konfiguriert!", "connectedWebhookFailed": "Stripe verbunden! Hinweis: Die automatische Webhook-Konfiguration ist fehlgeschlagen – Sie müssen Webhooks möglicherweise manuell im Stripe Dashboard konfigurieren.", "disconnected": "Stripe getrennt", "connectionSuccess": "Verbindung erfolgreich!", "webhookConfigured": "Webhook erfolgreich konfiguriert!" }, "errors": { "loadConfig": "Stripe-Konfiguration konnte nicht geladen werden", "connect": "Stripe konnte nicht verbunden werden", "disconnect": "Stripe konnte nicht getrennt werden", "testConnection": "Verbindungstest fehlgeschlagen", "configureWebhook": "Webhook konnte nicht konfiguriert werden", "bothKeysRequired": "Bitte geben Sie sowohl Secret Key als auch Publishable Key ein", "secretKeyFormat": "Secret Key sollte mit sk_ beginnen", "publishableKeyFormat": "Publishable Key sollte mit pk_ beginnen" } } }, "ninjaone": { "selectCompany": "Unternehmen auswählen" } }