PSA/server/public/locales/de/msp/integrations.json
Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

2329 lines
123 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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"
}
}